Что нового

EXE2Bin.au3 внедрение файла в тело скрипта

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Незнаю в каком разделе лучше создать эту тему.

Данный скрипт является инструментом AutoIt3. Названием уже всё сказано, пробуем.

Код:
#NoTrayIcon ; скрыть иконку в трее
Opt("GUICloseOnESC", 1) ; выход по ESC

$Gui = GUICreate("EXE2Bin.au3",  300, 94, -1, -1, -1, 0x00000010)

$filemenu = GUICtrlCreateMenu ("Файл")
$folder1 = GUICtrlCreateMenuitem ("Открыть",$filemenu)
$Readme = GUICtrlCreateMenuitem ("О программе",$filemenu)
$Quit = GUICtrlCreateMenuitem ("Выход",$filemenu)

$Input1 = GUICtrlCreateLabel('', 0, 0, 300, 94)
GUICtrlSetState(-1, 136) ; скрыть поле
GUICtrlCreateLabel ("Кинь сюда файл для конвертации в тело скрипта", 10,2,280,17)
$StatusBar=GUICtrlCreateLabel (@CRLF&@CRLF&'Строка состояния', 10,23,280,57)

GUISetState ()

	While 1
		$msg = GUIGetMsg()
		Select
			Case $msg = -13
				$filename=StringRegExp(@GUI_DRAGFILE,'(^.*)\\(.*)\.(.*)$',3)
				GUICtrlSetData($StatusBar, 'Файл '&$filename[1]&'.'&$filename[2]&' принят'&@CRLF&'чтение...')
				$ScrBin='$sData  = ''0x'''&@CRLF
				$file = FileOpen(@GUI_DRAGFILE, 16)
				While 1
					$Bin = FileRead($file, 2040)
					If @error = -1 Then ExitLoop
					$ScrBin&='$sData  &= '''&StringTrimLeft($Bin,2)&''''&@CRLF
					Sleep(1)
				WEnd
				FileClose($file)
				GUICtrlSetData($StatusBar, 'Файл '&$filename[1]&'.'&$filename[2]&' принят'&@CRLF&'запись...')
				
				; генерируем имя нового файла с номером копии на случай если файл существует
				$Output = $filename[0]& '\Bin_'
				$i = 1
				While FileExists($Output & $i & '_'&$filename[1]&'.au3')
					$i += 1
				WEnd
				$Output = $Output & $i & '_'&$filename[1]&'.au3'
				
				; сохраняем бинарные данные в файл
				$file = FileOpen($Output,2)
				FileWrite($file, $ScrBin&@CRLF& _
				'$sData=Binary($sData)'&@CRLF& _
				'$file = FileOpen(@ScriptDir&''\Copy_'&$filename[1]&'.'&$filename[2]&''',18)'&@CRLF& _
				'FileWrite($file, $sData)'&@CRLF& _
				'FileClose($file)')
				FileClose($file)
				GUICtrlSetData($StatusBar, 'Файл '&$filename[1]&'.'&$filename[2]&' принят'&@CRLF&'Скрипт-файл Bin_'& $i & '_'&$filename[1]&'.au3 создан.')
				
			; Case $msg = $folder1
				; $folder01 = FileOpenDialog("Указать файл", @WorkingDir & "", "Все файлы (*.*)", 1 + 4 )
				; If @error Then ContinueLoop
				; GUICtrlSetData($Input1, $folder01)
				
			Case $msg = $Readme
				MsgBox(0, 'Readme', '     Утилитка предназначена для внедрения любого файла в тело скрипта. При использовании генерируется скрипт в той же папке где и сам принимаемый файл, в котором в бинарном виде находится принимаемый файл. При старте полученного скрипта, получаем копию этого файла, но уже сохранённого из скрипта, что является примером использования.'&@CRLF&'     Это может пригодится при использовании небольших exe-файлов работающих с ком-строкой. Например сохранить файл в %Temp%, запустить с ком-строкой, после выполнения удалить. Или для создания временного файла-скрипта, создание которого в текстовом виде имеет проблемы с синтаксисом.')
			Case $msg = -3 Or $msg = $Quit
				Exit
		EndSelect
	WEnd
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Пример использования.

Код:
; бинарные данные файла DumpEDID.exe
$sData  = '0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000E80000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A240000000000000092898DD5D6E8E386D6E8E386D6E8E386ADF4EF86D2E8E38655F4ED86D2E8E386B9F7E986DDE8E386B9F7E786D4E8E386D6E8E2867DE8E38655E0BE86DBE8E386D0CBE886D0E8E38611EEE586D7E8E38652696368D6E8E38600000000000000000000000000000000504500004C0103000C2467450000000000000000E0000F010B01060000200000001000000050000040780000006000000080000000004000001000000002000004000000000000000400000000000000009000000010000000000000030000000000100000100000000010000010000000000000100000000000000000000000908400000801000000800000900400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555058300000000000500000001000000000000000040000000000000000000000000000800000E055505831000000000020000000600000001A000000040000000000000000000000000000400000E02E72737263000000001000000080000000060000001E0000000000000000000000000000400000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000312E323400555058210C0902081DC878B3159FA86AC354000031180000003A0000260400D26FFFFFFF568BF1684802000056E804000A5D598BC6595EC38B91E0011133C085E9FEEFFED2567E2E81C1220C668B71FC663B74240875150AFEFFFF6FF90C750A310910740B4083C1063BC27CD883C8FF5EC2FEFFFFFF0C00558BEC83EC688365FC005356570FB77D086A4B894DF85866C74598D00219E96EEE059A90019C4600119EA0E7F3F91CA258A480A6E0A83C23CF9191AAACAE43B0B26E469E23B448B6B88945BAECFB6CEE15BC2003BE58C03821C211C8C87364C4C63CC8CAB79991E7CC48CED045D20F7637CF67D440D670D8DA000415DC003932F67DDE5731E011E2E43CC87364E4E6E8EA46ECA6B9DBCCEE45F015F20005F49BFFFF6F0FF68D759A8B45FC6A089959F7F96A085B6A018BC899F75EF817FEFBC1E103582BCA5907D3E085C774166D46028B6EB8DB16455007060346FE50B201D0FFC2DBFFDF2A83C606837DFC107CB95F5E5BC9C214538B5C9D9BBFF085778B7C2418DD5753FF742418001036BC1DFE83F8FF75508B86DC0A207C05ACEB40E6BE5DD8494CC08D0407898C461E191FC766C70EC030131C460F20BC4604F77E92228D4801898E0873F0DFD87EE180E501538A5D0C77F91980FB0175DBFEFF635F66660FB64D088AC356C0E8068D34CDF830001D6EFBDB4611C65080D1E0EB283C260B0DFE3FF6DD6A046099EB1C3C020EC1E002996A05EB0D3C03750E2F6CD8C62BC00E101DEB03180880E3848D17BA3F53CB163C5150BDCF0471737C7F5E5F5B5DC2088551D0D2861E6B2F6CDFD26685C074543EC062FC51DB030967C17E77861C15DC0DF8304000130CDDB6FBFFDF05F0051C245151D9C0D8C9D9C2D8CBDEC10EDDD801BBDF6CBB5E1CA426E883C410DD9E20428A86BB45DEBAFFF8845D480FB60686FE110761C19C50575100FF1F7E375EC9C3BB8B8151535733DB33FF3BC3895D7F593AFCFC7E1E568DB195691655FC76058BDF38FC1BB6890647F13BF87CEA5E8999E882EC6DBB54F5B3C1C7083152C3C7010677AF6147066A0EF90C037209E86A78C3D8BB0A0A14FF15A478141C03802000972EB84F3581EC5085B97D10A6FC8072A4BBFB3F000F859A0F807F07099001FF3423CDC886027C03724833D28C0468055EEDBF35CD065453C28DB0FDFFFFE891FB04E363F66FC74723834D94FF50139652F3FFE3B37F8D77265B8A460113508A06D9024346464B750FEF96B6E91A3928F82600BBF0FF07468DCD6D86FDD7599311283CD0F697B7D20C8D154D85BFFEEB0E3CFC75180FDFFE5A73B08BCB4903D7E90405CD3CFAB6FFA3E1753C33AE1045108A4C46038A442A5163E96FCB8971F647180274094B10A3D95D6B6D0328A5260B067CD03F2CDB3FDBFD759F46058845F30504F2882DCBB203F102F024B7C5D8E16E9C56FFDE42C0D55F7AE93B0FC823CB240FCD040BCA444DC433C923'

$sData  &= 'EBBEDD8AE83E8A0E290211C62224CDF793C80B8A4E032309CA6DDB7272CC0C0A7CD8080D5BEBC6D613CE09D91A12FF24AAD25C70860D006A7F08DC25085061F2EC66031030FE0C8FBAAE6BA3080C18869C0A0A079EFDB67DDB060C05A08A47104CA473471105C607655B96ADF411A812AC05139A655B96AD15AE2316AF17667BD919550614DBC1E8070CDC6EBDDB5B7AC8C1E90B4DE0079FE101F7672B37F2103110E405DC05080D9BB0353A1683F213E88439C3253C7CECDD5DB8B28595C9C6DAFAC66F8D950D528B854108FF10715F6A2FCFD8E610B71805A038424A5EE8FED6EF46EC6A3F8885ECDF59E88DBDEDC7DF6AE0088271F3AB66ABAABE3C93E1632DB41C56506A001187A5A70FD37A814D5B768DB7E4D959D368198D502650231BD7AED4821D150169649F66E962DD90FD08566337FD873D90AD535CFCD300387F81B9416E36E8FAE90835DA67DFD88D1A5038B20B682840338B0DD9C610AC9AF025612FDBCB379A2075662056FC6A4059DC83ED34FC2FF45EB17936B7F931FC68204C98F0166F6933DB36260D0732F4231192B54E2E058C0199D9720F89FF3434041BD2ECB9ED4356E0E9368317260B611BC2F85813F8597B1616DC84A717AE5EAF0456C814305B64088F3CAA6EB73B216375130E8BCE1006B709CE3DBC675D5E5D3AEA08CE4057F736DBF8573C64685CD130F120C145F84C017633684D699C370A6EF87968118DBDF92CBC832B149C6E185B4CC8259CEDD798F7F8C98E9C5D1C93FC0867F17007E564CF518B70578366BBACB42B462B3921D6E16CA4F277ECC00A4D8BF8E3FF75696DE3491E08A2EB548DE3893B76CD74B1512E9608302D3B53F61EC2C24FF88B1D3753ECDF851C0FD3A8D35B8BC7A7506AB6C6ED5020C322BFC53F74011026B88BF08B44153BF0597C03FBC0C5C28D70F97C2F1D571C5BF735FCBE80243E420C3FC315043E180677D1326F3F0F95C1697DBECEF0C368046F19085A1C6A2E0C169AED0E0C805909595B0A6CB95D6204C30461C08847DD19CF07046AD1D05FC372E1BFF6EE82E9048CB940483709DD689C1A40C9D85BB8FF1D6359C3F60564162111800D08E4676CB225FC3ABDC7B938B5C996FC0CC568D715C8AE2FCBB2BDB8894818021C201014890821432BCD89480483BD4E2E35D6440B0796CA004608CB0F64C20D04760C85F656D0067F275E3B837E182B492B3CF4D7420CDF894E1C4D50CA6FD6C5F6774E2026C48906431CCF500D407B606D5D0EFF7691530E43ACC10AC8003B2C752BFC8B411033D2AA777E1369081BBFC03F9A3B3E740F42D7043BD07CF0D15F31FECD6C24047004900301EBF1537FD90A857E861468E2960401B7D11DE9800F0B383F101A570B73D16CFD8E8BD885DB8ECBF72C26CDD5F87674118C204881E7F3278BDD856EF30457EB3D1391F23BA76A060C0CAE4536BDF717A20D4A880F7AAFE31941F859792C413B0D2B71306409DF84126F07E9F8360CD9CDDC7E4C1A148D4CF7F6DBFF38023B4E187D408B4E10071C7D380306978D470131B86D2DC6537E24B14EDE5614B72DC4EE238914810E0754C7470DD3B7D662017EC210C77507A17C0F477BB454EB11C381379666BA8361A168F4AF73241088F1361A89E999CB6C7C3CC4430DBD9904D204B54F3F5A31BA68A4AD7449048DBC3D66149F1C05750B98EE9EDBF66AE10F067668900955116888AA3102C333B5597658E2B1C6F72083576A071CE03681421FEA7DE17AE90FDC0B33D250F3ACB90FA506861E5ACA8ED1551A6C08B96C9AB28A28020FF646B78B101D148026051F06E9DE686126182C61C65E983D397E7FB80404057C8607862E1708FCEFB9004276316263E7FDEF4C8D1934DE016BB350509B4F80BD1ED6CD5AB5EB7828BA0CE7D8D6B60AA258AE4DC96FED1D60035670BE5575C22EEC92BF57765672C7E1997B7510576B163030E4F5377941C2C95D0E3AAAD95C69C838342029E0B42BD3946BF61F8EBDDCC04CD61957B8C959CC30608E6DC25085C80ED0364E2CDC0AC35CCC50055664DB7B29E7534CACDC889D2355D83E3B768C308567380F744B3B6A0950372A9F051EA43BC330183975BB50A15D1A29741D0710745FC3B72F0186711101E810FF05B42AA10405B1AF908B5871063B51C875517285A87833815FE0DCED8ECFE812E5A6463B75BB8C45794DC92098089211EEC6B98C180506EE3884211DCFCCF009EE42C5A6E16FC4C2F67E6090EE74572407B99CBF3F00FF01FFCC1CD6BE1368253CB8140E839318AC65B0150F1F3C66CF695056CF48A308D0DD1B7293D08B0D404B77C97415B8BFE9ABE86A3BA0740583C104EBEF28BCD4C270706F9B0C04566BB1DE4A2173106A04AA4F0BB8C3D39882D4C12545DDE9188233A7172E53BCCC02CDADE9411197051094C7D65CCC2035A4108307DDA541BE56056AE58720FF001421C2615FC83614750329815F5A70C4E6A173204E139180EDCAB118A060D11F2AD030D2A3CE8C06C0F35EE7641B592304C677A9F2E0E0C07B4A78EF70FAC0034681FEF576CE57F51E9E3817501CA2670D8B7430EB1FD40700A2C3DFF8ACE8B00D874809F7D81BC068C060B67676774068E016A3BC491BA01A7E4AEF1841DE1068D0401968401349E8C290C0873CC3D3872C3548D041BAF8F93E88D033CD8F932A4698DACB0B1200BECF5830F24BBAA91433DB5353BE90ED308B22805E0AC01A36DCD42F8B353412BFAECF5382747FD074B71CFFD609058E67300CF6CF119F32C50898DE881D645D890848538F3D2A31054368ECA3566C28AC891F5ED4590C16196BB09EDBB52D83D042EF3805726DC08078A5C68C4E4173B42E038FC043F10C3C681041203ED0C15627490C9112C10441BF4B'

$sData  &= '7F663059EB178038BD125017F8400B43B821D22D3846B765812003595043F708163C13AB5E145EC8E96076BC2A7200FCCDFF234F39170C84560C006686249BFC1C410F14819DBED7557F59F7EC5BC16EC70A5B0FB7D750505B717720902CDD45B45151AAAE92C10A935D3C0C4A4728D4194D3774049C7048C20D956A02374441EA60F23BF7A764A9E4910D6E2C6A18AA9C9D6A4177F8A41E9C6A2A078065DD8F1164ECF4396C419D91C5180EC8663B53C6D9E8FBE9FBB5D89FE9B3C0508BCBAA3A07B7F5D1D606158E43B50D614A415875D53D13978B213DED6CAFCBD1861A1D8D4FF6B0D66606887F102E367BD4DCEBEF036C342B4C124306B9E4E90FEA037EB511FDF40FB6F86F2103C83757A8EBCF065B8AA0EC45EC131470B6218334EEED52F0F79A67C71268EE6B1414FD650732800C58FC6DA0F05AA1001FDD860856EC1425F3671BED68F11614CC80BE401D05A1055BC0D1E0C921973CD95F4102400294641B72C914F2484264900919D2434264C590A1F3B745D98AF60F84AA0797F8FB7BB27CC10808D8C90FDD5DF8125858F19B0BDD55F0DDD96FAC9815DFDDF8DC4DF8716F6DB1CDBD68D4A038E8A324E8DDB087D686503115D3B93A59598B3773139D3FEB21865C72D878B928F4814C378111B7981502059BE40808BF1506196C01A5F0F01F6FC24A5F7208FE971C362060A520F5DF4085215E2D8D8C409000D076E141D14F0C4E038403C8617CF6514A58F6D9C88D21903002F711E49293E5152A34F8382E39B9E4F93CFA2CA448434EFBCBAB504B6AE29D6A4BB966E90EDA4583BE18007E4F7E20DADB890C4F0ABC480251045B1993ED0740FEC04462506D2E8A40D72A3406673FD1165C3BC37CBCBE755661CB7A63765670450E4682CFA254B8082F5D18973FB6B6DB0C3D4D4403C4C718318D1A7A5344F6393544BB898A89FFCCC0742A321E09373975F0751A71B844EC4174E05F6A0315782B4CC0C10B59834D64DBEAFE8349CD8B4DF45E64890DE500FFE911BBB920C45FED5F8A006A9768A253F17643AE0FBE4315BE04D86A0D995F923BDB42DD6A045B0F8BFA3247150F4395FFB7AF104703C642420FAFFA8D343857FDAE6B6D015569464D8A4075C15F5B8BC6062E70585054A3BE1865DDEDED029EF0A50066A5A44ABEF8AB599193C76E10D0F30F08BED4ACD95E2966CF92C206D0BB37BB39ACC70424E51CD51A97EC9D39535B200AF8240A0B7521475C7FD8610A1942FD6DAB8118EFD675113D818502198126DEE1C70546E7E601B47849FD7E0C7E1B68C452760446750770BF5F7C984BEBA01276287E05201AB4F83A90005E254221F4DA20E1DDDC141505C48BCA48FC0C6AA3A76668F4502D3A45D4668C1EA810140C33102BD9B6081C0D141C14E02223C55DC3CB0C1A9C9B90A2A0C9213A374B34CBE71914F00C03345EC40C8F7846F38046DBAED00C9762E268F850B650C8619D6B007151108C00B299AEFBCCFF25A808CC07A0059C3232323294908C88C2102F36842B009626D8101B930BC8A47509F4C2EFD6D4F7E15553058BD81DF76418239BFBD90309E103D35B1A3F7C6A74C4E3429964A190BC0CF86EFB6C9C25896C0A8D0350C3833D60FB19A167ABA7A274C3685C1329F373AF681815FC1EBC626BDB530F1D3737590448D100DF6F4F3D513DAC8D9B08721481E90B2DDBB6C77E0485011773EC2BB7C40C8BABBBB7C35BC5400450309568203163E82E0982052B9E9A1C5678DD54158965E8326B92C2D99ECF40830DFF06607C46B6A7CF440D54AD080D545023977A47A14C0CCB584B1EB98E9AB6E3E13018006AE46CF6D1BFB34F5019CE6814407B40282E0BBF76C8394045D8BBD83548A8D94CE00C7D03D4E436E4FB6A5558000C3200145B07B8DF5C6D4DE085CFD402E45D8B960D2E1AF93041346CF896EE7E1F45ECF909894D445136C2CCB6B585648BE02BD01F68F646463A0F70646067B000F395DE03044430EA606F64DB38C321483C34009DE1AE2B7EE97592B83053091D7622CA0A75009034033DDB34CD48566C7C34FEB832D9344DB303CEA4E4F20A33CBEDD96626443323243603FE35F0345DD335100BD0BC03E0A0D3344DD390B07A72884DD3344D5A684430261C345DD7340CFC7BF203E8DED7344DD3D4CAC0BA3E636CBAEE6C32367B6883162F06F433AE699ACE03CEBAAE9AAB67FF419A8C784C2693C96432D93F0DE0FF97FCEF3F9A9900B93FD8134000F03F7B14AE47E17A84D98EEEEC3F962517FF009FFCB32E0F01E638FD2005931901732E001E0826BE2F0029BB5A339257F24AA0344E35A06485BC24346C11258D9106E5FF2F0A47444933322E646C6C00636F6DFD1164B3670CB35348454C4C3608C8987214032A4002412065FE807C1A4000B7EFFFFFB71C4544075C44657669636520506172616D6574FFFDEDEE6572731B6E756D174953504C415923436F6E7472EFBEFDED6F6C531E25332E336400086C6563741775727265EA157F6B1A0F595354454D00DED66EFF39D70363617074693700672053EDF6B6D461D57341696E675C64690CFDD79AFB6F675F25642B6F680973797364616BB56DAD7A2F10708B6B071B09FBEDAD54346E736C156F7255524C0FED6DBBB94EA70F6368B073320072745BFDFF6DDB5F6C592E5D69AB0D0A252D3235733A2025736FDFC9920B177320160072202830200FF6FE7825382E3858291B0F342E34BEDB77AB8832660734185820052037EC9BED22487A2B1264074F377BEE373B25312E3166093C0B1A4DBA903D071D332D209CEFF0472E034F2F6EF92DE6DA5C1B02AFF32F73617665F863855BDC66697013576562207369D0B6FF562ADE687474703A2F2F77002EF8179CA1BD096F'

$sData  &= '6674070E23AD7079ED7F6B0B6B67207A63292032303036204E219F2F14DA20532288FB44756D70207600B9A46E9630312001456003AA07DFFC3F510C004D006F006E00690074720020004EACDBDCFF0061006D0065000D00530511690F6C1766BAB166756213103561115CD774DD6607633B7565255705FF1642DE216B000E0349004400090050EC7B6E73096F64151B13176F379B6D810D280F21339B6BBA6D2900B9520D6773411579E7BACD75254B1107001B455155E73E37F22000567327E70D1331756363DD7063613347EF6D0512C6CE62832B74618546B5717DEEAEEB7B653D633114004849857A3E37858D5174290A8157673DB8B111195331656519782F0436D60D6DD12025EDBA2FD66CB76F75A17B142F75C3171BEBCB7091743F8F6E590436C25862DD4D65652919B02FC27507AD6429165B28BA294C097739500729B9EC10212D138CD03DB84415F375A9745F54261C22341B0777AD2F0C9BE1C8000255F703C11E4CC3F6070D63190449683B6C81AC21315917319FEBBAAE4E81226961636C13D374CD88D134207821879ACB88F015686B237263088555F7C1352E8FA4A9A1DB5143396D0175436563161226171D9581097008234B730902905540CB0560A28CD71820474BC00DE06574463E41748062C06B1FFB7574657341134D6F64751519FFFEC04C4F1348616E646C114672656595DBD8B74C33726172791E50407661007B07B0066F8F496E744116AF75276053E719570714AD0B48601B6052894EB3B9F76F7572637E93B09900F763FFDB18671F4B65794578410E436C6F73650F742DE0330C6F6E6E7D0969C07EB6055379214F70656E30D95C7B7B5175651956616C06115AA6EE58C0A73C5F63C966700B5EFBB7805F3E5F6170705F74793D0F6DFB15DE095F666D020B657898701DBB7C7784680A72331161646A75736664D0B66D2D583B0E196DDC6805CAF7BAD9723D5D6D3F1F6736D885D61BEC3A67731C5F0D3BF7BD86106E3D09743C0A5863B5167387709E0D751706582B40EF05330BAD0CFC6D382C08704074661D437878839B60289F3AAD3D0C37B7B9054D6808136D9D073F3F75E6BBFD33405941585002405A0D320C49668B6DEE0D237879343C6EB29BB9615810180761747FEEEF6F54706F77B8746F6106146D70691782341B64B1B8A46173D850188C734B44D166794DDE365921DF0C576064444AC776E62A0A54D274654347F0083A21441684C6AEF08C55446CE99C49442DD6305B784368246437504C86C6F6CDDE645C2A0949426D91163663F6666F411C691E8D27D1363875E25450456AFE43A2FC4C0104000C2466E0000F010B010645EED93183001E13AF2D04D872D6743830400B020433AB25DD2C070C601678C9265F2B1007062ECFF292E858316450380890758140A7E81E176C67382E747307121F90EB29B85BD8042312602E728F902FC86D61FB4606A3244D76AFBB40022E2610640B1BDB948D4B2C27C04F7331002B7BCD60EB500A574F00B63A7B1B001DBD000000000000000009FF00000000000000000000000000000060BE006040008DBE00B0FFFF5783CDFFEB109090909090908A064688074701DB75078B1E83EEFC11DB72EDB80100000001DB75078B1E83EEFC11DB11C001DB73EF75098B1E83EEFC11DB73E431C983E803720DC1E0088A064683F0FF747489C501DB75078B1E83EEFC11DB11C901DB75078B1E83EEFC11DB11C975204101DB75078B1E83EEFC11DB11C901DB73EF75098B1E83EEFC11DB73E483C10281FD00F3FFFF83D1018D142F83FDFC760F8A02428807474975F7E963FFFFFF908B0283C204890783C70483E90477F101CFE94CFFFFFF5E89F7B9B60000008A07472CE83C0177F7803F0475F28B078A5F0466C1E808C1C01086C429F880EBE801F0890783C70589D8E2D98DBE005000008B0709C0743C8B5F048D84309074000001F35083C708FF96F4740000958A074708C074DC89F95748F2AE55FF96F874000009C07407890383C304EBE1FF96FC74000061E91BB4FFFF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200060000002000008010000000200100800000000000000000000000000000050001000000580000803F0000008000008040000000A800008045000000D00000807E000000F8000080000000000000000000000000000001000D04000070000000605700006E0000000000000000000000000000000000000000000000000001000D0400009800000090540000E60000000000000000000000000000000000000000000000000001000D040000C000000078550000AA0100000000000000000000000000000000000000000000000001000D040000E8000000D0570000680000000000000000000000000000000000000000000000000001000D0400001001000028570000360000000000000000000000000000000000000000000000000001000100000038010080000000000000000000000000000001000D04000050010000648100002C0300000000000000000000605100002C0334000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000001000000010000000100000001003F0000000000000004000400010000000000000000000000000000008C020000010053007400720069006E006700460069006C00650049006E006600'

$sData  &= '6F00000068020000010030003400300064003000340062003000000018000000010043006F006D006D0065006E0074007300000030000800010043006F006D00700061006E0079004E0061006D006500000000004E006900720053006F006600740000003A0009000100460069006C0065004400650073006300720069007000740069006F006E0000000000440075006D0070004500440049004400000000002A0005000100460069006C006500560065007200730069006F006E000000000031002E00300031000000000032000900010049006E007400650072006E0061006C004E0061006D0065000000440075006D0070004500440049004400000000005A001B0001004C006500670061006C0043006F007000790072006900670068007400000043006F0070007900720069006700680074002000A9002000320030003000360020004E0069007200200053006F00660065007200000000002800000001004C006500670061006C00540072006100640065006D00610072006B0073000000000042000D0001004F0072006900670069006E0061006C00460069006C0065006E0061006D0065000000440075006D00700045004400490044002E006500780065000000000020000000010050007200690076006100740065004200750069006C0064000000320009000100500072006F0064007500630074004E0061006D00650000000000440075006D0070004500440049004400000000002E0005000100500072006F006400750063007400560065007200730069006F006E00000031002E0030003100000000002000000001005300700065006300690061006C004200750069006C0064000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000D04B0040000000000000000000000001C850000F48400000000000000000000000000002985000004850000000000000000000000000000368500000C850000000000000000000000000000418500001485000000000000000000000000000000000000000000004C8500005A8500006A85000000000000788500000000000086850000000000008C850000000000004B45524E454C33322E444C4C0041445641504933322E646C6C004D53564352542E646C6C005553455233322E646C6C0000004C6F61644C69627261727941000047657450726F634164647265737300004578697450726F63657373000000526567436C6F73654B6579000000706F770000004C6F61644D656E7541000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
$sData=Binary($sData)

; сохраняем бинарные данные в файл DumpEDID.exe в папке Temp
$file = FileOpen(@TempDir&'\DumpEDID.exe',18)
FileWrite($file, $sData)
FileClose($file)


; Вытаскиваем разрешение экрана из потока данных
$rnim = Run(@TempDir&'\DumpEDID.exe', @TempDir, @SW_HIDE, 2)
$param=''
While 1
    $param &= StdoutRead($rnim)
    If @error Then ExitLoop
Wend
FileDelete ( @TempDir&'\DumpEDID.exe' ) ; если нужен файл DumpEDID.exe, то закомментировать эту строку
   $resize = StringRegExpReplace($param, '(?s)(.*Maximum Resolution.*?)(\d{3,}) X (\d{3,}).*', '\2|\3')
If $resize='' Then Exit ; выход из скрипта если данные не получены

$aResize=StringSplit($resize, '|')
; выход из скрипта, если в переменной окажутся разрешения экрана менее 800х600 или более 1600х1200
If $aResize[2]<600 Or $aResize[2]>1200 Or $aResize[1]<800 Or $aResize[1]>1600 Then Exit

; при согласии в мессаге проверяем наличие одной из утилит смены разрешения, стартуем её и выходим из скрипта.
; удаляем следующую строку 35 (MsgBox) и последнюю строку 53 (EndIf) для автоприменения параметров.
If MsgBox(4, 'Сообщение', 'Установить это разрешение экрана?'&@CRLF&@CRLF&$aResize[1]&' x '&$aResize[2])= "6" Then
	If FileExists(@SystemDir&'\MultiRes.exe') Then
		Run(@SystemDir&'\MultiRes.exe /'&$aResize[1]&','&$aResize[2]&',32,75 /exit', @SystemDir, @SW_HIDE)
		Exit
	EndIf
	If FileExists(@SystemDir&'\setres.exe') Then
		Run(@SystemDir&'\setres.exe h'&$aResize[1]&' v'&$aResize[2]&' b32 f75', @SystemDir, @SW_HIDE)
		Exit
	EndIf
	If FileExists(@SystemDir&'\nircmd.exe') Then
		Run(@SystemDir&'\nircmd.exe setdisplay '&$aResize[1]&' '&$aResize[2]&' 32 75', @SystemDir, @SW_HIDE)
		Exit
	EndIf
	If FileExists(@SystemDir&'\qres.exe') Then
		Run(@SystemDir&'\qres.exe /x '&$aResize[1]&' /y '&$aResize[2]&' /c:32 /r:60', @SystemDir, @SW_HIDE)
		Exit
	EndIf
EndIf
 
Верх