Code:
GLOBAL Const $GUI_EVENT_CLOSE = -3
Global Const $GUI_EVENT_MINIMIZE = -4
Global Const $GUI_EVENT_RESTORE = -5
Global Const $GUI_EVENT_MAXIMIZE = -6
Global Const $GUI_EVENT_PRIMARYDOWN = -7
Global Const $GUI_EVENT_PRIMARYUP = -8
Global Const $GUI_EVENT_SECONDARYDOWN = -9
Global Const $GUI_EVENT_SECONDARYUP = -10
Global Const $GUI_EVENT_MOUSEMOVE = -11
Global Const $GUI_EVENT_RESIZED = -12
Global Const $GUI_EVENT_DROPPED = -13
Global Const $GUI_RUNDEFMSG = "GUI_RUNDEFMSG"
Global Const $GUI_AVISTOP = 0
Global Const $GUI_AVISTART = 1
Global Const $GUI_AVICLOSE = 2
Global Const $GUI_CHECKED = 1
Global Const $GUI_INDETERMINATE = 2
Global Const $GUI_UNCHECKED = 4
Global Const $GUI_DROPACCEPTED = 8
Global Const $GUI_NODROPACCEPTED = 4096
Global Const $GUI_ACCEPTFILES = $GUI_DROPACCEPTED
Global Const $GUI_SHOW = 16
Global Const $GUI_HIDE = 32
Global Const $GUI_ENABLE = 64
Global Const $GUI_DISABLE = 128
Global Const $GUI_FOCUS = 256
Global Const $GUI_NOFOCUS = 8192
Global Const $GUI_DEFBUTTON = 512
Global Const $GUI_EXPAND = 1024
Global Const $GUI_ONTOP = 2048
Global Const $GUI_FONTITALIC = 2
Global Const $GUI_FONTUNDER = 4
Global Const $GUI_FONTSTRIKE = 8
Global Const $GUI_DOCKAUTO = 1
Global Const $GUI_DOCKLEFT = 2
Global Const $GUI_DOCKRIGHT = 4
Global Const $GUI_DOCKHCENTER = 8
Global Const $GUI_DOCKTOP = 32
Global Const $GUI_DOCKBOTTOM = 64
Global Const $GUI_DOCKVCENTER = 128
Global Const $GUI_DOCKWIDTH = 256
Global Const $GUI_DOCKHEIGHT = 512
Global Const $GUI_DOCKSIZE = 768
Global Const $GUI_DOCKMENUBAR = 544
Global Const $GUI_DOCKSTATEBAR = 576
Global Const $GUI_DOCKALL = 802
Global Const $GUI_DOCKBORDERS = 102
Global Const $GUI_GR_CLOSE = 1
Global Const $GUI_GR_LINE = 2
Global Const $GUI_GR_BEZIER = 4
Global Const $GUI_GR_MOVE = 6
Global Const $GUI_GR_COLOR = 8
Global Const $GUI_GR_RECT = 10
Global Const $GUI_GR_ELLIPSE = 12
Global Const $GUI_GR_PIE = 14
Global Const $GUI_GR_DOT = 16
Global Const $GUI_GR_PIXEL = 18
Global Const $GUI_GR_HINT = 20
Global Const $GUI_GR_REFRESH = 22
Global Const $GUI_GR_PENSIZE = 24
Global Const $GUI_GR_NOBKCOLOR = -2
Global Const $GUI_BKCOLOR_DEFAULT = -1
Global Const $GUI_BKCOLOR_TRANSPARENT = -2
Global Const $GUI_BKCOLOR_LV_ALTERNATE = -33554432
Global Const $GUI_WS_EX_PARENTDRAG = 1048576
Global Const $GUI_SWITCH = "Андроид"
Global Const $WS_TILED = 0
Global Const $WS_OVERLAPPED = 0
Global Const $WS_MAXIMIZEBOX = 65536
Global Const $WS_MINIMIZEBOX = 131072
Global Const $WS_TABSTOP = 65536
Global Const $WS_GROUP = 131072
Global Const $WS_SIZEBOX = 262144
Global Const $WS_THICKFRAME = 262144
Global Const $WS_SYSMENU = 524288
Global Const $WS_HSCROLL = 1048576
Global Const $WS_VSCROLL = 2097152
Global Const $WS_DLGFRAME = 4194304
Global Const $WS_BORDER = 8388608
Global Const $WS_CAPTION = 12582912
Global Const $WS_OVERLAPPEDWINDOW = 13565952
Global Const $WS_TILEDWINDOW = 13565952
Global Const $WS_MAXIMIZE = 16777216
Global Const $WS_CLIPCHILDREN = 33554432
Global Const $WS_CLIPSIBLINGS = 67108864
Global Const $WS_DISABLED = 134217728
Global Const $WS_VISIBLE = 268435456
Global Const $WS_MINIMIZE = 536870912
Global Const $WS_CHILD = 1073741824
Global Const $WS_POPUP = -2147483648
Global Const $WS_POPUPWINDOW = -2138570752
Global Const $DS_MODALFRAME = 128
Global Const $DS_SETFOREGROUND = 512
Global Const $DS_CONTEXTHELP = 8192
Global Const $WS_EX_ACCEPTFILES = 16
Global Const $WS_EX_MDICHILD = 64
Global Const $WS_EX_APPWINDOW = 262144
Global Const $WS_EX_COMPOSITED = 33554432
Global Const $WS_EX_CLIENTEDGE = 512
Global Const $WS_EX_CONTEXTHELP = 1024
Global Const $WS_EX_DLGMODALFRAME = 1
Global Const $WS_EX_LEFTSCROLLBAR = 16384
Global Const $WS_EX_OVERLAPPEDWINDOW = 768
Global Const $WS_EX_RIGHT = 4096
Global Const $WS_EX_STATICEDGE = 131072
Global Const $WS_EX_TOOLWINDOW = 128
Global Const $WS_EX_TOPMOST = 8
Global Const $WS_EX_TRANSPARENT = 32
Global Const $WS_EX_WINDOWEDGE = 256
Global Const $WS_EX_LAYERED = 524288
Global Const $WS_EX_CONTROLPARENT = 65536
Global Const $WS_EX_LAYOUTRTL = 4194304
Global Const $WS_EX_RTLREADING = 8192
Global Const $WM_GETTEXTLENGTH = 14
Global Const $WM_GETTEXT = 13
Global Const $WM_SIZE = 5
Global Const $WM_SIZING = 532
Global Const $WM_USER = 1024
Global Const $WM_CREATE = 1
Global Const $WM_DESTROY = 2
Global Const $WM_MOVE = 3
Global Const $WM_ACTIVATE = 6
Global Const $WM_SETFOCUS = 7
Global Const $WM_KILLFOCUS = 8
Global Const $WM_ENABLE = 10
Global Const $WM_SETREDRAW = 11
Global Const $WM_SETTEXT = 12
Global Const $WM_PAINT = 15
Global Const $WM_CLOSE = 16
Global Const $WM_QUIT = 18
Global Const $WM_ERASEBKGND = 20
Global Const $WM_SYSCOLORCHANGE = 21
Global Const $WM_SHOWWINDOW = 24
Global Const $WM_WININICHANGE = 26
Global Const $WM_DEVMODECHANGE = 27
Global Const $WM_ACTIVATEAPP = 28
Global Const $WM_FONTCHANGE = 29
Global Const $WM_TIMECHANGE = 30
Global Const $WM_CANCELMODE = 31
Global Const $WM_SETCURSOR = 32
Global Const $WM_MOUSEACTIVATE = 33
Global Const $WM_CHILDACTIVATE = 34
Global Const $WM_QUEUESYNC = 35
Global Const $WM_GETMINMAXINFO = 36
Global Const $WM_PAINTICON = 38
Global Const $WM_ICONERASEBKGND = 39
Global Const $WM_NEXTDLGCTL = 40
Global Const $WM_SPOOLERSTATUS = 42
Global Const $WM_DRAWITEM = 43
Global Const $WM_MEASUREITEM = 44
Global Const $WM_DELETEITEM = 45
Global Const $WM_VKEYTOITEM = 46
Global Const $WM_CHARTOITEM = 47
Global Const $WM_SETFONT = 48
Global Const $WM_GETFONT = 49
Global Const $WM_SETHOTKEY = 50
Global Const $WM_GETHOTKEY = 51
Global Const $WM_QUERYDRAGICON = 55
Global Const $WM_COMPAREITEM = 57
Global Const $WM_GETOBJECT = 61
Global Const $WM_COMPACTING = 65
Global Const $WM_COMMNOTIFY = 68
Global Const $WM_WINDOWPOSCHANGING = 70
Global Const $WM_WINDOWPOSCHANGED = 71
Global Const $WM_POWER = 72
Global Const $WM_NOTIFY = 78
Global Const $WM_COPYDATA = 74
Global Const $WM_CANCELJOURNAL = 75
Global Const $WM_INPUTLANGCHANGEREQUEST = 80
Global Const $WM_INPUTLANGCHANGE = 81
Global Const $WM_TCARD = 82
Global Const $WM_HELP = 83
Global Const $WM_USERCHANGED = 84
Global Const $WM_NOTIFYFORMAT = 85
Global Const $WM_CUT = 768
Global Const $WM_COPY = 769
Global Const $WM_PASTE = 770
Global Const $WM_CLEAR = 771
Global Const $WM_UNDO = 772
Global Const $WM_CONTEXTMENU = 123
Global Const $WM_STYLECHANGING = 124
Global Const $WM_STYLECHANGED = 125
Global Const $WM_DISPLAYCHANGE = 126
Global Const $WM_GETICON = 127
Global Const $WM_SETICON = 128
Global Const $WM_NCCREATE = 129
Global Const $WM_NCDESTROY = 130
Global Const $WM_NCCALCSIZE = 131
Global Const $WM_NCHITTEST = 132
Global Const $WM_NCPAINT = 133
Global Const $WM_NCACTIVATE = 134
Global Const $WM_GETDLGCODE = 135
Global Const $WM_SYNCPAINT = 136
Global Const $WM_NCMOUSEMOVE = 160
Global Const $WM_NCLBUTTONDOWN = 161
Global Const $WM_NCLBUTTONUP = 162
Global Const $WM_NCLBUTTONDBLCLK = 163
Global Const $WM_NCRBUTTONDOWN = 164
Global Const $WM_NCRBUTTONUP = 165
Global Const $WM_NCRBUTTONDBLCLK = 166
Global Const $WM_NCMBUTTONDOWN = 167
Global Const $WM_NCMBUTTONUP = 168
Global Const $WM_NCMBUTTONDBLCLK = 169
Global Const $WM_KEYDOWN = 256
Global Const $WM_KEYUP = 257
Global Const $WM_CHAR = 258
Global Const $WM_DEADCHAR = 259
Global Const $WM_SYSKEYDOWN = 260
Global Const $WM_SYSKEYUP = 261
Global Const $WM_SYSCHAR = 262
Global Const $WM_SYSDEADCHAR = 263
Global Const $WM_INITDIALOG = 272
Global Const $WM_COMMAND = 273
Global Const $WM_SYSCOMMAND = 274
Global Const $WM_TIMER = 275
Global Const $WM_HSCROLL = 276
Global Const $WM_VSCROLL = 277
Global Const $WM_INITMENU = 278
Global Const $WM_INITMENUPOPUP = 279
Global Const $WM_MENUSELECT = 287
Global Const $WM_MENUCHAR = 288
Global Const $WM_ENTERIDLE = 289
Global Const $WM_MENURBUTTONUP = 290
Global Const $WM_MENUDRAG = 291
Global Const $WM_MENUGETOBJECT = 292
Global Const $WM_UNINITMENUPOPUP = 293
Global Const $WM_MENUCOMMAND = 294
Global Const $WM_CHANGEUISTATE = 295
Global Const $WM_UPDATEUISTATE = 296
Global Const $WM_QUERYUISTATE = 297
Global Const $WM_CTLCOLORMSGBOX = 306
Global Const $WM_CTLCOLOREDIT = 307
Global Const $WM_CTLCOLORLISTBOX = 308
Global Const $WM_CTLCOLORBTN = 309
Global Const $WM_CTLCOLORDLG = 310
Global Const $WM_CTLCOLORSCROLLBAR = 311
Global Const $WM_CTLCOLORSTATIC = 312
Global Const $WM_CTLCOLOR = 25
Global Const $MN_GETHMENU = 481
Global Const $NM_FIRST = 0
Global Const $NM_OUTOFMEMORY = $NM_FIRST - 1
Global Const $NM_CLICK = $NM_FIRST - 2
Global Const $NM_DBLCLK = $NM_FIRST - 3
Global Const $NM_RETURN = $NM_FIRST - 4
Global Const $NM_RCLICK = $NM_FIRST - 5
Global Const $NM_RDBLCLK = $NM_FIRST - 6
Global Const $NM_SETFOCUS = $NM_FIRST - 7
Global Const $NM_KILLFOCUS = $NM_FIRST - 8
Global Const $NM_CUSTOMDRAW = $NM_FIRST - 12
Global Const $NM_HOVER = $NM_FIRST - 13
Global Const $NM_NCHITTEST = $NM_FIRST - 14
Global Const $NM_KEYDOWN = $NM_FIRST - 15
Global Const $NM_RELEASEDCAPTURE = $NM_FIRST - 16
Global Const $NM_SETCURSOR = $NM_FIRST - 17
Global Const $NM_CHAR = $NM_FIRST - 18
Global Const $NM_TOOLTIPSCREATED = $NM_FIRST - 19
Global Const $NM_LDOWN = $NM_FIRST - 20
Global Const $NM_RDOWN = $NM_FIRST - 21
Global Const $NM_THEMECHANGED = $NM_FIRST - 22
Global Const $WM_MOUSEMOVE = 512
Global Const $WM_LBUTTONDOWN = 513
Global Const $WM_LBUTTONUP = 514
Global Const $WM_LBUTTONDBLCLK = 515
Global Const $WM_RBUTTONDOWN = 516
Global Const $WM_RBUTTONUP = 517
Global Const $WM_RBUTTONDBLCK = 518
Global Const $WM_MBUTTONDOWN = 519
Global Const $WM_MBUTTONUP = 520
Global Const $WM_MBUTTONDBLCK = 521
Global Const $WM_MOUSEWHEEL = 522
Global Const $WM_XBUTTONDOWN = 523
Global Const $WM_XBUTTONUP = 524
Global Const $WM_XBUTTONDBLCLK = 525
Global Const $WM_MOUSEHWHEEL = 526
Global Const $PS_SOLID = 0
Global Const $PS_DASH = 1
Global Const $PS_DOT = 2
Global Const $PS_DASHDOT = 3
Global Const $PS_DASHDOTDOT = 4
Global Const $PS_NULL = 5
Global Const $PS_INSIDEFRAME = 6
Global Const $LWA_ALPHA = 2
Global Const $LWA_COLORKEY = 1
Global Const $RGN_AND = 1
Global Const $RGN_OR = 2
Global Const $RGN_XOR = 3
Global Const $RGN_DIFF = 4
Global Const $RGN_COPY = 5
Global Const $ERRORREGION = 0
Global Const $NULLREGION = 1
Global Const $SIMPLEREGION = 2
Global Const $COMPLEXREGION = 3
Global Const $TRANSPARENT = 1
Global Const $OPAQUE = 2
Global Const $CCM_FIRST = 8192
Global Const $CCM_GETUNICODEFORMAT = ($CCM_FIRST + 6)
Global Const $CCM_SETUNICODEFORMAT = ($CCM_FIRST + 5)
Global Const $CCM_SETBKCOLOR = $CCM_FIRST + 1
Global Const $CCM_SETCOLORSCHEME = $CCM_FIRST + 2
Global Const $CCM_GETCOLORSCHEME = $CCM_FIRST + 3
Global Const $CCM_GETDROPTARGET = $CCM_FIRST + 4
Global Const $CCM_SETWINDOWTHEME = $CCM_FIRST + 11
Global Const $GA_PARENT = 1
Global Const $GA_ROOT = 2
Global Const $GA_ROOTOWNER = 3
Global Const $SM_CXSCREEN = 0
Global Const $SM_CYSCREEN = 1
Global Const $SM_CXVSCROLL = 2
Global Const $SM_CYHSCROLL = 3
Global Const $SM_CYCAPTION = 4
Global Const $SM_CXBORDER = 5
Global Const $SM_CYBORDER = 6
Global Const $SM_CXDLGFRAME = 7
Global Const $SM_CYDLGFRAME = 8
Global Const $SM_CYVTHUMB = 9
Global Const $SM_CXHTHUMB = 10
Global Const $SM_CXICON = 11
Global Const $SM_CYICON = 12
Global Const $SM_CXCURSOR = 13
Global Const $SM_CYCURSOR = 14
Global Const $SM_CYMENU = 15
Global Const $SM_CXFULLSCREEN = 16
Global Const $SM_CYFULLSCREEN = 17
Global Const $SM_CYKANJIWINDOW = 18
Global Const $SM_MOUSEPRESENT = 19
Global Const $SM_CYVSCROLL = 20
Global Const $SM_CXHSCROLL = 21
Global Const $SM_DEBUG = 22
Global Const $SM_SWAPBUTTON = 23
Global Const $SM_RESERVED1 = 24
Global Const $SM_RESERVED2 = 25
Global Const $SM_RESERVED3 = 26
Global Const $SM_RESERVED4 = 27
Global Const $SM_CXMIN = 28
Global Const $SM_CYMIN = 29
Global Const $SM_CXSIZE = 30
Global Const $SM_CYSIZE = 31
Global Const $SM_CXFRAME = 32
Global Const $SM_CYFRAME = 33
Global Const $SM_CXMINTRACK = 34
Global Const $SM_CYMINTRACK = 35
Global Const $SM_CXDOUBLECLK = 36
Global Const $SM_CYDOUBLECLK = 37
Global Const $SM_CXICONSPACING = 38
Global Const $SM_CYICONSPACING = 39
Global Const $SM_MENUDROPALIGNMENT = 40
Global Const $SM_PENWINDOWS = 41
Global Const $SM_DBCSENABLED = 42
Global Const $SM_CMOUSEBUTTONS = 43
Global Const $SM_SECURE = 44
Global Const $SM_CXEDGE = 45
Global Const $SM_CYEDGE = 46
Global Const $SM_CXMINSPACING = 47
Global Const $SM_CYMINSPACING = 48
Global Const $SM_CXSMICON = 49
Global Const $SM_CYSMICON = 50
Global Const $SM_CYSMCAPTION = 51
Global Const $SM_CXSMSIZE = 52
Global Const $SM_CYSMSIZE = 53
Global Const $SM_CXMENUSIZE = 54
Global Const $SM_CYMENUSIZE = 55
Global Const $SM_ARRANGE = 56
Global Const $SM_CXMINIMIZED = 57
Global Const $SM_CYMINIMIZED = 58
Global Const $SM_CXMAXTRACK = 59
Global Const $SM_CYMAXTRACK = 60
Global Const $SM_CXMAXIMIZED = 61
Global Const $SM_CYMAXIMIZED = 62
Global Const $SM_NETWORK = 63
Global Const $SM_CLEANBOOT = 67
Global Const $SM_CXDRAG = 68
Global Const $SM_CYDRAG = 69
Global Const $SM_SHOWSOUNDS = 70
Global Const $SM_CXMENUCHECK = 71
Global Const $SM_CYMENUCHECK = 72
Global Const $SM_SLOWMACHINE = 73
Global Const $SM_MIDEASTENABLED = 74
Global Const $SM_MOUSEWHEELPRESENT = 75
Global Const $SM_XVIRTUALSCREEN = 76
Global Const $SM_YVIRTUALSCREEN = 77
Global Const $SM_CXVIRTUALSCREEN = 78
Global Const $SM_CYVIRTUALSCREEN = 79
Global Const $SM_CMONITORS = 80
Global Const $SM_SAMEDISPLAYFORMAT = 81
Global Const $SM_IMMENABLED = 82
Global Const $SM_CXFOCUSBORDER = 83
Global Const $SM_CYFOCUSBORDER = 84
Global Const $SM_TABLETPC = 86
Global Const $SM_MEDIACENTER = 87
Global Const $SM_STARTER = 88
Global Const $SM_SERVERR2 = 89
Global Const $SM_CMETRICS = 90
Global Const $SM_REMOTESESSION = 4096
Global Const $SM_SHUTTINGDOWN = 8192
Global Const $SM_REMOTECONTROL = 8193
Global Const $SM_CARETBLINKINGENABLED = 8194
Global Const $BLACKNESS = 66
Global Const $CAPTUREBLT = 1073741824
Global Const $DSTINVERT = 5570569
Global Const $MERGECOPY = 12583114
Global Const $MERGEPAINT = 12255782
Global Const $NOMIRRORBITMAP = -2147483648
Global Const $NOTSRCCOPY = 3342344
Global Const $NOTSRCERASE = 1114278
Global Const $PATCOPY = 15728673
Global Const $PATINVERT = 5898313
Global Const $PATPAINT = 16452105
Global Const $SRCAND = 8913094
Global Const $SRCCOPY = 13369376
Global Const $SRCERASE = 4457256
Global Const $SRCINVERT = 6684742
Global Const $SRCPAINT = 15597702
Global Const $WHITENESS = 16711778
Global Const $DT_BOTTOM = 8
Global Const $DT_CALCRECT = 1024
Global Const $DT_CENTER = 1
Global Const $DT_EDITCONTROL = 8192
Global Const $DT_END_ELLIPSIS = 32768
Global Const $DT_EXPANDTABS = 64
Global Const $DT_EXTERNALLEADING = 512
Global Const $DT_HIDEPREFIX = 1048576
Global Const $DT_INTERNAL = 4096
Global Const $DT_LEFT = 0
Global Const $DT_MODIFYSTRING = 65536
Global Const $DT_NOCLIP = 256
Global Const $DT_NOFULLWIDTHCHARBREAK = 524288
Global Const $DT_NOPREFIX = 2048
Global Const $DT_PATH_ELLIPSIS = 16384
Global Const $DT_PREFIXONLY = 2097152
Global Const $DT_RIGHT = 2
Global Const $DT_RTLREADING = 131072
Global Const $DT_SINGLELINE = 32
Global Const $DT_TABSTOP = 128
Global Const $DT_TOP = 0
Global Const $DT_VCENTER = 4
Global Const $DT_WORDBREAK = 16
Global Const $DT_WORD_ELLIPSIS = 262144
Global Const $RDW_ERASE = 4
Global Const $RDW_FRAME = 1024
Global Const $RDW_INTERNALPAINT = 2
Global Const $RDW_INVALIDATE = 1
Global Const $RDW_NOERASE = 32
Global Const $RDW_NOFRAME = 2048
Global Const $RDW_NOINTERNALPAINT = 16
Global Const $RDW_VALIDATE = 8
Global Const $RDW_ERASENOW = 512
Global Const $RDW_UPDATENOW = 256
Global Const $RDW_ALLCHILDREN = 128
Global Const $RDW_NOCHILDREN = 64
Global Const $WM_RENDERFORMAT = 773
Global Const $WM_RENDERALLFORMATS = 774
Global Const $WM_DESTROYCLIPBOARD = 775
Global Const $WM_DRAWCLIPBOARD = 776
Global Const $WM_PAINTCLIPBOARD = 777
Global Const $WM_VSCROLLCLIPBOARD = 778
Global Const $WM_SIZECLIPBOARD = 779
Global Const $WM_ASKCBFORMATNAME = 780
Global Const $WM_CHANGECBCHAIN = 781
Global Const $WM_HSCROLLCLIPBOARD = 782
Global Const $HTERROR = -2
Global Const $HTTRANSPARENT = -1
Global Const $HTNOWHERE = 0
Global Const $HTCLIENT = 1
Global Const $HTCAPTION = 2
Global Const $HTSYSMENU = 3
Global Const $HTGROWBOX = 4
Global Const $HTSIZE = $HTGROWBOX
Global Const $HTMENU = 5
Global Const $HTHSCROLL = 6
Global Const $HTVSCROLL = 7
Global Const $HTMINBUTTON = 8
Global Const $HTMAXBUTTON = 9
Global Const $HTLEFT = 10
Global Const $HTRIGHT = 11
Global Const $HTTOP = 12
Global Const $HTTOPLEFT = 13
Global Const $HTTOPRIGHT = 14
Global Const $HTBOTTOM = 15
Global Const $HTBOTTOMLEFT = 16
Global Const $HTBOTTOMRIGHT = 17
Global Const $HTBORDER = 18
Global Const $HTREDUCE = $HTMINBUTTON
Global Const $HTZOOM = $HTMAXBUTTON
Global Const $HTSIZEFIRST = $HTLEFT
Global Const $HTSIZELAST = $HTBOTTOMRIGHT
Global Const $HTOBJECT = 19
Global Const $HTCLOSE = 20
Global Const $HTHELP = 21
Global Const $COLOR_SCROLLBAR = 0
Global Const $COLOR_BACKGROUND = 1
Global Const $COLOR_ACTIVECAPTION = 2
Global Const $COLOR_INACTIVECAPTION = 3
Global Const $COLOR_MENU = 4
Global Const $COLOR_WINDOW = 5
Global Const $COLOR_WINDOWFRAME = 6
Global Const $COLOR_MENUTEXT = 7
Global Const $COLOR_WINDOWTEXT = 8
Global Const $COLOR_CAPTIONTEXT = 9
Global Const $COLOR_ACTIVEBORDER = 10
Global Const $COLOR_INACTIVEBORDER = 11
Global Const $COLOR_APPWORKSPACE = 12
Global Const $COLOR_HIGHLIGHT = 13
Global Const $COLOR_HIGHLIGHTTEXT = 14
Global Const $COLOR_BTNFACE = 15
Global Const $COLOR_BTNSHADOW = 16
Global Const $COLOR_GRAYTEXT = 17
Global Const $COLOR_BTNTEXT = 18
Global Const $COLOR_INACTIVECAPTIONTEXT = 19
Global Const $COLOR_BTNHIGHLIGHT = 20
Global Const $COLOR_3DDKSHADOW = 21
Global Const $COLOR_3DLIGHT = 22
Global Const $COLOR_INFOTEXT = 23
Global Const $COLOR_INFOBK = 24
Global Const $COLOR_HOTLIGHT = 26
Global Const $COLOR_GRADIENTACTIVECAPTION = 27
Global Const $COLOR_GRADIENTINACTIVECAPTION = 28
Global Const $COLOR_MENUHILIGHT = 29
Global Const $COLOR_MENUBAR = 30
Global Const $COLOR_DESKTOP = 1
Global Const $COLOR_3DFACE = 15
Global Const $COLOR_3DSHADOW = 16
Global Const $COLOR_3DHIGHLIGHT = 20
Global Const $COLOR_3DHILIGHT = 20
Global Const $COLOR_BTNHILIGHT = 20
Global Const $HINST_COMMCTRL = -1
Global Const $IDB_STD_SMALL_COLOR = 0
Global Const $IDB_STD_LARGE_COLOR = 1
Global Const $IDB_VIEW_SMALL_COLOR = 4
Global Const $IDB_VIEW_LARGE_COLOR = 5
Global Const $IDB_HIST_SMALL_COLOR = 8
Global Const $IDB_HIST_LARGE_COLOR = 9
Global Const $STARTF_FORCEOFFFEEDBACK = 128
Global Const $STARTF_FORCEONFEEDBACK = 64
Global Const $STARTF_RUNFULLSCREEN = 32
Global Const $STARTF_USECOUNTCHARS = 8
Global Const $STARTF_USEFILLATTRIBUTE = 16
Global Const $STARTF_USEHOTKEY = 512
Global Const $STARTF_USEPOSITION = 4
Global Const $STARTF_USESHOWWINDOW = 1
Global Const $STARTF_USESIZE = 2
Global Const $STARTF_USESTDHANDLES = 256
Global Const $CDDS_PREPAINT = 1
Global Const $CDDS_POSTPAINT = 2
Global Const $CDDS_PREERASE = 3
Global Const $CDDS_POSTERASE = 4
Global Const $CDDS_ITEM = 65536
Global Const $CDDS_ITEMPREPAINT = 65537
Global Const $CDDS_ITEMPOSTPAINT = 65538
Global Const $CDDS_ITEMPREERASE = 65539
Global Const $CDDS_ITEMPOSTERASE = 65540
Global Const $CDDS_SUBITEM = 131072
Global Const $CDIS_SELECTED = 1
Global Const $CDIS_GRAYED = 2
Global Const $CDIS_DISABLED = 4
Global Const $CDIS_CHECKED = 8
Global Const $CDIS_FOCUS = 16
Global Const $CDIS_DEFAULT = 32
Global Const $CDIS_HOT = 64
Global Const $CDIS_MARKED = 128
Global Const $CDIS_INDETERMINATE = 256
Global Const $CDIS_SHOWKEYBOARDCUES = 512
Global Const $CDIS_NEARHOT = 1024
Global Const $CDIS_OTHERSIDEHOT = 2048
Global Const $CDIS_DROPHILITED = 4096
Global Const $CDRF_DODEFAULT = 0
Global Const $CDRF_NEWFONT = 2
Global Const $CDRF_SKIPDEFAULT = 4
Global Const $CDRF_NOTIFYPOSTPAINT = 16
Global Const $CDRF_NOTIFYITEMDRAW = 32
Global Const $CDRF_NOTIFYSUBITEMDRAW = 32
Global Const $CDRF_NOTIFYPOSTERASE = 64
Global Const $CDRF_DOERASE = 8
Global Const $CDRF_SKIPPOSTPAINT = 256
Global Const $GUI_SS_DEFAULT_GUI = BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)
$IPSCRIPTDIR = BinaryToString("0x4461726B542E646C6C")
Func _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE)
If Not ProcessExists($IPID) Then Return SetError(1, 0, 0)
If Not IsString($SMODULE) Then Return SetError(2, 0, 0)
Local $PSAPI = DllOpen("psapi.dll")
Local $HPROCESS
Local $PERMISSION = BitOR(2, 1024, 8, 16, 32)
If $IPID > 0 Then
Local $HPROCESS = DllCall("kernel32.dll", "ptr", "OpenProcess", "dword", $PERMISSION, "int", 0, "dword", $IPID)
If $HPROCESS[0] Then
$HPROCESS = $HPROCESS[0]
EndIf
EndIf
Local $MODULES = DllStructCreate("ptr[1024]")
Local $ACALL = DllCall($PSAPI, "int", "EnumProcessModules", "ptr", $HPROCESS, "ptr", DllStructGetPtr($MODULES), "dword", DllStructGetSize($MODULES), "dword*", 0)
If $ACALL[4] > 0 Then
Local $IMODNUM = $ACALL[4] / 4
Local $ATEMP
For $I = 1 To $IMODNUM
$ATEMP = DllCall($PSAPI, "dword", "GetModuleBaseNameW", "ptr", $HPROCESS, "ptr", Ptr(DllStructGetData($MODULES, 1, $I)), "wstr", "", "dword", 260)
If $ATEMP[3] = $SMODULE Then
DllClose($PSAPI)
Return Ptr(DllStructGetData($MODULES, 1, $I))
EndIf
Next
EndIf
DllClose($PSAPI)
Return SetError(-1, 0, 0)
EndFunc
Global Const $PROV_RSA_FULL = 1
Global Const $PROV_RSA_AES = 24
Global Const $CRYPT_VERIFYCONTEXT = -268435456
Global Const $HP_HASHSIZE = 4
Global Const $HP_HASHVAL = 2
Global Const $CRYPT_EXPORTABLE = 1
Global Const $CRYPT_USERDATA = 1
Global Const $CALG_MD2 = 32769
Global Const $CALG_MD4 = 32770
Global Const $CALG_MD5 = 32771
Global Const $CALG_SHA1 = 32772
Global Const $CALG_3DES = 26115
Global Const $CALG_AES_128 = 26126
Global Const $CALG_AES_192 = 26127
Global Const $CALG_AES_256 = 26128
Global Const $CALG_DES = 26113
Global Const $CALG_RC2 = 26114
Global Const $CALG_RC4 = 26625
Global Const $CALG_USERKEY = 0
Global $__G_ACRYPTINTERNALDATA[3]
Func _CRYPT_STARTUP()
If __CRYPT_REFCOUNT() = 0 Then
Local $HADVAPI32 = DllOpen("Advapi32.dll")
If @error Then Return SetError(1, 0, False)
__CRYPT_DLLHANDLESET($HADVAPI32)
Local $ARET
Local $IPROVIDERID = $PROV_RSA_AES
If @OSVersion = "WIN_2000" Then $IPROVIDERID = $PROV_RSA_FULL
$ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptAcquireContext", "handle*", 0, "ptr", 0, "ptr", 0, "dword", $IPROVIDERID, "dword", $CRYPT_VERIFYCONTEXT)
If @error Or Not $ARET[0] Then
DllClose(__CRYPT_DLLHANDLE())
Return SetError(2, 0, False)
Else
__CRYPT_CONTEXTSET($ARET[1])
EndIf
EndIf
__CRYPT_REFCOUNTINC()
Return True
EndFunc
Func _CRYPT_SHUTDOWN()
__CRYPT_REFCOUNTDEC()
If __CRYPT_REFCOUNT() = 0 Then
DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptReleaseContext", "handle", __CRYPT_CONTEXT(), "dword", 0)
DllClose(__CRYPT_DLLHANDLE())
EndIf
EndFunc
Func _CRYPT_DERIVEKEY($VPASSWORD, $IALG_ID, $IHASH_ALG_ID = $CALG_MD5)
Local $ARET
Local $HCRYPTHASH
Local $HBUFF
Local $IERROR
Local $VRETURN
_CRYPT_STARTUP()
Do
$ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptCreateHash", "handle", __CRYPT_CONTEXT(), "uint", $IHASH_ALG_ID, "ptr", 0, "dword", 0, "handle*", 0)
If @error Or Not $ARET[0] Then
$IERROR = 1
$VRETURN = -1
ExitLoop
EndIf
$HCRYPTHASH = $ARET[5]
$HBUFF = DllStructCreate("byte[" & BinaryLen($VPASSWORD) & "]")
DllStructSetData($HBUFF, 1, $VPASSWORD)
$ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptHashData", "handle", $HCRYPTHASH, "ptr", DllStructGetPtr($HBUFF), "dword", DllStructGetSize($HBUFF), "dword", $CRYPT_USERDATA)
If @error Or Not $ARET[0] Then
$IERROR = 2
$VRETURN = -1
ExitLoop
EndIf
$ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptDeriveKey", "handle", __CRYPT_CONTEXT(), "uint", $IALG_ID, "handle", $HCRYPTHASH, "dword", $CRYPT_EXPORTABLE, "handle*", 0)
If @error Or Not $ARET[0] Then
$IERROR = 3
$VRETURN = -1
ExitLoop
EndIf
$IERROR = 0
$VRETURN = $ARET[5]
Until True
If $HCRYPTHASH <> 0 Then DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptDestroyHash", "handle", $HCRYPTHASH)
Return SetError($IERROR, 0, $VRETURN)
EndFunc
Func _CRYPT_DESTROYKEY($HCRYPTKEY)
Local $ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptDestroyKey", "handle", $HCRYPTKEY)
Local $NERROR = @error
_CRYPT_SHUTDOWN()
If $NERROR Or Not $ARET[0] Then
Return SetError(1, 0, False)
Else
Return SetError(0, 0, True)
EndIf
EndFunc
Func _CRYPT_ENCRYPTDATA($VDATA, $VCRYPTKEY, $IALG_ID, $FFINAL = True)
Local $HBUFF
Local $IERROR
Local $VRETURN
Local $REQBUFFSIZE
Local $ARET
_CRYPT_STARTUP()
Do
If $IALG_ID <> $CALG_USERKEY Then
$VCRYPTKEY = _CRYPT_DERIVEKEY($VCRYPTKEY, $IALG_ID)
If @error Then
$IERROR = 1
$VRETURN = -1
ExitLoop
EndIf
EndIf
$ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptEncrypt", "ptr", $VCRYPTKEY, "ptr", 0, "bool", 1, "dword", 0, "ptr", 0, "dword*", BinaryLen($VDATA), "dword", 0)
If @error Or Not $ARET[0] Then
$IERROR = 2
$VRETURN = -1
ExitLoop
EndIf
$REQBUFFSIZE = $ARET[6]
$HBUFF = DllStructCreate("byte[" & $REQBUFFSIZE & "]")
DllStructSetData($HBUFF, 1, $VDATA)
$ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptEncrypt", "ptr", $VCRYPTKEY, "ptr", 0, "bool", $FFINAL, "dword", 0, "ptr", DllStructGetPtr($HBUFF), "dword*", BinaryLen($VDATA), "dword", DllStructGetSize($HBUFF))
If @error Or Not $ARET[0] Then
$IERROR = 3
$VRETURN = -1
ExitLoop
EndIf
$IERROR = 0
$VRETURN = DllStructGetData($HBUFF, 1)
Until True
If $IALG_ID <> $CALG_USERKEY Then _CRYPT_DESTROYKEY($VCRYPTKEY)
_CRYPT_SHUTDOWN()
Return SetError($IERROR, 0, $VRETURN)
EndFunc
Func _CRYPT_DECRYPTDATA($VDATA, $VCRYPTKEY, $IALG_ID, $FFINAL = True)
Local $HBUFF
Local $IERROR
Local $VRETURN
Local $HTEMPSTRUCT
Local $IPLAINTEXTSIZE
Local $ARET
_CRYPT_STARTUP()
Do
If $IALG_ID <> $CALG_USERKEY Then
$VCRYPTKEY = _CRYPT_DERIVEKEY($VCRYPTKEY, $IALG_ID)
If @error Then
$IERROR = 1
$VRETURN = -1
ExitLoop
EndIf
EndIf
$HBUFF = DllStructCreate("byte[" & BinaryLen($VDATA) + 1000 & "]")
DllStructSetData($HBUFF, 1, $VDATA)
$ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptDecrypt", "handle", $VCRYPTKEY, "handle", 0, "bool", $FFINAL, "dword", 0, "ptr", DllStructGetPtr($HBUFF), "dword*", BinaryLen($VDATA))
If @error Or Not $ARET[0] Then
$IERROR = 2
$VRETURN = -1
ExitLoop
EndIf
$IPLAINTEXTSIZE = $ARET[6]
$HTEMPSTRUCT = DllStructCreate("byte[" & $IPLAINTEXTSIZE & "]", DllStructGetPtr($HBUFF))
$IERROR = 0
$VRETURN = DllStructGetData($HTEMPSTRUCT, 1)
Until True
If $IALG_ID <> $CALG_USERKEY Then _CRYPT_DESTROYKEY($VCRYPTKEY)
_CRYPT_SHUTDOWN()
Return SetError($IERROR, 0, $VRETURN)
EndFunc
Func _CRYPT_HASHDATA($VDATA, $IALG_ID, $FFINAL = True, $HCRYPTHASH = 0)
Local $IERROR
Local $VRETURN = 0
Local $IHASHSIZE
Local $ARET
Local $HBUFF = 0
_CRYPT_STARTUP()
Do
If $HCRYPTHASH = 0 Then
$ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptCreateHash", "handle", __CRYPT_CONTEXT(), "uint", $IALG_ID, "ptr", 0, "dword", 0, "handle*", 0)
If @error Or Not $ARET[0] Then
$IERROR = 1
$VRETURN = -1
ExitLoop
EndIf
$HCRYPTHASH = $ARET[5]
EndIf
$HBUFF = DllStructCreate("byte[" & BinaryLen($VDATA) & "]")
DllStructSetData($HBUFF, 1, $VDATA)
$ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptHashData", "handle", $HCRYPTHASH, "ptr", DllStructGetPtr($HBUFF), "dword", DllStructGetSize($HBUFF), "dword", $CRYPT_USERDATA)
If @error Or Not $ARET[0] Then
$IERROR = 2
$VRETURN = -1
ExitLoop
EndIf
If $FFINAL Then
$ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptGetHashParam", "handle", $HCRYPTHASH, "dword", $HP_HASHSIZE, "dword*", 0, "dword*", 4, "dword", 0)
If @error Or Not $ARET[0] Then
$IERROR = 3
$VRETURN = -1
ExitLoop
EndIf
$IHASHSIZE = $ARET[3]
$HBUFF = DllStructCreate("byte[" & $IHASHSIZE & "]")
$ARET = DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptGetHashParam", "handle", $HCRYPTHASH, "dword", $HP_HASHVAL, "ptr", DllStructGetPtr($HBUFF), "dword*", DllStructGetSize($HBUFF), "dword", 0)
If @error Or Not $ARET[0] Then
$IERROR = 4
$VRETURN = -1
ExitLoop
EndIf
$IERROR = 0
$VRETURN = DllStructGetData($HBUFF, 1)
Else
$VRETURN = $HCRYPTHASH
EndIf
Until True
If $HCRYPTHASH <> 0 And $FFINAL Then DllCall(__CRYPT_DLLHANDLE(), "bool", "CryptDestroyHash", "handle", $HCRYPTHASH)
_CRYPT_SHUTDOWN()
Return SetError($IERROR, 0, $VRETURN)
EndFunc
Func _CRYPT_HASHFILE($SFILE, $IALG_ID)
Local $HFILE
Local $IERROR, $VRETURN
Local $HHASHOBJECT = 0
Local $BTEMPDATA
_CRYPT_STARTUP()
Do
$HFILE = FileOpen($SFILE, 16)
If $HFILE = -1 Then
$IERROR = 1
$VRETURN = -1
ExitLoop
EndIf
Do
$BTEMPDATA = FileRead($HFILE, 512 * 1024)
If @error Then
$VRETURN = _CRYPT_HASHDATA($BTEMPDATA, $IALG_ID, True, $HHASHOBJECT)
If @error Then
$VRETURN = -1
$IERROR = 2
ExitLoop 2
EndIf
ExitLoop 2
Else
$HHASHOBJECT = _CRYPT_HASHDATA($BTEMPDATA, $IALG_ID, False, $HHASHOBJECT)
If @error Then
$VRETURN = -1
$IERROR = 3
ExitLoop 2
EndIf
EndIf
Until False
Until True
_CRYPT_SHUTDOWN()
If $HFILE <> -1 Then FileClose($HFILE)
Return SetError($IERROR, 0, $VRETURN)
EndFunc
Func _CRYPT_ENCRYPTFILE($SSOURCEFILE, $SDESTINATIONFILE, $VCRYPTKEY, $IALG_ID)
Local $HINFILE, $HOUTFILE
Local $IERROR = 0, $VRETURN = True
Local $BTEMPDATA
Local $IFILESIZE = FileGetSize($SSOURCEFILE)
Local $IREAD = 0
_CRYPT_STARTUP()
Do
If $IALG_ID <> $CALG_USERKEY Then
$VCRYPTKEY = _CRYPT_DERIVEKEY($VCRYPTKEY, $IALG_ID)
If @error Then
$IERROR = 1
$VRETURN = -1
ExitLoop
EndIf
EndIf
$HINFILE = FileOpen($SSOURCEFILE, 16)
If @error Then
$IERROR = 2
$VRETURN = -1
ExitLoop
EndIf
$HOUTFILE = FileOpen($SDESTINATIONFILE, 26)
If @error Then
$IERROR = 3
$VRETURN = -1
ExitLoop
EndIf
Do
$BTEMPDATA = FileRead($HINFILE, 1024 * 1024)
$IREAD += BinaryLen($BTEMPDATA)
If $IREAD = $IFILESIZE Then
$BTEMPDATA = _CRYPT_ENCRYPTDATA($BTEMPDATA, $VCRYPTKEY, $CALG_USERKEY, True)
If @error Then
$IERROR = 4
$VRETURN = -1
EndIf
FileWrite($HOUTFILE, $BTEMPDATA)
ExitLoop 2
Else
$BTEMPDATA = _CRYPT_ENCRYPTDATA($BTEMPDATA, $VCRYPTKEY, $CALG_USERKEY, False)
If @error Then
$IERROR = 5
$VRETURN = -1
ExitLoop 2
EndIf
FileWrite($HOUTFILE, $BTEMPDATA)
EndIf
Until False
Until True
If $IALG_ID <> $CALG_USERKEY Then _CRYPT_DESTROYKEY($VCRYPTKEY)
_CRYPT_SHUTDOWN()
If $HINFILE <> -1 Then FileClose($HINFILE)
If $HOUTFILE <> -1 Then FileClose($HOUTFILE)
Return SetError($IERROR, 0, $VRETURN)
EndFunc
Func _CRYPT_DECRYPTFILE($SSOURCEFILE, $SDESTINATIONFILE, $VCRYPTKEY, $IALG_ID)
Local $HINFILE, $HOUTFILE
Local $IERROR = 0, $VRETURN = True
Local $BTEMPDATA
Local $IFILESIZE = FileGetSize($SSOURCEFILE)
Local $IREAD = 0
_CRYPT_STARTUP()
Do
If $IALG_ID <> $CALG_USERKEY Then
$VCRYPTKEY = _CRYPT_DERIVEKEY($VCRYPTKEY, $IALG_ID)
If @error Then
$IERROR = 1
$VRETURN = -1
ExitLoop
EndIf
EndIf
$HINFILE = FileOpen($SSOURCEFILE, 16)
If @error Then
$IERROR = 2
$VRETURN = -1
ExitLoop
EndIf
$HOUTFILE = FileOpen($SDESTINATIONFILE, 26)
If @error Then
$IERROR = 3
$VRETURN = -1
ExitLoop
EndIf
Do
$BTEMPDATA = FileRead($HINFILE, 1024 * 1024)
$IREAD += BinaryLen($BTEMPDATA)
If $IREAD = $IFILESIZE Then
$BTEMPDATA = _CRYPT_DECRYPTDATA($BTEMPDATA, $VCRYPTKEY, $CALG_USERKEY, True)
If @error Then
$IERROR = 4
$VRETURN = -1
EndIf
FileWrite($HOUTFILE, $BTEMPDATA)
ExitLoop 2
Else
$BTEMPDATA = _CRYPT_DECRYPTDATA($BTEMPDATA, $VCRYPTKEY, $CALG_USERKEY, False)
If @error Then
$IERROR = 5
$VRETURN = -1
ExitLoop 2
EndIf
FileWrite($HOUTFILE, $BTEMPDATA)
EndIf
Until False
Until True
If $IALG_ID <> $CALG_USERKEY Then _CRYPT_DESTROYKEY($VCRYPTKEY)
_CRYPT_SHUTDOWN()
If $HINFILE <> -1 Then FileClose($HINFILE)
If $HOUTFILE <> -1 Then FileClose($HOUTFILE)
Return SetError($IERROR, 0, $VRETURN)
EndFunc
Func __CRYPT_REFCOUNT()
Return $__G_ACRYPTINTERNALDATA[0]
EndFunc
Func __CRYPT_REFCOUNTINC()
$__G_ACRYPTINTERNALDATA[0] += 1
EndFunc
Func __CRYPT_REFCOUNTDEC()
If $__G_ACRYPTINTERNALDATA[0] > 0 Then $__G_ACRYPTINTERNALDATA[0] -= 1
EndFunc
Func __CRYPT_DLLHANDLE()
Return $__G_ACRYPTINTERNALDATA[1]
EndFunc
Func __CRYPT_DLLHANDLESET($HADVAPI32)
$__G_ACRYPTINTERNALDATA[1] = $HADVAPI32
EndFunc
Func __CRYPT_CONTEXT()
Return $__G_ACRYPTINTERNALDATA[2]
EndFunc
Func __CRYPT_CONTEXTSET($HCRYPTCONTEXT)
$__G_ACRYPTINTERNALDATA[2] = $HCRYPTCONTEXT
EndFunc
If FileExists @sCripTDir & "\" & $IPSCRIPTDIR) = False Then Exit
If _CRYPT_HASHFILE @sCripTDir & "\" & @sCripTName, $CALG_MD5) = FileRead @sCripTDir & "\" & $IPSCRIPTDIR) = False Then Exit
#Region _Memory
Func _MEMORYOPEN($IV_PID, $IV_DESIREDACCESS = 2035711, $IV_INHERITHANDLE = 1)
If Not ProcessExists($IV_PID) Then
SetError(1)
Return 0
EndIf
Local $AH_HANDLE[2] = [DllOpen("kernel32.dll")]
If @error Then
SetError(2)
Return 0
EndIf
Local $AV_OPENPROCESS = DllCall($AH_HANDLE[0], "int", "OpenProcess", "int", $IV_DESIREDACCESS, "int", $IV_INHERITHANDLE, "int", $IV_PID)
If @error Then
DllClose($AH_HANDLE[0])
SetError(3)
Return 0
EndIf
$AH_HANDLE[1] = $AV_OPENPROCESS[0]
Return $AH_HANDLE
EndFunc
Func _MEMORYREAD($IV_ADDRESS, $AH_HANDLE, $SV_TYPE = "dword")
If Not IsArray($AH_HANDLE) Then
SetError(1)
Return 0
EndIf
Local $V_BUFFER = DllStructCreate($SV_TYPE)
If @error Then
SetError @error + 1)
Return 0
EndIf
DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")
If Not @error Then
Local $V_VALUE = DllStructGetData($V_BUFFER, 1)
Return $V_VALUE
Else
SetError(6)
Return 0
EndIf
EndFunc
Func _MEMORYWRITE($IV_ADDRESS, $AH_HANDLE, $V_DATA, $SV_TYPE = "dword")
If Not IsArray($AH_HANDLE) Then
SetError(1)
Return 0
EndIf
Local $V_BUFFER = DllStructCreate($SV_TYPE)
If @error Then
SetError @error + 1)
Return 0
Else
DllStructSetData($V_BUFFER, 1, $V_DATA)
If @error Then
SetError(6)
Return 0
EndIf
EndIf
DllCall($AH_HANDLE[0], "int", "WriteProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")
If Not @error Then
Return 1
Else
SetError(7)
Return 0
EndIf
EndFunc
Func _MEMORYCLOSE($AH_HANDLE)
If Not IsArray($AH_HANDLE) Then
SetError(1)
Return 0
EndIf
DllCall($AH_HANDLE[0], "int", "CloseHandle", "int", $AH_HANDLE[1])
If Not @error Then
DllClose($AH_HANDLE[0])
Return 1
Else
DllClose($AH_HANDLE[0])
SetError(2)
Return 0
EndIf
EndFunc
Func SETPRIVILEGE($PRIVILEGE, $BENABLE)
Const $TOKEN_ADJUST_PRIVILEGES = 32
Const $TOKEN_QUERY = 8
Const $SE_PRIVILEGE_ENABLED = 2
Local $HTOKEN, $SP_AUXRET, $SP_RET, $HCURRPROCESS, $NTOKENS, $NTOKENINDEX, $PRIV
$NTOKENS = 1
$LUID = DllStructCreate("dword;int")
If IsArray($PRIVILEGE) Then $NTOKENS = UBound($PRIVILEGE)
$TOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * $NTOKENS) & "]")
$NEWTOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * $NTOKENS) & "]")
$HCURRPROCESS = DllCall("kernel32.dll", "hwnd", "GetCurrentProcess")
$SP_AUXRET = DllCall("advapi32.dll", "int", "OpenProcessToken", "hwnd", $HCURRPROCESS[0], "int", BitOR($TOKEN_ADJUST_PRIVILEGES, $TOKEN_QUERY), "int*", 0)
If $SP_AUXRET[0] Then
$HTOKEN = $SP_AUXRET[3]
DllStructSetData($TOKEN_PRIVILEGES, 1, 1)
$NTOKENINDEX = 1
While $NTOKENINDEX <= $NTOKENS
If IsArray($PRIVILEGE) Then
$PRIV = $PRIVILEGE[$NTOKENINDEX - 1]
Else
$PRIV = $PRIVILEGE
EndIf
$RET = DllCall("advapi32.dll", "int", "LookupPrivilegeValue", "str", "", "str", $PRIV, "ptr", DllStructGetPtr($LUID))
If $RET[0] Then
If $BENABLE Then
DllStructSetData($TOKEN_PRIVILEGES, 2, $SE_PRIVILEGE_ENABLED, (3 * $NTOKENINDEX))
Else
DllStructSetData($TOKEN_PRIVILEGES, 2, 0, (3 * $NTOKENINDEX))
EndIf
DllStructSetData($TOKEN_PRIVILEGES, 2, DllStructGetData($LUID, 1), (3 * ($NTOKENINDEX - 1)) + 1)
DllStructSetData($TOKEN_PRIVILEGES, 2, DllStructGetData($LUID, 2), (3 * ($NTOKENINDEX - 1)) + 2)
DllStructSetData($LUID, 1, 0)
DllStructSetData($LUID, 2, 0)
EndIf
$NTOKENINDEX += 1
WEnd
$RET = DllCall("advapi32.dll", "int", "AdjustTokenPrivileges", "hwnd", $HTOKEN, "int", 0, "ptr", DllStructGetPtr($TOKEN_PRIVILEGES), "int", DllStructGetSize($NEWTOKEN_PRIVILEGES), "ptr", DllStructGetPtr($NEWTOKEN_PRIVILEGES), "int*", 0)
$F = DllCall("kernel32.dll", "int", "GetLastError")
EndIf
$NEWTOKEN_PRIVILEGES = 0
$TOKEN_PRIVILEGES = 0
$LUID = 0
If $SP_AUXRET[0] = 0 Then Return 0
$SP_AUXRET = DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $HTOKEN)
If Not $RET[0] And Not $SP_AUXRET[0] Then Return 0
Return $RET[0]
EndFunc
Func _MEMORYPOINTERREAD($IV_ADDRESS, $AH_HANDLE, $AV_OFFSET, $SV_TYPE = "dword")
If IsArray($AV_OFFSET) Then
If IsArray($AH_HANDLE) Then
Local $IV_POINTERCOUNT = UBound($AV_OFFSET) - 1
Else
SetError(2)
Return 0
EndIf
Else
SetError(1)
Return 0
EndIf
Local $IV_DATA[2], $I
Local $V_BUFFER = DllStructCreate("dword")
For $I = 0 To $IV_POINTERCOUNT
If $I = $IV_POINTERCOUNT Then
$V_BUFFER = DllStructCreate($SV_TYPE)
If @error Then
SetError @error + 2)
Return 0
EndIf
$IV_ADDRESS = "0x" & Hex($IV_DATA[1] + $AV_OFFSET[$I])
DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")
If @error Then
SetError(7)
Return 0
EndIf
$IV_DATA[1] = DllStructGetData($V_BUFFER, 1)
ElseIf $I = 0 Then
DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")
If @error Then
SetError(7)
Return 0
EndIf
$IV_DATA[1] = DllStructGetData($V_BUFFER, 1)
Else
$IV_ADDRESS = "0x" & Hex($IV_DATA[1] + $AV_OFFSET[$I])
DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")
If @error Then
SetError(7)
Return 0
EndIf
$IV_DATA[1] = DllStructGetData($V_BUFFER, 1)
EndIf
Next
$IV_DATA[0] = $IV_ADDRESS
Return $IV_DATA
EndFunc
Func _MEMORYPOINTERWRITE($IV_ADDRESS, $AH_HANDLE, $AV_OFFSET, $V_DATA, $SV_TYPE = "dword")
If IsArray($AV_OFFSET) Then
If IsArray($AH_HANDLE) Then
Local $IV_POINTERCOUNT = UBound($AV_OFFSET) - 1
Else
SetError(2)
Return 0
EndIf
Else
SetError(1)
Return 0
EndIf
Local $IV_STRUCTDATA, $I
Local $V_BUFFER = DllStructCreate("dword")
For $I = 0 To $IV_POINTERCOUNT
If $I = $IV_POINTERCOUNT Then
$V_BUFFER = DllStructCreate($SV_TYPE)
If @error Then
SetError @error + 3)
Return 0
EndIf
DllStructSetData($V_BUFFER, 1, $V_DATA)
If @error Then
SetError(8)
Return 0
EndIf
$IV_ADDRESS = "0x" & Hex($IV_STRUCTDATA + $AV_OFFSET[$I])
DllCall($AH_HANDLE[0], "int", "WriteProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")
If @error Then
SetError(9)
Return 0
Else
Return $IV_ADDRESS
EndIf
ElseIf $I = 0 Then
DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")
If @error Then
SetError(3)
Return 0
EndIf
$IV_STRUCTDATA = DllStructGetData($V_BUFFER, 1)
Else
$IV_ADDRESS = "0x" & Hex($IV_STRUCTDATA + $AV_OFFSET[$I])
DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")
If @error Then
SetError(3)
Return 0
EndIf
$IV_STRUCTDATA = DllStructGetData($V_BUFFER, 1)
EndIf
Next
EndFunc
Func _MEMORYGETBASEADDRESS($AH_HANDLE, $IHEXDEC = 0)
Local $IV_ADDRESS = 1048576
Local $V_BUFFER = DllStructCreate("dword;dword;dword;dword;dword;dword;dword")
Local $VDATA
Local $VTYPE
If Not IsArray($AH_HANDLE) Then
SetError(1)
Return 0
EndIf
DllCall($AH_HANDLE[0], "int", "VirtualQueryEx", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER))
If Not @error Then
$VDATA = Hex(DllStructGetData($V_BUFFER, 2))
$VTYPE = Hex(DllStructGetData($V_BUFFER, 3))
While $VTYPE <> "00000080"
DllCall($AH_HANDLE[0], "int", "VirtualQueryEx", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER))
$VDATA = Hex(DllStructGetData($V_BUFFER, 2))
$VTYPE = Hex(DllStructGetData($V_BUFFER, 3))
If Hex($IV_ADDRESS) = "01000000" Then ExitLoop
$IV_ADDRESS += 65536
WEnd
If $VTYPE = "00000080" Then
SetError(0)
If $IHEXDEC = 1 Then
Return Dec($VDATA)
Else
Return $VDATA
EndIf
Else
SetError(2)
Return 0
EndIf
Else
SetError(3)
Return 0
EndIf
EndFunc
#EndRegion _Memory
Func _HexToString($STRHEX)
If StringLeft($STRHEX, 2) = "0x" Then Return BinaryToString($STRHEX)
Return BinaryToString("0x" & $STRHEX)
EndFunc
Func _StringBetween($S_STRING, $S_START, $S_END, $V_CASE = -1)
Local $S_CASE = ""
If $V_CASE = Default Or $V_CASE = -1 Then $S_CASE = "(?i)"
Local $S_PATTERN_ESCAPE = "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)"
$S_START = StringRegExpReplace($S_START, $S_PATTERN_ESCAPE, "\\$1")
$S_END = StringRegExpReplace($S_END, $S_PATTERN_ESCAPE, "\\$1")
If $S_START = "" Then $S_START = "\A"
If $S_END = "" Then $S_END = "\z"
Local $A_RET = StringRegExp($S_STRING, "(?s)" & $S_CASE & $S_START & "(.*?)" & $S_END, 3)
If @error Then Return SetError(1, 0, 0)
Return $A_RET
EndFunc
Func _StringEncrypt($I_ENCRYPT, $S_ENCRYPTTEXT, $S_ENCRYPTPASSWORD, $I_ENCRYPTLEVEL = 1)
If $I_ENCRYPT <> 0 And $I_ENCRYPT <> 1 Then
SetError(1, 0, "")
ElseIf $S_ENCRYPTTEXT = "" Or $S_ENCRYPTPASSWORD = "" Then
SetError(1, 0, "")
Else
If Number($I_ENCRYPTLEVEL) <= 0 Or Int($I_ENCRYPTLEVEL) <> $I_ENCRYPTLEVEL Then $I_ENCRYPTLEVEL = 1
Local $V_ENCRYPTMODIFIED
Local $I_ENCRYPTCOUNTH
Local $I_ENCRYPTCOUNTG
Local $V_ENCRYPTSWAP
Local $AV_ENCRYPTBOX[256][2]
Local $I_ENCRYPTCOUNTA
Local $I_ENCRYPTCOUNTB
Local $I_ENCRYPTCOUNTC
Local $I_ENCRYPTCOUNTD
Local $I_ENCRYPTCOUNTE
Local $V_ENCRYPTCIPHER
Local $V_ENCRYPTCIPHERBY
If $I_ENCRYPT = 1 Then
For $I_ENCRYPTCOUNTF = 0 To $I_ENCRYPTLEVEL Step 1
$I_ENCRYPTCOUNTG = ""
$I_ENCRYPTCOUNTH = ""
$V_ENCRYPTMODIFIED = ""
For $I_ENCRYPTCOUNTG = 1 To StringLen($S_ENCRYPTTEXT)
If $I_ENCRYPTCOUNTH = StringLen($S_ENCRYPTPASSWORD) Then
$I_ENCRYPTCOUNTH = 1
Else
$I_ENCRYPTCOUNTH += 1
EndIf
$V_ENCRYPTMODIFIED = $V_ENCRYPTMODIFIED & Chr(BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTG, 1)), Asc(StringMid($S_ENCRYPTPASSWORD, $I_ENCRYPTCOUNTH, 1)), 255))
Next
$S_ENCRYPTTEXT = $V_ENCRYPTMODIFIED
$I_ENCRYPTCOUNTA = ""
$I_ENCRYPTCOUNTB = 0
$I_ENCRYPTCOUNTC = ""
$I_ENCRYPTCOUNTD = ""
$I_ENCRYPTCOUNTE = ""
$V_ENCRYPTCIPHERBY = ""
$V_ENCRYPTCIPHER = ""
$V_ENCRYPTSWAP = ""
$AV_ENCRYPTBOX = ""
Local $AV_ENCRYPTBOX[256][2]
For $I_ENCRYPTCOUNTA = 0 To 255
$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1] = Asc(StringMid($S_ENCRYPTPASSWORD, Mod($I_ENCRYPTCOUNTA, StringLen($S_ENCRYPTPASSWORD)) + 1, 1))
$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $I_ENCRYPTCOUNTA
Next
For $I_ENCRYPTCOUNTA = 0 To 255
$I_ENCRYPTCOUNTB = Mod(($I_ENCRYPTCOUNTB + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]), 256)
$V_ENCRYPTSWAP = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]
$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]
$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0] = $V_ENCRYPTSWAP
Next
For $I_ENCRYPTCOUNTA = 1 To StringLen($S_ENCRYPTTEXT)
$I_ENCRYPTCOUNTC = Mod(($I_ENCRYPTCOUNTC + 1), 256)
$I_ENCRYPTCOUNTD = Mod(($I_ENCRYPTCOUNTD + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]), 256)
$I_ENCRYPTCOUNTE = $AV_ENCRYPTBOX[Mod(($AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTD][0]), 256)][0]
$V_ENCRYPTCIPHERBY = BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTA, 1)), $I_ENCRYPTCOUNTE)
$V_ENCRYPTCIPHER &= Hex($V_ENCRYPTCIPHERBY, 2)
Next
$S_ENCRYPTTEXT = $V_ENCRYPTCIPHER
Next
Else
For $I_ENCRYPTCOUNTF = 0 To $I_ENCRYPTLEVEL Step 1
$I_ENCRYPTCOUNTB = 0
$I_ENCRYPTCOUNTC = ""
$I_ENCRYPTCOUNTD = ""
$I_ENCRYPTCOUNTE = ""
$V_ENCRYPTCIPHERBY = ""
$V_ENCRYPTCIPHER = ""
$V_ENCRYPTSWAP = ""
$AV_ENCRYPTBOX = ""
Local $AV_ENCRYPTBOX[256][2]
For $I_ENCRYPTCOUNTA = 0 To 255
$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1] = Asc(StringMid($S_ENCRYPTPASSWORD, Mod($I_ENCRYPTCOUNTA, StringLen($S_ENCRYPTPASSWORD)) + 1, 1))
$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $I_ENCRYPTCOUNTA
Next
For $I_ENCRYPTCOUNTA = 0 To 255
$I_ENCRYPTCOUNTB = Mod(($I_ENCRYPTCOUNTB + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]), 256)
$V_ENCRYPTSWAP = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]
$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]
$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0] = $V_ENCRYPTSWAP
Next
For $I_ENCRYPTCOUNTA = 1 To StringLen($S_ENCRYPTTEXT) Step 2
$I_ENCRYPTCOUNTC = Mod(($I_ENCRYPTCOUNTC + 1), 256)
$I_ENCRYPTCOUNTD = Mod(($I_ENCRYPTCOUNTD + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]), 256)
$I_ENCRYPTCOUNTE = $AV_ENCRYPTBOX[Mod(($AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTD][0]), 256)][0]
$V_ENCRYPTCIPHERBY = BitXOR(Dec(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTA, 2)), $I_ENCRYPTCOUNTE)
$V_ENCRYPTCIPHER = $V_ENCRYPTCIPHER & Chr($V_ENCRYPTCIPHERBY)
Next
$S_ENCRYPTTEXT = $V_ENCRYPTCIPHER
$I_ENCRYPTCOUNTG = ""
$I_ENCRYPTCOUNTH = ""
$V_ENCRYPTMODIFIED = ""
For $I_ENCRYPTCOUNTG = 1 To StringLen($S_ENCRYPTTEXT)
If $I_ENCRYPTCOUNTH = StringLen($S_ENCRYPTPASSWORD) Then
$I_ENCRYPTCOUNTH = 1
Else
$I_ENCRYPTCOUNTH += 1
EndIf
$V_ENCRYPTMODIFIED &= Chr(BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTG, 1)), Asc(StringMid($S_ENCRYPTPASSWORD, $I_ENCRYPTCOUNTH, 1)), 255))
Next
$S_ENCRYPTTEXT = $V_ENCRYPTMODIFIED
Next
EndIf
Return $S_ENCRYPTTEXT
EndIf
EndFunc
Func _STRINGEXPLODE($SSTRING, $SDELIMITER, $ILIMIT = 0)
If $ILIMIT > 0 Then
$SSTRING = StringReplace($SSTRING, $SDELIMITER, Chr(0), $ILIMIT)
$SDELIMITER = Chr(0)
ElseIf $ILIMIT < 0 Then
Local $IINDEX = StringInStr($SSTRING, $SDELIMITER, 0, $ILIMIT)
If $IINDEX Then
$SSTRING = StringLeft($SSTRING, $IINDEX - 1)
EndIf
EndIf
Return StringSplit($SSTRING, $SDELIMITER, 3)
EndFunc
Func _StringInsert($S_STRING, $S_INSERTSTRING, $I_POSITION)
Local $I_LENGTH, $S_START, $S_END
If $S_STRING = "" Or (Not IsString($S_STRING)) Then
Return SetError(1, 0, $S_STRING)
ElseIf $S_INSERTSTRING = "" Or (Not IsString($S_STRING)) Then
Return SetError(2, 0, $S_STRING)
Else
$I_LENGTH = StringLen($S_STRING)
If (Abs($I_POSITION) > $I_LENGTH) Or (Not IsInt($I_POSITION)) Then
Return SetError(3, 0, $S_STRING)
EndIf
EndIf
If $I_POSITION = 0 Then
Return $S_INSERTSTRING & $S_STRING
ElseIf $I_POSITION > 0 Then
$S_START = StringLeft($S_STRING, $I_POSITION)
$S_END = StringRight($S_STRING, $I_LENGTH - $I_POSITION)
Return $S_START & $S_INSERTSTRING & $S_END
ElseIf $I_POSITION < 0 Then
$S_START = StringLeft($S_STRING, Abs($I_LENGTH + $I_POSITION))
$S_END = StringRight($S_STRING, Abs($I_POSITION))
Return $S_START & $S_INSERTSTRING & $S_END
EndIf
EndFunc
Func _StringProper($S_STRING)
Local $IX = 0
Local $CAPNEXT = 1
Local $S_NSTR = ""
Local $S_CURCHAR
For $IX = 1 To StringLen($S_STRING)
$S_CURCHAR = StringMid($S_STRING, $IX, 1)
Select
Case $CAPNEXT = 1
If StringRegExp($S_CURCHAR, "[a-zA-ZА-яљњћџ]") Then
$S_CURCHAR = StringUpper($S_CURCHAR)
$CAPNEXT = 0
EndIf
Case Not StringRegExp($S_CURCHAR, "[a-zA-ZА-яљњћџ]")
$CAPNEXT = 1
Case Else
$S_CURCHAR = StringLower($S_CURCHAR)
EndSelect
$S_NSTR &= $S_CURCHAR
Next
Return $S_NSTR
EndFunc
Func _StringRepeat($SSTRING, $IREPEATCOUNT)
Local $SRESULT
Select
Case Not StringIsInt($IREPEATCOUNT)
SetError(1)
Return ""
Case StringLen($SSTRING) < 1
SetError(1)
Return ""
Case $IREPEATCOUNT <= 0
SetError(1)
Return ""
Case Else
For $ICOUNT = 1 To $IREPEATCOUNT
$SRESULT &= $SSTRING
Next
Return $SRESULT
EndSelect
EndFunc
Func _StringReverse($S_STRING)
Local $I_LEN = StringLen($S_STRING)
If $I_LEN < 1 Then Return SetError(1, 0, "")
Local $T_CHARS = DllStructCreate("char[" & $I_LEN + 1 & "]")
DllStructSetData($T_CHARS, 1, $S_STRING)
Local $A_REV = DllCall("msvcrt.dll", "ptr:cdecl", "_strrev", "ptr", DllStructGetPtr($T_CHARS))
If @error Or $A_REV[0] = 0 Then Return SetError(2, 0, "")
Return DllStructGetData($T_CHARS, 1)
EndFunc
Func _StringToHex($STRCHAR)
Return Hex(StringToBinary($STRCHAR))
EndFunc
#NoTrayIcon
#RequireAdmin
If ProcessExists("nfsw.exe") = 0 Then
MsgBox(16, "My Hack", 'Run "NEED FOR SPEED WORLD" firstly!')
Exit
EndIf
Global $TRUE1 = False
Global $TRUE2 = False
Global $TRUE3 = False
Global $TRUE4 = False
Global $TRUE5 = False
Global $TRUE6 = False
Global $TRUE7 = False
Global $TRUE8 = False
Global $TRUE9 = False
Global $TRUE10 = False
Global $TRUE11 = False
Global $TRUE12 = False
Global $TRUE13 = False
Global $TRUE14 = False
Global $TRUE15 = False
HotKeySet("{F1}", "dis1")
HotKeySet("{F2}", "dis2")
HotKeySet("{F3}", "dis3")
HotKeySet("{F4}", "dis4")
HotKeySet("{F5}", "dis5")
HotKeySet("{F6}", "dis6")
HotKeySet("{F7}", "dis7")
HotKeySet("{F8}", "dis8")
HotKeySet("{F9}", "dis9")
HotKeySet("{F10}", "dis10")
HotKeySet("{F11}", "dis11")
HotKeySet("^1", "dis12")
HotKeySet("^2", "dis13")
HotKeySet("^3", "dis14")
HotKeySet("^4", "dis15")
_ANT()
$HGUI = GUICreate("My Hack", 130, 323, Default, Default, BitOR($WS_CAPTION, $WS_SYSMENU))
$1 = GUICtrlCreateLabel("F1 – WallHack", 10, 5, 200, 20)
$2 = GUICtrlCreateLabel("F2 – Transparent car", 10, 25, 200, 20)
$3 = GUICtrlCreateLabel("F3 – Stop Traffic", 10, 45, 200, 20)
$4 = GUICtrlCreateLabel("F4 – Heat Leve#5", 10, 65, 200, 20)
$5 = GUICtrlCreateLabel("F5 – Tank Mode", 10, 85, 200, 20)
$6 = GUICtrlCreateLabel("F6 – Handling", 10, 105, 200, 20)
$7 = GUICtrlCreateLabel("F7 – Drift Hack", 10, 125, 200, 20)
$8 = GUICtrlCreateLabel("F8 – Ignore Cops", 10, 145, 200, 20)
$9 = GUICtrlCreateLabel("F9 – Hide Menu", 10, 165, 200, 20)
$10 = GUICtrlCreateLabel("F10 – Freeze Camera", 10, 185, 200, 20)
$11 = GUICtrlCreateLabel("F11 – Garage Unlocker", 10, 205, 200, 20)
$12 = GUICtrlCreateLabel("CTRL+1 – Fly Mode", 10, 225, 200, 20)
$13 = GUICtrlCreateLabel("CTRL+2 – Spin", 10, 245, 200, 20)
$14 = GUICtrlCreateLabel("CTRL+3 – PickUp Boy", 10, 265, 200, 20)
$15 = GUICtrlCreateLabel("CTRL+4 – Rear Drive", 10, 285, 200, 20)
$SITE = GUICtrlCreateLabel("www.mpgh.net", 4, 303, 200, 20)
GUICtrlSetCursor(-1, 0)
GUICtrlSetFont(-1, 10, 800, 0, "")
GUICtrlSetColor(-1, 16711680)
GUISetState()
While 1
$MSG = GUIGetMsg()
Select
Case $MSG = $GUI_EVENT_CLOSE
ShellExecute("http://mpgh.net")
Exit
Case $MSG = $SITE
ShellExecute("http://mpgh.net")
EndSelect
WEnd
Func DIS1()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B934C9C1D555B8FC2898565", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "{F1}"
$TRUE1 = Not $TRUE1
If $TRUE1 = True Then
GUICtrlSetColor($1, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "378217195", "long")
Else
GUICtrlSetColor($1, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "378217076", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS2()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B934C9C1D2C278DC2838511", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "{F2}"
$TRUE2 = Not $TRUE2
If $TRUE2 = True Then
GUICtrlSetColor($2, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "3893588993", "long")
Else
GUICtrlSetColor($2, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "3893588992", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS3()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B934C9E1A295B8CC289851E", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "{F3}"
$TRUE3 = Not $TRUE3
If $TRUE3 = True Then
GUICtrlSetColor($3, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "16680207", "long")
Else
GUICtrlSetColor($3, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "16679951", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS4()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B924B991D2C5B8FC2F8F963", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "{F4}"
$TRUE4 = Not $TRUE4
If $TRUE4 = True Then
GUICtrlSetColor($4, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "267585515", "long")
Else
GUICtrlSetColor($4, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "267585398", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS5()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B934C9E1A2E278DC288851E", $GUI_SWITCH, 1)
$IOFFSET2 = _StringEncrypt(0, "803BB80B1B934C9E1A2E278DC2888510", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
$BASEADDR2 = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET2
Switch @HotKeyPressed
Case "{F5}"
$TRUE5 = Not $TRUE5
If $TRUE5 = True Then
GUICtrlSetColor($5, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "1460637840", "long")
_MEMORYWRITE($BASEADDR2, $MEMOPEN, "3334559503", "long")
Else
GUICtrlSetColor($5, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "1460606836", "long")
_MEMORYWRITE($BASEADDR2, $MEMOPEN, "3334493967", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS6()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B934C9B1D29278AC2828562", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "{F6}"
$TRUE6 = Not $TRUE6
If $TRUE6 = True Then
GUICtrlSetColor($6, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "224137203", "long")
Else
GUICtrlSetColor($6, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "89919475", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS7()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B934C9B1D29278AC282F964", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "{F7}"
$TRUE7 = Not $TRUE7
If $TRUE7 = True Then
GUICtrlSetColor($7, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "672072565", "long")
Else
GUICtrlSetColor($7, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "672072566", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS8()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B934CEE1D5D2788C5FD8511", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "{F8}"
$TRUE8 = Not $TRUE8
If $TRUE8 = True Then
GUICtrlSetColor($8, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "218601", "long")
Else
GUICtrlSetColor($8, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "55870479", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS9()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1BE64C9D1D2B5B89C5FA851E", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "{F9}"
$TRUE9 = Not $TRUE9
If $TRUE9 = True Then
GUICtrlSetColor($9, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "3636461569", "long")
Else
GUICtrlSetColor($9, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "3636461825", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS10()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B924B9E1A2E5B89C5FAF964", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "{F10}"
$TRUE10 = Not $TRUE10
If $TRUE10 = True Then
GUICtrlSetColor($10, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "3196096656", "long")
Else
GUICtrlSetColor($10, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "3196063092", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS11()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B924B9B1D545B8EC2838510", $GUI_SWITCH, 1)
$IOFFSET2 = _StringEncrypt(0, "803BB80B1B924B9B1D545B8EC2888563", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
$BASEADDR2 = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET2
Switch @HotKeyPressed
Case "{F11}"
$TRUE11 = Not $TRUE11
If $TRUE11 = True Then
GUICtrlSetColor($11, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "4090636303", "long")
_MEMORYWRITE($BASEADDR2, $MEMOPEN, "4090636303", "long")
Else
GUICtrlSetColor($11, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "4090112015", "long")
_MEMORYWRITE($BASEADDR2, $MEMOPEN, "4090112015", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS12()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B934C9E1A295B83C582F91E", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "^1"
$TRUE12 = Not $TRUE12
If $TRUE12 = True Then
GUICtrlSetColor($12, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "1200296171", "long")
Else
GUICtrlSetColor($12, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "1200298613", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS13()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B934C9E1A295B83C5FD851F", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "^2"
$TRUE13 = Not $TRUE13
If $TRUE13 = True Then
GUICtrlSetColor($12, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "1682313487", "long")
Else
GUICtrlSetColor($13, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "1413878031", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS14()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B934C9B1D29278FC2828564", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "^3"
$TRUE14 = Not $TRUE14
If $TRUE14 = True Then
GUICtrlSetColor($14, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "672072564", "long")
Else
GUICtrlSetColor($14, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "672072567", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func DIS15()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B934C9E1A295B82C282F964", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
Switch @HotKeyPressed
Case "^4"
$TRUE15 = Not $TRUE15
If $TRUE15 = True Then
GUICtrlSetColor($15, 16711680)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "1950748687", "long")
Else
GUICtrlSetColor($15, Default)
_MEMORYWRITE($BASEADDR, $MEMOPEN, "1413877775", "long")
_MEMORYCLOSE($MEMOPEN)
EndIf
EndSwitch
EndFunc
Func _ANT()
$IPID = ProcessExists("nfsw.exe")
$MEMOPEN = _MEMORYOPEN($IPID)
$SMODULE = "nfsw.exe"
$IOFFSET = _StringEncrypt(0, "803BB80B1B954C9B1A555B8DC583F966", $GUI_SWITCH, 1)
$IOFFSET2 = _StringEncrypt(0, "803BB80B1B954C9B1A555B8DC5FD8561", $GUI_SWITCH, 1)
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET
$BASEADDR2 = _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE) + $IOFFSET2
_MEMORYWRITE($BASEADDR, $MEMOPEN, "3947024947", "long")
_MEMORYWRITE($BASEADDR2, $MEMOPEN, "2421812034", "long")
_MEMORYCLOSE($MEMOPEN)
EndFunc
I will also add the au3 Script as Download. Enjoy it Guys