Viktor1703
AutoIT Гуру
- Сообщения
- 1,535
- Репутация
- 413
AutoIt: 3.*
Версия: 1.0
Категория: Разное
Описание: Данная UDF поможет работать с DLL из памяти, раннее была написана товарищем Ward с оф. форума, в UDF был один огромный недостаток, нельзя было работать с более чем 1 DLL из памяти, я решил это исправить.
Код/Пример:
Файл: DllMem UDF
Снимок:
История версий:
Источник: autoit-script.ru, Оф. форум
Автор(ы): Ward, Viktor1703
Версия: 1.0
Категория: Разное
Описание: Данная UDF поможет работать с DLL из памяти, раннее была написана товарищем Ward с оф. форума, в UDF был один огромный недостаток, нельзя было работать с более чем 1 DLL из памяти, я решил это исправить.
Код/Пример:
Код:
#Include <DllMem.au3>
;~ Открываем dll в памяти
Global $hDllMem1 = DllMemOpen(PureBasicDll())
Global $hDllMem2 = DllMemOpen(PureBasicDll())
If ($hDllMem1 And $hDllMem2) Then
;~ Возвращаем указатель на функцию 'PureBasic_MsgBox' из dll
$pPureBasic_MsgBox1 = DllMemGetAddress($hDllMem1, 'PureBasic_MsgBox')
$pPureBasic_MsgBox2 = DllMemGetAddress($hDllMem2, 'PureBasic_MsgBox')
;~ Вызываем функцию по её указателю [PureBasic_MsgBox($sTitle, $sText, $iFlag)]
If $pPureBasic_MsgBox1 Then
DllCallAddress('int', $pPureBasic_MsgBox1, 'wstr', 'Заголовок 1', 'wstr', 'Сообщение 1', 'dword', BitOR(32, 5))
EndIf
If $pPureBasic_MsgBox2 Then
DllCallAddress('int', $pPureBasic_MsgBox2, 'wstr', 'Заголовок 2', 'wstr', 'Сообщение 2', 'dword', 48)
EndIf
;~ Закрываем dll
DllMemClose($hDllMem1)
DllMemClose($hDllMem2)
Endif
;~ Бинарный код dll
Func PureBasicDll()
Local $bData = '0x'
$bData &= '4D5A90000300000004000000FFFF0000B8000000000000004000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000080000000'
$bData &= '0E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F'
$bData &= '742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000'
$bData &= '504500004C010600F3440B530000000000000000E0000E210B01023200080000'
$bData &= '000C000000000000001000000010000000300000000000100010000000020000'
$bData &= '0400000000000000040000000000000000700000000400000000000003000000'
$bData &= '0000100000100000000010000010000000000000100000000030000049000000'
$bData &= '044000007800000000500000BC02000000000000000000000000000000000000'
$bData &= '006000008C000000000000000000000000000000000000000000000000000000'
$bData &= '000000000000000000000000000000000000000000000000E440000068000000'
$bData &= '0000000000000000000000000000000000000000000000002E636F6465000000'
$bData &= 'C000000000100000000200000004000000000000000000000000000020000060'
$bData &= '2E74657874000000110500000020000000060000000600000000000000000000'
$bData &= '00000000200000602E72646174610000490000000030000000020000000C0000'
$bData &= '000000000000000000000000400000402E646174610000000C03000000400000'
$bData &= '00040000000E0000000000000000000000000000400000C02E72737263000000'
$bData &= 'BC02000000500000000400000012000000000000000000000000000040000040'
$bData &= '2E72656C6F6300008C0000000060000000020000001600000000000000000000'
$bData &= '0000000040000042000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '837C240801750E8B442404A3F0420010E822000000837C2408027500837C2408'
$bData &= '007505E833000000837C2408037500B801000000C20C00680000000068001000'
$bData &= '006800000000E8CB0F0000A3EC420010E8BB120000E8CE0F0000C3E811000000'
$bData &= 'E8FB120000FF35EC420010E8AC0F0000C3E871110000C331C050508B54240C8D'
$bData &= '0C24E8790F00008B5424108D4C2404E86C0F0000FF742414FF742408FF742408'
$bData &= 'E8BA0F0000EB0231C0FF3424E8DF120000FF742404E8D612000083C408C20C00'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '5251E8B9030000C35251E801040000C3FF25E4400010FF25F0400010FF25F440'
$bData &= '0010FF25F8400010558BEC51516A088D45F86A0050E8D6FFFFFF83C40C8D45F8'
$bData &= '50C745F808000000C745FC480B0000FF153C4100106A00FF1544410010C9C356'
$bData &= '6A01E8A9000000FF742410FF74240CFF742414E84101000050FF15144100106A'
$bData &= '008BF0E8880000008BC65EC20C005356578B7C24106A0057FF15184100108B1D'
$bData &= 'FC4000108BF0FFD33BF0755B57FF151C41001085C074506A1468F8420010E8DA'
$bData &= '010000598BF059897E04FFD36AEC57890666C746080000FF1520410010A80874'
$bData &= '04C6460801FF15244100103BF8741857FF152841001085C0740D6A0057C64609'
$bData &= '01FF152C4100105F33C05E405BC208005333DB5657395C24107444FF74241068'
$bData &= '8E200010FF15304100108B35F84200103BF3747F8B3EFF15FC40001039460875'
$bData &= '16385E1074116A03535353536AFEFF760CFF15344100108BF73BFB75D7EB548B'
$bData &= '35F84200103BF3744A558B2E8D7E08FF15FC40001039077533385E11740B6A01'
$bData &= 'FF760CFF152C410010385E1074116A03535353536AFFFF760CFF153441001057'
$bData &= '68F8420010E82001000059598BF53BEB75B85D5F5E5BC20400558BEC5156FF15'
$bData &= '244100108BF085F674188D45FC5056FF1518410010FF15004100103945FC7402'
$bData &= '33F68BC65EC9C3A1FC42001085C0740650E801000000C3558BEC568B7508837E'
$bData &= '1400741C56E81B000000EB06FF7508FF56148D45085056E82E00000085C075EC'
$bData &= '5E5DC204008B4424048B481033D289501889481C3BCA740F3911740B568B0989'
$bData &= '481C391175F75EC204008B4C2404578B7C240C33C0568B511885D278223B5108'
$bData &= '7D1D8B710C8D3496833E00740B8B36833E0074048BC68917FF411885C074D75E'
$bData &= '85C075158B511C85D2740E8D420889078B511C8B520489511C5FC20800FF7424'
$bData &= '086A08FF35EC420010FF150441001085C074138B4C24048B1185D27407894204'
$bData &= '8B118910890183C008C38B4424088B4C240483E8088B103901750E89118B0885'
$bData &= 'C9741783610400EB118B480489118B0885C974068B5004895104506A00FF35EC'
$bData &= '420010FF1508410010C3CCCCCCCCCCCC558BEC6A0068001000006A00FF15F040'
$bData &= '0010A304430010C7050043001000000000C7050843001010000000A108430010'
$bData &= '506A008B0D0443001051FF1504410010A3004000105DC3CCCCCCCCCCCCCCCCCC'
$bData &= '558BECA100400010506A008B0D0443001051FF15084100108B150443001052FF'
$bData &= '15F44000105DC3CCCCCCCCCCCCCCCCCC558BEC5052837D080074138B4508506A'
$bData &= '008B0D0443001051FF15084100105A585DC20400CCCCCCCCCCCCCCCCCCCCCCCC'
$bData &= '558BEC51837D0C00743D8B450C50E83801000083C4048945FC8B4DFC8D54090A'
$bData &= '526A00A10443001050FF15044100108B4D0889018B55FC528B450C508B4D088B'
$bData &= '1152E8B90000008BE55DC20800CCCCCC558BEC51C745FC00000000837D0C0074'
$bData &= '6C8B450C50E8E100000083C4048945FC8B4D08833900751E8B55FC8D44120A50'
$bData &= '6A008B0D0443001051FF15044100108B55088902EB228B45FC8D4C000A518B55'
$bData &= '088B02506A008B0D0443001051FF150C4100108B550889028B45FC508B4D0C51'
$bData &= '8B55088B0250E835000000EB268B4D08833900741E8B55088B02506A008B0D04'
$bData &= '43001051FF15084100108B5508C702000000008B45FC8D4400028BE55DC20800'
$bData &= '558BEC518B45108B4D088D14418955FC837D10007E278B45088B4D0C8B118910'
$bData &= '8B450883C0048945088B4D0C83C104894D0C8B551083EA02895510EBD333C08B'
$bData &= '4DFC6689018BE55DC20C00FF25E8400010000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '00000000F3440B53000000003230000001000000010000000100000028300000'
$bData &= '2C30000030300000771000003830000000006E2E646C6C005075726542617369'
$bData &= '635F4D7367426F78000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '000000007C400000000000000000000056410000E44000008840000000000000'
$bData &= '0000000092410000F0400000AC4000000000000000000000A042000014410000'
$bData &= 'D44000000000000000000000C44200003C410000DC4000000000000000000000'
$bData &= 'E24200004441000000000000000000000000000000000000000000004C410000'
$bData &= 'A04100000000000062410000704100007E410000AA410000C0410000D6410000'
$bData &= 'E2410000EE41000000000000FC4100000A42000026420000384200004A420000'
$bData &= '6042000072420000824200009042000000000000AC42000000000000D2420000'
$bData &= '000000004C410000A04100000000000062410000704100007E410000AA410000'
$bData &= 'C0410000D6410000E2410000EE41000000000000FC4100000A42000026420000'
$bData &= '384200004A4200006042000072420000824200009042000000000000AC420000'
$bData &= '00000000D24200000000000099026D656D73657400004D53564352542E646C6C'
$bData &= '0000A402486561704372656174650000A5024865617044657374726F7900FA01'
$bData &= '4765744D6F64756C6548616E646C655700004B45524E454C33322E646C6C0000'
$bData &= 'E6027763736C656E0000AE0147657443757272656E7454687265616449640000'
$bData &= 'AB0147657443757272656E7450726F63657373496400A20248656170416C6C6F'
$bData &= '6300A60248656170467265650000A902486561705265416C6C6F630000004D65'
$bData &= '7373616765426F785700000047657457696E646F7754687265616450726F6365'
$bData &= '7373496400000000497357696E646F7756697369626C6500000047657457696E'
$bData &= '646F774C6F6E674100000000476574466F726567726F756E6457696E646F7700'
$bData &= '0000497357696E646F77456E61626C6564000000456E61626C6557696E646F77'
$bData &= '00000000456E756D57696E646F777300000053657457696E646F77506F730000'
$bData &= '5553455233322E444C4C00000000496E6974436F6D6D6F6E436F6E74726F6C73'
$bData &= '45780000434F4D43544C33322E444C4C00000000436F496E697469616C697A65'
$bData &= '00004F4C4533322E444C4C000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '00000000F3440B530000000000000100180000001800008000000000F3440B53'
$bData &= '0000000000000100010000003000008000000000F3440B530000000000000100'
$bData &= '0904000048000000585000006302000000000000000000003C3F786D6C207665'
$bData &= '7273696F6E3D22312E302220656E636F64696E673D225554462D382220737461'
$bData &= '6E64616C6F6E653D22796573223F3E0A3C617373656D626C7920786D6C6E733D'
$bData &= '2275726E3A736368656D61732D6D6963726F736F66742D636F6D3A61736D2E76'
$bData &= '3122206D616E696665737456657273696F6E3D22312E30223E0A20203C617373'
$bData &= '656D626C794964656E746974790A2020202076657273696F6E3D22312E302E30'
$bData &= '2E30220A2020202070726F636573736F724172636869746563747572653D2258'
$bData &= '3836220A202020206E616D653D22436F6D70616E794E616D652E50726F647563'
$bData &= '744E616D652E596F7572417070220A20202020747970653D2277696E33322220'
$bData &= '2F3E0A20203C6465736372697074696F6E3E3C2F6465736372697074696F6E3E'
$bData &= '0A20203C646570656E64656E63793E0A202020203C646570656E64656E744173'
$bData &= '73656D626C793E0A2020202020203C617373656D626C794964656E746974790A'
$bData &= '2020202020202020747970653D2277696E3332220A20202020202020206E616D'
$bData &= '653D224D6963726F736F66742E57696E646F77732E436F6D6D6F6E2D436F6E74'
$bData &= '726F6C73220A202020202020202076657273696F6E3D22362E302E302E30220A'
$bData &= '202020202020202070726F636573736F724172636869746563747572653D2258'
$bData &= '3836220A20202020202020207075626C69634B6579546F6B656E3D2236353935'
$bData &= '623634313434636366316466220A20202020202020206C616E67756167653D22'
$bData &= '2A22202F3E0A202020203C2F646570656E64656E74417373656D626C793E0A20'
$bData &= '203C2F646570656E64656E63793E0A0A3C2F617373656D626C793E0000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '00100000100000000C304C3067300000002000007C000000123018301E302430'
$bData &= '513059307B309A30A030AF30BA30D930E730F2300331203126312C3138315331'
$bData &= '6131713185319B31A131C031D131D731E831A532AB32FF3205331E3323332933'
$bData &= '33333C3345334C33513364336D3374337A338133A333AA33E433EB3344344B34'
$bData &= '68346F349F34A6340D3500000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
$bData &= '0000000000000000000000000000000000000000000000000000000000000000'
Return Binary($bData)
EndFunc
Файл: DllMem UDF
Снимок:
История версий:
v1.0
Источник: autoit-script.ru, Оф. форум
Автор(ы): Ward, Viktor1703