;You can compile and set icons by using Ahk2Exe.exe
;If AutoHotkey.exe wants to change its name to abc.exe, Please modify Ahk=%A_ScriptDir%\abc.exe
#NoEnv
#NoTrayIcon
#SingleInstance off
SetBatchLines, -1
if A_IsCompiled
{
Ahk=%A_ScriptDir%\AutoHotkey.exe
FileInstall, AutoHotkey.exe, %Ahk%
}
else Ahk=
s=
s.="u3615544364u640425871u1678942631u2998343137u1434168171u24144"
s.="22854u772521359u1756970362u3066806505u2948737519u2564818243u"
s.="2449174105u2470363807u2046098044u1176484537u753332805u144264"
s.="7071u3603934027u1704982060u1720653216u1717746215u2145304324u"
s.="2022014845u2450424837u1702705391u2083667246u1068506747u35912"
s.="17833u3567719997u4162667514u2129365389u2723952462u1525863173"
s.="u2222899184u1692923901u242574513u216693403u2963745829u718981"
s.="056u1324710236u2397062842u3985251485u1924680786u3511329402u2"
s.="765269931u2804855524u2674235380u559259332u3905445868u4121789"
s.="599u2285549183u2494847797u874810689u795732698u472106884u3975"
s.="83621u2678606513u3136499948u3997704009u161416582u747610977u2"
s.="88358265u188618026u4014534859u3796439682u1110548997u66311011"
s.="4u2270712076u1696076242u1382773540u3487575563u3174960995u130"
s.="2045773u602562885u1791502172u3241600183u1207147742u346363523"
s.="0u3186766107u1142420846u1009666957u198000602u428649069u17667"
s.="60136u3390089281u535903475u436317139u4026351642u4068193294u3"
s.="267729071u1630205007u2979649261u4232722617u1123717274u278387"
s.="8208u1812034631u862579282u1011910245u3600252882u1609112547u1"
s.="101394236u1965178868u3677614267u240598878u2525420086u1595062"
s.="285u2518980276u3736630425u2506266157u764003753u1299449414u38"
s.="52875241u1794952988u3898121535u2392805954u2350784593u2792426"
s.="391u1744270517u30419991u1136596227u408909267u728149600u20841"
s.="83426u2400998859u4240037256u981776391u38117303u1081278912u34"
s.="52688954u77802657u3095605702u1868956753u1731106827u365244077"
s.="0u2264141526u4184885599u3276924816u3685867724u1991023020u239"
s.="2232640u4201584499u3541082063u2926974970u2266570825u43053333"
s.="5u331963475u821374591u2875498530u305018594u2997342869u184010"
s.="899u733340682u1097338808u4096342061u344693412u1195950882u408"
s.="0138981u1688909159u2340593351u2100746564u3931464179u19601379"
s.="32u4073936935u4251077432u4042229591u1086876548u3500902716u26"
s.="97653630u1076383049u1074895766u3488231572u1344405233u3398082"
s.="629u1388949613u3947357476u4092949742u2992316084u2008923535u2"
s.="169519803u3328859573u3614419466u2931365463u3125838056u295267"
s.="610u2901999989u3534058461u1627909026u2262130187u2257430578u3"
s.="536603377u3114113610u100252352u1944387908u3852812072u1776317"
s.="74u4236390291u1143291528u177031840u4284211020u1170893656u387"
s.="8521616u2095949919u3099089818u1309440318u3578245551u15953896"
s.="23u1881206342u4193841994u2702666366u549454016u3664020108u151"
s.="7427063u4093142272u3694002289u1235703057u835645461u334291221"
s.="5u545235360u745574558u86075238u329833843u2228859431u28253925"
s.="50u428500563u81377559u54930262u2816278535u645034616u22259788"
s.="73u877997922u1752469965u405996387u3716751611u3336718098u3947"
s.="666161u3569172750u2020821742u3184390954u4253135794u113192852"
s.="7u2389790164u2812110344u1368128187u3940192987u3448399953u102"
s.="9558322u1274758517u997043498u3312446598u3850928480u117532518"
s.="0u3869515356u4277967424u236564922u3969221838u4231207882u3816"
s.="982756u1106434464u2520908350u4104278725u2276099323u308975064"
s.="9u4124712992u2791601499u1860537930u3050092495u3666898420u271"
s.="4048375u887680006u565224823u1649816895u1329131102u471320963u"
s.="833203534u1513760393u1871841973u3878171571u3835446831u332354"
s.="032u296707096u3216041582u154325801u924702447u2153137039u1776"
s.="92556u488146630u2871030808u3180895080u2109010067u1927416287u"
s.="145782876u2113606017u3373208635u3425471270u1835502207u188789"
s.="5930u3892335673u2175089327u13554931u2590227321u3283621167u15"
s.="92659406u1857450587u2312104660u2724322670u2567083657u6338004"
s.="10u2626699304u2452932291u3821871599u3674733096u2899531036u34"
s.="77682227u2584663766u815364049u2069304982u2868030697u38020348"
s.="15u1838178211u625845450u1668706351u2047638539u426304105u8072"
s.="35077u1589111643u27361823u4111552656u2553734992u1971909090u3"
s.="720712061u1941000186u1541205376u2817803867u74771486u28795482"
s.="90u2278101325u1776814399u2972213696u3366918889u2412147701u62"
s.="8204019u2597266383u646594158u471121955u2862375311u1075170464"
s.="u3235572933u3597359065u1466794510u3626251175u972441319u31250"
s.="49413u3305965548u2728816747u2371043397u1792747774u3966012085"
s.="u3278372566u1516598054u2970543965u2108614587u2012673536u8948"
s.="85685u2945281437u3291447177u3494707370u1346478287u3700400616"
s.="u1761168575u700665654u2572313318u1510303080u794117407u173130"
s.="0277u1827282593u2760598794u1063314248u1175680104u1124152889u"
s.="3393013446u1656446721u3886746426u3862964789u1801606648u40019"
s.="70076u331392662u3591410244u2072281413u410481081u888783327u25"
s.="34699350u3014639971u4242027781u328085228u1196720645u15746651"
s.="99u1851539689u2312768205u4176024189u2488163407u4282984571u38"
s.="2279273u1413406431u1806521640u715567204u844765620u2098305848"
s.="u80708636u3483745573u1211469321u316756761u192750608u34041211"
s.="98u4061444179u2975664460u3638656331u1114373957u3865894614u13"
s.="96431039u4151687187u4274626795u4057107093u2556316560u2336830"
s.="793u3800357593u1218541952u2071279914u1632983001u55380477u905"
s.="300814u2604810123u1307640042u840965133u2472087471u2085130015"
s.="u3714155185u2984731539u1637879158u2755081031u1408294202u2475"
s.="90609u2152978909u2099266594u1824993072u303215537u3061578197u"
s.="2500028133u3210783971u3038829804u3646348035u1418236567u41417"
s.="14574u2783254531u2930383759u1180042201u1225589111u1850399360"
s.="u3743781989u2255586353u4181541430u2061097753u2934079875u3197"
s.="479138u4070395717u1709549529u2231656679u2100359958u509423176"
s.="u875519628u2760484678u308766619u47591474u3148773485u30164315"
s.="17u1932429574u3948554342u2270111478u2562561326u1718533175u41"
s.="55386440u3519075971u2792543598u3695689893u2967814014u4066793"
s.="339u766848581u1075057773u2070866773u2178559615u3428631816u13"
s.="71857738u2621930013u2086384735u2624187932"
Exec(s, Ahk)
ExitApp
Exec(str, Ahk="", arg="") {
static MyFunc, base, ScriptName:=%True%
s:=RegExReplace(str,"\s"), StrReplace(s,"u","",size)
VarSetCapacity(str,(size+1)*4,0), s:=SubStr(s,InStr(s,"u")+1)
Loop, Parse, s, u
NumPut(A_LoopField, str, (A_Index-1)*4, "uint")
;-----------------------------
Ahk:=Ahk ? Ahk : A_IsCompiled
? A_ScriptDir "\AutoHotkey.exe" : A_AhkPath
IfNotExist, %Ahk%
{
MsgBox, 4096, Error!, `n`nCan't Find: %Ahk% !`n`n
return, 0
}
if !MyFunc
{
x32:="5557565381EC4C0100008B9C24680100008BBC246C01000"
. "08BAC24700100008B433C01D88038500F85380500008078014"
. "50F852E0500008B706085F60F84FF04000031C9837864010F9"
. "2C119D283E210894C245083C2788B341001DE8B4E188974243"
. "C8B562085C90F84E504000031C08D3413EB0B83C00139C10F8"
. "4D30400008B1486813C134765745075E9817C1304726F63417"
. "5DF8B74243C8D04430346240FB7008D048303461C8B3085F60"
. "F84A0040000B86500000001DE891C2466894424688D442460C"
. "744246057726974C74424646546696C89442404FFD683EC088"
. "944243C8D442475891C24C7442475476C6F62C7442479616C4"
. "16CC744247D6C6F630089442404FFD683EC08BA65650000894"
. "424548D44246A6689542472891C24C744246A476C6F62C7442"
. "46E616C4672C64424740089442404FFD683EC08B9734100008"
. "94424488D84248D00000066898C2499000000891C24C784248"
. "D00000043726561C784249100000074655072C784249500000"
. "06F636573C684249B0000000089442404FFD683EC088944245"
. "C8D8424BE000000891C24C78424BE00000043726561C78424C"
. "200000074654E61C78424C60000006D656450C78424CA00000"
. "069706541C68424CE0000000089442404FFD683EC088944245"
. "88D8424CF000000891C24C78424CF000000436F6E6EC78424D"
. "30000006563744EC78424D7000000616D6564C78424DB00000"
. "050697065C68424DF0000000089442404FFD683EC088944244"
. "08D842481000000891C24C7842481000000436C6F73C784248"
. "50000006548616EC7842489000000646C650089442404FFD68"
. "3EC088D5C24608944244CC744241000000000C744240800000"
. "000897C2404895C240CC7042400000000FF54243C83EC14807"
. "C2460000F85E50200008D34AD04000000C7042400000000897"
. "4244489742404FF54245483EC0885C089C30F841703000031C"
. "085ED7415908B148789148383C00139C575F38B44244483E80"
. "4C7040300000000C784249C0000000B000000BA0B000000C78"
. "424A00000000D000000C78424A40000001100000031C0C7842"
. "4A800000013000000EB0C89C283E2038B94949C00000069D28"
. "300000089C183E10301C283C00183F86489948C9C00000075D"
. "831D285ED742D669089D183E10369848C9C000000830000000"
. "1D089848C9C000000330493D1C083C00189049383C20139D57"
. "5D58B8424640100008B742458C744241C00000000C74424180"
. "0000000C744241400000000C744241000000000C744240CFF0"
. "00000C744240800000000C744240402000000890424FFD683E"
. "C2089C78B842464010000C744241C00000000C744241800000"
. "000C744241400000000C744241000000000C744240CFF00000"
. "0C744240800000000C744240402000000890424FFD683EC208"
. "3FFFF89C60F849D01000083F8FF0F84940100008D8C24E0000"
. "0008D94244001000089C8C7000000000083C00439C275F3837"
. "C245001894C2420C744241C00000000C744241800000000C74"
. "4241400000000C744241000000000C744240C00000000C7442"
. "4080000000019C0C704240000000083E0E483C060898424E00"
. "000008D8424AC000000894424248B84246001000089442404F"
. "F54245C83EC2885C00F84DA0000008B6C244C8B8424AC00000"
. "089042489E8FFD083EC048B8424B000000089042489E8FFD08"
. "3EC04893C24C744240400000000FF54244083EC0889E8893C2"
. "4FFD083EC04893424C744240400000000FF54244083EC088D4"
. "42460895C2404893424C7442410000000008944240C8B44244"
. "489442408FF54243C83EC1489E8893424FFD083EC04891C24F"
. "F54244883EC0431C081C44C0100005B5E5F5DC21400C744245"
. "001000000BA88000000E904FBFFFFB8FEFFFFFF81C44C01000"
. "05B5E5F5DC2140081C44C010000B8FFFFFFFF5B5E5F5DC2140"
. "0B8FDFFFFFFEBDA893C248B7C244C89F8FFD083EC0489F8893"
. "424FFD083EC04891C24FF542448B8FAFFFFFF83EC04EBB1893"
. "C248B7C244C89F8FFD083EC0489F8893424FFD083EC04891C2"
. "4FF542448B8FBFFFFFF83EC04EB88B8FCFFFFFFEB8190"
x64:="4157415641554154555756534881EC98010000B8FFFFFFF"
. "F8BB4240002000048899424E8010000418B503C4D89C748898"
. "C24E00100004D89CC4C01C2803A500F858C040000807A01450"
. "F8582040000448B42604585C00F8489040000837A64014819C"
. "031FF83E0104883C078837A6401400F92C7897C245C448B0C0"
. "2B8FEFFFFFF4D01F9418B4918418B512085C90F843D0400003"
. "1C04D8D0417EB100F1F40004883C00139C10F864B040000418"
. "B148041813C174765745075E641817C1704726F634175DB418"
. "B5124498D04470FB71410418B411C498D14978B3C0285FF0F8"
. "41304000048B8577269746546696C488D6C24704C01FF48894"
. "42470B8650000004C89F94889EA6689442478FFD74989C548B"
. "8476C6F62616C416C488D9424900000004C89F948898424900"
. "00000C78424980000006C6F6300FFD7BA656500004889C348B"
. "8476C6F62616C467266899424880000004C89F9488D9424800"
. "000004889842480000000C684248A00000000FFD7B97341000"
. "0488944245048B8437265617465507266898C24BC000000488"
. "D9424B00000004C89F948898424B0000000C78424B80000006"
. "F636573C68424BE00000000FFD7488944246048B8437265617"
. "4654E61488D9424D000000048898424D000000048B86D65645"
. "0697065414C89F948898424D8000000C68424E000000000FFD"
. "74989C648B8436F6E6E6563744E488D9424F00000004889842"
. "4F000000048B8616D6564506970654C89F948898424F800000"
. "0C684240001000000FFD7488944246848B8436C6F736548616"
. "E488D9424A00000004C89F948898424A0000000C78424A8000"
. "000646C6500FFD74531C031C94889C748C7442420000000004"
. "989E94C89E241FFD5807C247000B8FDFFFFFF0F85490200008"
. "D14B50400000031C94989D7FFD34885C04889C30F849202000"
. "031C085F6741D0F1F840000000000418B14848914834883C00"
. "139C677F189F048C1E002C7040300000000C78424C00000000"
. "B000000BA0B000000C78424C40000000D000000C78424C8000"
. "0001100000031C0C78424CC00000013000000EB0C89C283E20"
. "38B9494C000000069D28300000089C183E10301C283C00183F"
. "86489948CC000000075D831D285F6742E904889D183E103698"
. "48CC00000008300000001D089848CC0000000330493D1C083C"
. "0018904934883C20139D677D34531C041B9FF000000BA02000"
. "000488B8C24E801000048C744243800000000C744243000000"
. "000C744242800000000C74424200000000041FFD64889C6453"
. "1C048C744243800000000C744243000000000C744242800000"
. "00041B9FF000000C744242000000000BA02000000488B8C24E"
. "801000041FFD64883FEFF4989C40F84380100004883F8FF0F8"
. "42E010000488D8C2430010000488D9424900100004889C8669"
. "0C700000000004883C0044839C275F1837C245C0148894C244"
. "048C74424380000000048C744243000000000C744242800000"
. "000C744242000000000488B9424E001000019C04531C94531C"
. "083E0E431C983C06089842430010000488D842410010000488"
. "9442448488B442460FFD085C00F8488000000488B8C2410010"
. "000FFD7488B8C2418010000FFD74C8B74246831D24889F14C8"
. "9F0FFD04889F1FFD731D24C89E14C89F0FFD04989E94589F84"
. "889DA4C89E148C74424200000000041FFD54C89E1FFD74889D"
. "9488B442450FFD031C04881C4980100005B5E5F5D415C415D4"
. "15E415FC3B888000000C744245C01000000E981FBFFFFB8FEF"
. "FFFFFEBD34889F1FFD74C89E1FFD74889D9488B442450FFD0B"
. "8FAFFFFFFEBB84889F1FFD74C89E1FFD74889D9488B442450F"
. "FD0B8FBFFFFFFEB9DB8FCFFFFFFEB969090909090"
hex:=A_PtrSize=8 ? x64:x32
VarSetCapacity(MyFunc, len:=StrLen(hex)//2)
Loop, % len
NumPut("0x" SubStr(hex,2*A_Index-1,2),MyFunc,A_Index-1,"uchar")
DllCall("VirtualProtect","ptr",&MyFunc,"ptr",len,"uint",0x40,"ptr*",0)
base:=DllCall("GetModuleHandle", "Str","Kernel32", "ptr")
ScriptName:=ScriptName ? ScriptName : A_ScriptFullPath
}
; Random, n, 1, 1000000
pipe_name:="\\.\pipe\" . A_ScriptName
; n
cmdline="%Ahk%" "%pipe_name%" "%ScriptName%" %arg%
DllCall(&MyFunc, "AStr",cmdline, "AStr",pipe_name
, "ptr",base, "ptr",&str, "uint",size)
return, 1
}