Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Region
- #AutoIt3Wrapper_Icon=Untitled-3.ico
- #AutoIt3Wrapper_OutFile=..\bin\bakingbreadcsgo.exe
- #AutoIt3Wrapper_Change2CUI=y
- #AutoIt3Wrapper_res_requestedExecutionLevel=asInvoker
- #EndRegion
- Global Const $tagpoint = "long X;long Y"
- Global Const $tagrect = "long Left;long Top;long Right;long Bottom"
- Global Const $tagsize = "long X;long Y"
- Global Const $tagmargins = "int cxLeftWidth;int cxRightWidth;int cyTopHeight;int cyBottomHeight"
- Global Const $tagfiletime = "dword Lo;dword Hi"
- Global Const $tagsystemtime = "word Year;word Month;word Dow;word Day;word Hour;word Minute;word Second;word MSeconds"
- Global Const $tagtime_zone_information = "long Bias;wchar StdName[32];word StdDate[8];long StdBias;wchar DayName[32];word DayDate[8];long DayBias"
- Global Const $tagnmhdr = "hwnd hWndFrom;uint_ptr IDFrom;INT Code"
- Global Const $tagcomboboxexitem = "uint Mask;int_ptr Item;ptr Text;int TextMax;int Image;int SelectedImage;int OverlayImage;" & "int Indent;lparam Param"
- Global Const $tagnmcbedragbegin = $tagnmhdr & ";int ItemID;ptr szText"
- Global Const $tagnmcbeendedit = $tagnmhdr & ";bool fChanged;int NewSelection;ptr szText;int Why"
- Global Const $tagnmcomboboxex = $tagnmhdr & ";uint Mask;int_ptr Item;ptr Text;int TextMax;int Image;" & "int SelectedImage;int OverlayImage;int Indent;lparam Param"
- Global Const $tagdtprange = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;" & "word MinSecond;word MinMSecond;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;" & "word MaxMinute;word MaxSecond;word MaxMSecond;bool MinValid;bool MaxValid"
- Global Const $tagnmdatetimechange = $tagnmhdr & ";dword Flag;" & $tagsystemtime
- Global Const $tagnmdatetimeformat = $tagnmhdr & ";ptr Format;" & $tagsystemtime & ";ptr pDisplay;wchar Display[64]"
- Global Const $tagnmdatetimeformatquery = $tagnmhdr & ";ptr Format;long SizeX;long SizeY"
- Global Const $tagnmdatetimekeydown = $tagnmhdr & ";int VirtKey;ptr Format;" & $tagsystemtime
- Global Const $tagnmdatetimestring = $tagnmhdr & ";ptr UserString;" & $tagsystemtime & ";dword Flags"
- Global Const $tageventlogrecord = "dword Length;dword Reserved;dword RecordNumber;dword TimeGenerated;dword TimeWritten;dword EventID;" & "word EventType;word NumStrings;word EventCategory;word ReservedFlags;dword ClosingRecordNumber;dword StringOffset;" & "dword UserSidLength;dword UserSidOffset;dword DataLength;dword DataOffset"
- Global Const $taggdipbitmapdata = "uint Width;uint Height;int Stride;int Format;ptr Scan0;uint_ptr Reserved"
- Global Const $taggdipencoderparam = "byte GUID[16];dword Count;dword Type;ptr Values"
- Global Const $taggdipencoderparams = "dword Count;byte Params[0]"
- Global Const $taggdiprectf = "float X;float Y;float Width;float Height"
- Global Const $taggdipstartupinput = "uint Version;ptr Callback;bool NoThread;bool NoCodecs"
- Global Const $taggdipstartupoutput = "ptr HookProc;ptr UnhookProc"
- Global Const $taggdipimagecodecinfo = "byte CLSID[16];byte FormatID[16];ptr CodecName;ptr DllName;ptr FormatDesc;ptr FileExt;" & "ptr MimeType;dword Flags;dword Version;dword SigCount;dword SigSize;ptr SigPattern;ptr SigMask"
- Global Const $taggdippencoderparams = "dword Count;byte Params[0]"
- Global Const $taghditem = "uint Mask;int XY;ptr Text;handle hBMP;int TextMax;int Fmt;lparam Param;int Image;int Order;uint Type;ptr pFilter;uint State"
- Global Const $tagnmhddispinfo = $tagnmhdr & ";int Item;uint Mask;ptr Text;int TextMax;int Image;lparam lParam"
- Global Const $tagnmhdfilterbtnclick = $tagnmhdr & ";int Item;" & $tagrect
- Global Const $tagnmheader = $tagnmhdr & ";int Item;int Button;ptr pItem"
- Global Const $taggetipaddress = "byte Field4;byte Field3;byte Field2;byte Field1"
- Global Const $tagnmipaddress = $tagnmhdr & ";int Field;int Value"
- Global Const $taglvfindinfo = "uint Flags;ptr Text;lparam Param;" & $tagpoint & ";uint Direction"
- Global Const $taglvhittestinfo = $tagpoint & ";uint Flags;int Item;int SubItem"
- Global Const $taglvitem = "uint Mask;int Item;int SubItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;lparam Param;" & "int Indent;int GroupID;uint Columns;ptr pColumns"
- Global Const $tagnmlistview = $tagnmhdr & ";int Item;int SubItem;uint NewState;uint OldState;uint Changed;" & "long ActionX;long ActionY;lparam Param"
- Global Const $tagnmlvcustomdraw = $tagnmhdr & ";dword dwDrawStage;handle hdc;long Left;long Top;long Right;long Bottom;" & "dword_ptr dwItemSpec;uint uItemState;lparam lItemlParam" & ";dword clrText;dword clrTextBk;int iSubItem;dword dwItemType;dword clrFace;int iIconEffect;" & "int iIconPhase;int iPartId;int iStateId;long TextLeft;long TextTop;long TextRight;long TextBottom;uint uAlign"
- Global Const $tagnmlvdispinfo = $tagnmhdr & ";" & $taglvitem
- Global Const $tagnmlvfinditem = $tagnmhdr & ";" & $taglvfindinfo
- Global Const $tagnmlvgetinfotip = $tagnmhdr & ";dword Flags;ptr Text;int TextMax;int Item;int SubItem;lparam lParam"
- Global Const $tagnmitemactivate = $tagnmhdr & ";int Index;int SubItem;uint NewState;uint OldState;uint Changed;" & $tagpoint & ";lparam lParam;uint KeyFlags"
- Global Const $tagnmlvkeydown = $tagnmhdr & ";align 1;word VKey;uint Flags"
- Global Const $tagnmlvscroll = $tagnmhdr & ";int DX;int DY"
- Global Const $tagmchittestinfo = "uint Size;" & $tagpoint & ";uint Hit;" & $tagsystemtime
- Global Const $tagmcmonthrange = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short Span"
- Global Const $tagmcrange = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short MinSet;short MaxSet"
- Global Const $tagmcselrange = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds"
- Global Const $tagnmdaystate = $tagnmhdr & ";" & $tagsystemtime & ";int DayState;ptr pDayState"
- Global Const $tagnmselchange = $tagnmhdr & ";word BegYear;word BegMonth;word BegDOW;word BegDay;" & "word BegHour;word BegMinute;word BegSecond;word BegMSeconds;word EndYear;word EndMonth;word EndDOW;" & "word EndDay;word EndHour;word EndMinute;word EndSecond;word EndMSeconds"
- Global Const $tagnmobjectnotify = $tagnmhdr & ";int Item;ptr piid;ptr pObject;long Result"
- Global Const $tagnmtckeydown = $tagnmhdr & ";word VKey;uint Flags"
- Global Const $tagtvitem = "uint Mask;handle hItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;int SelectedImage;" & "int Children;lparam Param"
- Global Const $tagtvitemex = $tagtvitem & ";int Integral"
- Global Const $tagnmtreeview = $tagnmhdr & ";uint Action;uint OldMask;handle OldhItem;uint OldState;uint OldStateMask;" & "ptr OldText;int OldTextMax;int OldImage;int OldSelectedImage;int OldChildren;lparam OldParam;uint NewMask;handle NewhItem;" & "uint NewState;uint NewStateMask;ptr NewText;int NewTextMax;int NewImage;int NewSelectedImage;int NewChildren;" & "lparam NewParam;long PointX;long PointY"
- Global Const $tagnmtvcustomdraw = $tagnmhdr & ";dword DrawStage;handle HDC;long Left;long Top;long Right;long Bottom;" & "dword_ptr ItemSpec;uint ItemState;lparam ItemParam;dword ClrText;dword ClrTextBk;int Level"
- Global Const $tagnmtvdispinfo = $tagnmhdr & ";" & $tagtvitem
- Global Const $tagnmtvgetinfotip = $tagnmhdr & ";ptr Text;int TextMax;handle hItem;lparam lParam"
- Global Const $tagtvhittestinfo = $tagpoint & ";uint Flags;handle Item"
- Global Const $tagnmtvkeydown = $tagnmhdr & ";word VKey;uint Flags"
- Global Const $tagnmmouse = $tagnmhdr & ";dword_ptr ItemSpec;dword_ptr ItemData;" & $tagpoint & ";lparam HitInfo"
- Global Const $tagtoken_privileges = "dword Count;int64 LUID;dword Attributes"
- Global Const $tagimageinfo = "handle hBitmap;handle hMask;int Unused1;int Unused2;" & $tagrect
- Global Const $tagmenuinfo = "dword Size;INT Mask;dword Style;uint YMax;handle hBack;dword ContextHelpID;ulong_ptr MenuData"
- Global Const $tagmenuiteminfo = "uint Size;uint Mask;uint Type;uint State;uint ID;handle SubMenu;handle BmpChecked;handle BmpUnchecked;" & "ulong_ptr ItemData;ptr TypeData;uint CCH;handle BmpItem"
- Global Const $tagrebarbandinfo = "uint cbSize;uint fMask;uint fStyle;dword clrFore;dword clrBack;ptr lpText;uint cch;" & "int iImage;hwnd hwndChild;uint cxMinChild;uint cyMinChild;uint cx;handle hbmBack;uint wID;uint cyChild;uint cyMaxChild;" & "uint cyIntegral;uint cxIdeal;lparam lParam;uint cxHeader"
- Global Const $tagnmrebarautobreak = $tagnmhdr & ";uint uBand;uint wID;lparam lParam;uint uMsg;uint fStyleCurrent;bool fAutoBreak"
- Global Const $tagnmrbautosize = $tagnmhdr & ";bool fChanged;long TargetLeft;long TargetTop;long TargetRight;long TargetBottom;" & "long ActualLeft;long ActualTop;long ActualRight;long ActualBottom"
- Global Const $tagnmrebar = $tagnmhdr & ";dword dwMask;uint uBand;uint fStyle;uint wID;laram lParam"
- Global Const $tagnmrebarchevron = $tagnmhdr & ";uint uBand;uint wID;lparam lParam;" & $tagrect & ";lparam lParamNM"
- Global Const $tagnmrebarchildsize = $tagnmhdr & ";uint uBand;uint wID;long CLeft;long CTop;long CRight;long CBottom;" & "long BLeft;long BTop;long BRight;long BBottom"
- Global Const $tagcolorscheme = "dword Size;dword BtnHighlight;dword BtnShadow"
- Global Const $tagnmtoolbar = $tagnmhdr & ";int iItem;" & "int iBitmap;int idCommand;byte fsState;byte fsStyle;align;dword_ptr dwData;int_ptr iString" & ";int cchText;ptr pszText;" & $tagrect
- Global Const $tagnmtbhotitem = $tagnmhdr & ";int idOld;int idNew;dword dwFlags"
- Global Const $tagtbbutton = "int Bitmap;int Command;byte State;byte Style;align;dword_ptr Param;int_ptr String"
- Global Const $tagtbbuttoninfo = "uint Size;dword Mask;int Command;int Image;byte State;byte Style;word CX;dword_ptr Param;ptr Text;int TextMax"
- Global Const $tagnetresource = "dword Scope;dword Type;dword DisplayType;dword Usage;ptr LocalName;ptr RemoteName;ptr Comment;ptr Provider"
- Global Const $tagoverlapped = "ulong_ptr Internal;ulong_ptr InternalHigh;dword Offset;dword OffsetHigh;handle hEvent"
- Global Const $tagopenfilename = "dword StructSize;hwnd hwndOwner;handle hInstance;ptr lpstrFilter;ptr lpstrCustomFilter;" & "dword nMaxCustFilter;dword nFilterIndex;ptr lpstrFile;dword nMaxFile;ptr lpstrFileTitle;dword nMaxFileTitle;" & "ptr lpstrInitialDir;ptr lpstrTitle;dword Flags;word nFileOffset;word nFileExtension;ptr lpstrDefExt;lparam lCustData;" & "ptr lpfnHook;ptr lpTemplateName;ptr pvReserved;dword dwReserved;dword FlagsEx"
- Global Const $tagbitmapinfo = "dword Size;long Width;long Height;word Planes;word BitCount;dword Compression;dword SizeImage;" & "long XPelsPerMeter;long YPelsPerMeter;dword ClrUsed;dword ClrImportant;dword RGBQuad"
- Global Const $tagblendfunction = "byte Op;byte Flags;byte Alpha;byte Format"
- Global Const $tagguid = "dword Data1;word Data2;word Data3;byte Data4[8]"
- Global Const $tagwindowplacement = "uint length; uint flags;uint showCmd;long ptMinPosition[2];long ptMaxPosition[2];long rcNormalPosition[4]"
- Global Const $tagwindowpos = "hwnd hWnd;hwnd InsertAfter;int X;int Y;int CX;int CY;uint Flags"
- Global Const $tagscrollinfo = "uint cbSize;uint fMask;int nMin;int nMax;uint nPage;int nPos;int nTrackPos"
- Global Const $tagscrollbarinfo = "dword cbSize;" & $tagrect & ";int dxyLineButton;int xyThumbTop;" & "int xyThumbBottom;int reserved;dword rgstate[6]"
- Global Const $taglogfont = "long Height;long Width;long Escapement;long Orientation;long Weight;byte Italic;byte Underline;" & "byte Strikeout;byte CharSet;byte OutPrecision;byte ClipPrecision;byte Quality;byte PitchAndFamily;wchar FaceName[32]"
- Global Const $tagkbdllhookstruct = "dword vkCode;dword scanCode;dword flags;dword time;ulong_ptr dwExtraInfo"
- Global Const $tagprocess_information = "handle hProcess;handle hThread;dword ProcessID;dword ThreadID"
- Global Const $tagstartupinfo = "dword Size;ptr Reserved1;ptr Desktop;ptr Title;dword X;dword Y;dword XSize;dword YSize;dword XCountChars;" & "dword YCountChars;dword FillAttribute;dword Flags;word ShowWindow;word Reserved2;ptr Reserved3;handle StdInput;" & "handle StdOutput;handle StdError"
- Global Const $tagsecurity_attributes = "dword Length;ptr Descriptor;bool InheritHandle"
- Global Const $tagwin32_find_data = "dword dwFileAttributes; dword ftCreationTime[2]; dword ftLastAccessTime[2]; dword ftLastWriteTime[2]; dword nFileSizeHigh; dword nFileSizeLow; dword dwReserved0; dword dwReserved1; wchar cFileName[260]; wchar cAlternateFileName[14]"
- Global Const $fc_nooverwrite = 0
- Global Const $fc_overwrite = 1
- Global Const $ft_modified = 0
- Global Const $ft_created = 1
- Global Const $ft_accessed = 2
- Global Const $fo_read = 0
- Global Const $fo_append = 1
- Global Const $fo_overwrite = 2
- Global Const $fo_binary = 16
- Global Const $fo_unicode = 32
- Global Const $fo_utf16_le = 32
- Global Const $fo_utf16_be = 64
- Global Const $fo_utf8 = 128
- Global Const $fo_utf8_nobom = 256
- Global Const $eof = -1
- Global Const $fd_filemustexist = 1
- Global Const $fd_pathmustexist = 2
- Global Const $fd_multiselect = 4
- Global Const $fd_promptcreatenew = 8
- Global Const $fd_promptoverwrite = 16
- Global Const $create_new = 1
- Global Const $create_always = 2
- Global Const $open_existing = 3
- Global Const $open_always = 4
- Global Const $truncate_existing = 5
- Global Const $invalid_set_file_pointer = -1
- Global Const $file_begin = 0
- Global Const $file_current = 1
- Global Const $file_end = 2
- Global Const $file_attribute_readonly = 1
- Global Const $file_attribute_hidden = 2
- Global Const $file_attribute_system = 4
- Global Const $file_attribute_directory = 16
- Global Const $file_attribute_archive = 32
- Global Const $file_attribute_device = 64
- Global Const $file_attribute_normal = 128
- Global Const $file_attribute_temporary = 256
- Global Const $file_attribute_sparse_file = 512
- Global Const $file_attribute_reparse_point = 1024
- Global Const $file_attribute_compressed = 2048
- Global Const $file_attribute_offline = 4096
- Global Const $file_attribute_not_content_indexed = 8192
- Global Const $file_attribute_encrypted = 16384
- Global Const $file_share_read = 1
- Global Const $file_share_write = 2
- Global Const $file_share_delete = 4
- Global Const $generic_all = 268435456
- Global Const $generic_execute = 536870912
- Global Const $generic_write = 1073741824
- Global Const $generic_read = -2147483648
- Global Const $error_no_token = 1008
- Global Const $se_assignprimarytoken_name = "SeAssignPrimaryTokenPrivilege"
- Global Const $se_audit_name = "SeAuditPrivilege"
- Global Const $se_backup_name = "SeBackupPrivilege"
- Global Const $se_change_notify_name = "SeChangeNotifyPrivilege"
- Global Const $se_create_global_name = "SeCreateGlobalPrivilege"
- Global Const $se_create_pagefile_name = "SeCreatePagefilePrivilege"
- Global Const $se_create_permanent_name = "SeCreatePermanentPrivilege"
- Global Const $se_create_token_name = "SeCreateTokenPrivilege"
- Global Const $se_debug_name = "SeDebugPrivilege"
- Global Const $se_enable_delegation_name = "SeEnableDelegationPrivilege"
- Global Const $se_impersonate_name = "SeImpersonatePrivilege"
- Global Const $se_inc_base_priority_name = "SeIncreaseBasePriorityPrivilege"
- Global Const $se_increase_quota_name = "SeIncreaseQuotaPrivilege"
- Global Const $se_load_driver_name = "SeLoadDriverPrivilege"
- Global Const $se_lock_memory_name = "SeLockMemoryPrivilege"
- Global Const $se_machine_account_name = "SeMachineAccountPrivilege"
- Global Const $se_manage_volume_name = "SeManageVolumePrivilege"
- Global Const $se_prof_single_process_name = "SeProfileSingleProcessPrivilege"
- Global Const $se_remote_shutdown_name = "SeRemoteShutdownPrivilege"
- Global Const $se_restore_name = "SeRestorePrivilege"
- Global Const $se_security_name = "SeSecurityPrivilege"
- Global Const $se_shutdown_name = "SeShutdownPrivilege"
- Global Const $se_sync_agent_name = "SeSyncAgentPrivilege"
- Global Const $se_system_environment_name = "SeSystemEnvironmentPrivilege"
- Global Const $se_system_profile_name = "SeSystemProfilePrivilege"
- Global Const $se_systemtime_name = "SeSystemtimePrivilege"
- Global Const $se_take_ownership_name = "SeTakeOwnershipPrivilege"
- Global Const $se_tcb_name = "SeTcbPrivilege"
- Global Const $se_unsolicited_input_name = "SeUnsolicitedInputPrivilege"
- Global Const $se_undock_name = "SeUndockPrivilege"
- Global Const $se_privilege_enabled_by_default = 1
- Global Const $se_privilege_enabled = 2
- Global Const $se_privilege_removed = 4
- Global Const $se_privilege_used_for_access = -2147483648
- Global Const $tokenuser = 1
- Global Const $tokengroups = 2
- Global Const $tokenprivileges = 3
- Global Const $tokenowner = 4
- Global Const $tokenprimarygroup = 5
- Global Const $tokendefaultdacl = 6
- Global Const $tokensource = 7
- Global Const $tokentype = 8
- Global Const $tokenimpersonationlevel = 9
- Global Const $tokenstatistics = 10
- Global Const $tokenrestrictedsids = 11
- Global Const $tokensessionid = 12
- Global Const $tokengroupsandprivileges = 13
- Global Const $tokensessionreference = 14
- Global Const $tokensandboxinert = 15
- Global Const $tokenauditpolicy = 16
- Global Const $tokenorigin = 17
- Global Const $tokenelevationtype = 18
- Global Const $tokenlinkedtoken = 19
- Global Const $tokenelevation = 20
- Global Const $tokenhasrestrictions = 21
- Global Const $tokenaccessinformation = 22
- Global Const $tokenvirtualizationallowed = 23
- Global Const $tokenvirtualizationenabled = 24
- Global Const $tokenintegritylevel = 25
- Global Const $tokenuiaccess = 26
- Global Const $tokenmandatorypolicy = 27
- Global Const $tokenlogonsid = 28
- Global Const $token_assign_primary = 1
- Global Const $token_duplicate = 2
- Global Const $token_impersonate = 4
- Global Const $token_query = 8
- Global Const $token_query_source = 16
- Global Const $token_adjust_privileges = 32
- Global Const $token_adjust_groups = 64
- Global Const $token_adjust_default = 128
- Global Const $token_adjust_sessionid = 256
- Func _winapi_getlasterror($curerr = @error, $curext = @extended)
- Local $aresult = DllCall("kernel32.dll", "dword", "GetLastError")
- Return SetError($curerr, $curext, $aresult[0])
- EndFunc
- Func _winapi_setlasterror($ierrcode, $curerr = @error, $curext = @extended)
- DllCall("kernel32.dll", "none", "SetLastError", "dword", $ierrcode)
- Return SetError($curerr, $curext)
- EndFunc
- Func _security__adjusttokenprivileges($htoken, $fdisableall, $pnewstate, $ibufferlen, $pprevstate = 0, $prequired = 0)
- Local $aresult = DllCall("advapi32.dll", "bool", "AdjustTokenPrivileges", "handle", $htoken, "bool", $fdisableall, "ptr", $pnewstate, "dword", $ibufferlen, "ptr", $pprevstate, "ptr", $prequired)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _security__getaccountsid($saccount, $ssystem = "")
- Local $aacct = _security__lookupaccountname($saccount, $ssystem)
- If @error Then Return SetError(@error, 0, 0)
- Return _security__stringsidtosid($aacct[0])
- EndFunc
- Func _security__getlengthsid($psid)
- If NOT _security__isvalidsid($psid) Then Return SetError(-1, 0, 0)
- Local $aresult = DllCall("advapi32.dll", "dword", "GetLengthSid", "ptr", $psid)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _security__gettokeninformation($htoken, $iclass)
- Local $aresult = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $htoken, "int", $iclass, "ptr", 0, "dword", 0, "dword*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- If NOT $aresult[0] Then Return 0
- Local $tbuffer = DllStructCreate("byte[" & $aresult[5] & "]")
- Local $pbuffer = DllStructGetPtr($tbuffer)
- $aresult = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $htoken, "int", $iclass, "ptr", $pbuffer, "dword", $aresult[5], "dword*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- If NOT $aresult[0] Then Return 0
- Return $tbuffer
- EndFunc
- Func _security__impersonateself($ilevel = 2)
- Local $aresult = DllCall("advapi32.dll", "bool", "ImpersonateSelf", "int", $ilevel)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _security__isvalidsid($psid)
- Local $aresult = DllCall("advapi32.dll", "bool", "IsValidSid", "ptr", $psid)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _security__lookupaccountname($saccount, $ssystem = "")
- Local $tdata = DllStructCreate("byte SID[256]")
- Local $psid = DllStructGetPtr($tdata, "SID")
- Local $aresult = DllCall("advapi32.dll", "bool", "LookupAccountNameW", "wstr", $ssystem, "wstr", $saccount, "ptr", $psid, "dword*", 256, "wstr", "", "dword*", 256, "int*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- If NOT $aresult[0] Then Return 0
- Local $aacct[3]
- $aacct[0] = _security__sidtostringsid($psid)
- $aacct[1] = $aresult[5]
- $aacct[2] = $aresult[7]
- Return $aacct
- EndFunc
- Func _security__lookupaccountsid($vsid)
- Local $psid, $aacct[3]
- If IsString($vsid) Then
- Local $tsid = _security__stringsidtosid($vsid)
- $psid = DllStructGetPtr($tsid)
- Else
- $psid = $vsid
- EndIf
- If NOT _security__isvalidsid($psid) Then Return SetError(-1, 0, 0)
- Local $aresult = DllCall("advapi32.dll", "bool", "LookupAccountSidW", "ptr", 0, "ptr", $psid, "wstr", "", "dword*", 256, "wstr", "", "dword*", 256, "int*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- If NOT $aresult[0] Then Return 0
- Local $aacct[3]
- $aacct[0] = $aresult[3]
- $aacct[1] = $aresult[5]
- $aacct[2] = $aresult[7]
- Return $aacct
- EndFunc
- Func _security__lookupprivilegevalue($ssystem, $sname)
- Local $aresult = DllCall("advapi32.dll", "int", "LookupPrivilegeValueW", "wstr", $ssystem, "wstr", $sname, "int64*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- Return SetError(0, $aresult[0], $aresult[3])
- EndFunc
- Func _security__openprocesstoken($hprocess, $iaccess)
- Local $aresult = DllCall("advapi32.dll", "int", "OpenProcessToken", "handle", $hprocess, "dword", $iaccess, "ptr", 0)
- If @error Then Return SetError(@error, @extended, 0)
- Return SetError(0, $aresult[0], $aresult[3])
- EndFunc
- Func _security__openthreadtoken($iaccess, $hthread = 0, $fopenasself = False)
- If $hthread = 0 Then $hthread = DllCall("kernel32.dll", "handle", "GetCurrentThread")
- If @error Then Return SetError(@error, @extended, 0)
- Local $aresult = DllCall("advapi32.dll", "bool", "OpenThreadToken", "handle", $hthread[0], "dword", $iaccess, "int", $fopenasself, "ptr*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- Return SetError(0, $aresult[0], $aresult[4])
- EndFunc
- Func _security__openthreadtokenex($iaccess, $hthread = 0, $fopenasself = False)
- Local $htoken = _security__openthreadtoken($iaccess, $hthread, $fopenasself)
- If $htoken = 0 Then
- If _winapi_getlasterror() <> $error_no_token Then Return SetError(-3, _winapi_getlasterror(), 0)
- If NOT _security__impersonateself() Then Return SetError(-1, _winapi_getlasterror(), 0)
- $htoken = _security__openthreadtoken($iaccess, $hthread, $fopenasself)
- If $htoken = 0 Then Return SetError(-2, _winapi_getlasterror(), 0)
- EndIf
- Return $htoken
- EndFunc
- Func _security__setprivilege($htoken, $sprivilege, $fenable)
- Local $iluid = _security__lookupprivilegevalue("", $sprivilege)
- If $iluid = 0 Then Return SetError(-1, 0, False)
- Local $tcurrstate = DllStructCreate($tagtoken_privileges)
- Local $pcurrstate = DllStructGetPtr($tcurrstate)
- Local $icurrstate = DllStructGetSize($tcurrstate)
- Local $tprevstate = DllStructCreate($tagtoken_privileges)
- Local $pprevstate = DllStructGetPtr($tprevstate)
- Local $iprevstate = DllStructGetSize($tprevstate)
- Local $trequired = DllStructCreate("int Data")
- Local $prequired = DllStructGetPtr($trequired)
- DllStructSetData($tcurrstate, "Count", 1)
- DllStructSetData($tcurrstate, "LUID", $iluid)
- If NOT _security__adjusttokenprivileges($htoken, False, $pcurrstate, $icurrstate, $pprevstate, $prequired) Then Return SetError(-2, @error, False)
- DllStructSetData($tprevstate, "Count", 1)
- DllStructSetData($tprevstate, "LUID", $iluid)
- Local $iattributes = DllStructGetData($tprevstate, "Attributes")
- If $fenable Then
- $iattributes = BitOR($iattributes, $se_privilege_enabled)
- Else
- $iattributes = BitAND($iattributes, BitNOT($se_privilege_enabled))
- EndIf
- DllStructSetData($tprevstate, "Attributes", $iattributes)
- If NOT _security__adjusttokenprivileges($htoken, False, $pprevstate, $iprevstate, $pcurrstate, $prequired) Then Return SetError(-3, @error, False)
- Return True
- EndFunc
- Func _security__sidtostringsid($psid)
- If NOT _security__isvalidsid($psid) Then Return SetError(-1, 0, "")
- Local $aresult = DllCall("advapi32.dll", "int", "ConvertSidToStringSidW", "ptr", $psid, "ptr*", 0)
- If @error Then Return SetError(@error, @extended, "")
- If NOT $aresult[0] Then Return ""
- Local $tbuffer = DllStructCreate("wchar Text[256]", $aresult[2])
- Local $ssid = DllStructGetData($tbuffer, "Text")
- DllCall("Kernel32.dll", "ptr", "LocalFree", "ptr", $aresult[2])
- Return $ssid
- EndFunc
- Func _security__sidtypestr($itype)
- Switch $itype
- Case 1
- Return "User"
- Case 2
- Return "Group"
- Case 3
- Return "Domain"
- Case 4
- Return "Alias"
- Case 5
- Return "Well Known Group"
- Case 6
- Return "Deleted Account"
- Case 7
- Return "Invalid"
- Case 8
- Return "Invalid"
- Case 9
- Return "Computer"
- Case Else
- Return "Unknown SID Type"
- EndSwitch
- EndFunc
- Func _security__stringsidtosid($ssid)
- Local $aresult = DllCall("advapi32.dll", "bool", "ConvertStringSidToSidW", "wstr", $ssid, "ptr*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- If NOT $aresult[0] Then Return 0
- Local $isize = _security__getlengthsid($aresult[2])
- Local $tbuffer = DllStructCreate("byte Data[" & $isize & "]", $aresult[2])
- Local $tsid = DllStructCreate("byte Data[" & $isize & "]")
- DllStructSetData($tsid, "Data", DllStructGetData($tbuffer, "Data"))
- DllCall("kernel32.dll", "ptr", "LocalFree", "ptr", $aresult[2])
- Return $tsid
- EndFunc
- Func _sendmessage($hwnd, $imsg, $wparam = 0, $lparam = 0, $ireturn = 0, $wparamtype = "wparam", $lparamtype = "lparam", $sreturntype = "lresult")
- Local $aresult = DllCall("user32.dll", $sreturntype, "SendMessageW", "hwnd", $hwnd, "uint", $imsg, $wparamtype, $wparam, $lparamtype, $lparam)
- If @error Then Return SetError(@error, @extended, "")
- If $ireturn >= 0 AND $ireturn <= 4 Then Return $aresult[$ireturn]
- Return $aresult
- EndFunc
- Func _sendmessagea($hwnd, $imsg, $wparam = 0, $lparam = 0, $ireturn = 0, $wparamtype = "wparam", $lparamtype = "lparam", $sreturntype = "lresult")
- Local $aresult = DllCall("user32.dll", $sreturntype, "SendMessageA", "hwnd", $hwnd, "uint", $imsg, $wparamtype, $wparam, $lparamtype, $lparam)
- If @error Then Return SetError(@error, @extended, "")
- If $ireturn >= 0 AND $ireturn <= 4 Then Return $aresult[$ireturn]
- Return $aresult
- EndFunc
- Global $__gainprocess_winapi[64][2] = [[0, 0]]
- Global $__gawinlist_winapi[64][2] = [[0, 0]]
- Global Const $__winapiconstant_wm_setfont = 48
- Global Const $__winapiconstant_fw_normal = 400
- Global Const $__winapiconstant_default_charset = 1
- Global Const $__winapiconstant_out_default_precis = 0
- Global Const $__winapiconstant_clip_default_precis = 0
- Global Const $__winapiconstant_default_quality = 0
- Global Const $__winapiconstant_format_message_allocate_buffer = 256
- Global Const $__winapiconstant_format_message_from_system = 4096
- Global Const $__winapiconstant_logpixelsx = 88
- Global Const $__winapiconstant_logpixelsy = 90
- Global Const $hgdi_error = Ptr(-1)
- Global Const $invalid_handle_value = Ptr(-1)
- Global Const $clr_invalid = -1
- Global Const $__winapiconstant_flashw_caption = 1
- Global Const $__winapiconstant_flashw_tray = 2
- Global Const $__winapiconstant_flashw_timer = 4
- Global Const $__winapiconstant_flashw_timernofg = 12
- Global Const $__winapiconstant_gw_hwndnext = 2
- Global Const $__winapiconstant_gw_child = 5
- Global Const $__winapiconstant_di_mask = 1
- Global Const $__winapiconstant_di_image = 2
- Global Const $__winapiconstant_di_normal = 3
- Global Const $__winapiconstant_di_compat = 4
- Global Const $__winapiconstant_di_defaultsize = 8
- Global Const $__winapiconstant_di_nomirror = 16
- Global Const $__winapiconstant_display_device_attached_to_desktop = 1
- Global Const $__winapiconstant_display_device_primary_device = 4
- Global Const $__winapiconstant_display_device_mirroring_driver = 8
- Global Const $__winapiconstant_display_device_vga_compatible = 16
- Global Const $__winapiconstant_display_device_removable = 32
- Global Const $__winapiconstant_display_device_modespruned = 134217728
- Global Const $null_brush = 5
- Global Const $null_pen = 8
- Global Const $black_brush = 4
- Global Const $dkgray_brush = 3
- Global Const $dc_brush = 18
- Global Const $gray_brush = 2
- Global Const $hollow_brush = $null_brush
- Global Const $ltgray_brush = 1
- Global Const $white_brush = 0
- Global Const $black_pen = 7
- Global Const $dc_pen = 19
- Global Const $white_pen = 6
- Global Const $ansi_fixed_font = 11
- Global Const $ansi_var_font = 12
- Global Const $device_default_font = 14
- Global Const $default_gui_font = 17
- Global Const $oem_fixed_font = 10
- Global Const $system_font = 13
- Global Const $system_fixed_font = 16
- Global Const $default_palette = 15
- Global Const $mb_precomposed = 1
- Global Const $mb_composite = 2
- Global Const $mb_useglyphchars = 4
- Global Const $ulw_alpha = 2
- Global Const $ulw_colorkey = 1
- Global Const $ulw_opaque = 4
- Global Const $wh_callwndproc = 4
- Global Const $wh_callwndprocret = 12
- Global Const $wh_cbt = 5
- Global Const $wh_debug = 9
- Global Const $wh_foregroundidle = 11
- Global Const $wh_getmessage = 3
- Global Const $wh_journalplayback = 1
- Global Const $wh_journalrecord = 0
- Global Const $wh_keyboard = 2
- Global Const $wh_keyboard_ll = 13
- Global Const $wh_mouse = 7
- Global Const $wh_mouse_ll = 14
- Global Const $wh_msgfilter = -1
- Global Const $wh_shell = 10
- Global Const $wh_sysmsgfilter = 6
- Global Const $wpf_asyncwindowplacement = 4
- Global Const $wpf_restoretomaximized = 2
- Global Const $wpf_setminposition = 1
- Global Const $kf_extended = 256
- Global Const $kf_altdown = 8192
- Global Const $kf_up = 32768
- Global Const $llkhf_extended = BitShift($kf_extended, 8)
- Global Const $llkhf_injected = 16
- Global Const $llkhf_altdown = BitShift($kf_altdown, 8)
- Global Const $llkhf_up = BitShift($kf_up, 8)
- Global Const $ofn_allowmultiselect = 512
- Global Const $ofn_createprompt = 8192
- Global Const $ofn_dontaddtorecent = 33554432
- Global Const $ofn_enablehook = 32
- Global Const $ofn_enableincludenotify = 4194304
- Global Const $ofn_enablesizing = 8388608
- Global Const $ofn_enabletemplate = 64
- Global Const $ofn_enabletemplatehandle = 128
- Global Const $ofn_explorer = 524288
- Global Const $ofn_extensiondifferent = 1024
- Global Const $ofn_filemustexist = 4096
- Global Const $ofn_forceshowhidden = 268435456
- Global Const $ofn_hidereadonly = 4
- Global Const $ofn_longnames = 2097152
- Global Const $ofn_nochangedir = 8
- Global Const $ofn_nodereferencelinks = 1048576
- Global Const $ofn_nolongnames = 262144
- Global Const $ofn_nonetworkbutton = 131072
- Global Const $ofn_noreadonlyreturn = 32768
- Global Const $ofn_notestfilecreate = 65536
- Global Const $ofn_novalidate = 256
- Global Const $ofn_overwriteprompt = 2
- Global Const $ofn_pathmustexist = 2048
- Global Const $ofn_readonly = 1
- Global Const $ofn_shareaware = 16384
- Global Const $ofn_showhelp = 16
- Global Const $ofn_ex_noplacesbar = 1
- Global Const $tagcursorinfo = "dword Size;dword Flags;handle hCursor;" & $tagpoint
- Global Const $tagdisplay_device = "dword Size;wchar Name[32];wchar String[128];dword Flags;wchar ID[128];wchar Key[128]"
- Global Const $tagflashwinfo = "uint Size;hwnd hWnd;dword Flags;uint Count;dword TimeOut"
- Global Const $tagiconinfo = "bool Icon;dword XHotSpot;dword YHotSpot;handle hMask;handle hColor"
- Global Const $tagmemorystatusex = "dword Length;dword MemoryLoad;" & "uint64 TotalPhys;uint64 AvailPhys;uint64 TotalPageFile;uint64 AvailPageFile;" & "uint64 TotalVirtual;uint64 AvailVirtual;uint64 AvailExtendedVirtual"
- Func _winapi_attachconsole($iprocessid = -1)
- Local $aresult = DllCall("kernel32.dll", "bool", "AttachConsole", "dword", $iprocessid)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_attachthreadinput($iattach, $iattachto, $fattach)
- Local $aresult = DllCall("user32.dll", "bool", "AttachThreadInput", "dword", $iattach, "dword", $iattachto, "bool", $fattach)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_beep($ifreq = 500, $iduration = 1000)
- Local $aresult = DllCall("kernel32.dll", "bool", "Beep", "dword", $ifreq, "dword", $iduration)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_bitblt($hdestdc, $ixdest, $iydest, $iwidth, $iheight, $hsrcdc, $ixsrc, $iysrc, $irop)
- Local $aresult = DllCall("gdi32.dll", "bool", "BitBlt", "handle", $hdestdc, "int", $ixdest, "int", $iydest, "int", $iwidth, "int", $iheight, "handle", $hsrcdc, "int", $ixsrc, "int", $iysrc, "dword", $irop)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_callnexthookex($hhk, $icode, $wparam, $lparam)
- Local $aresult = DllCall("user32.dll", "lresult", "CallNextHookEx", "handle", $hhk, "int", $icode, "wparam", $wparam, "lparam", $lparam)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aresult[0]
- EndFunc
- Func _winapi_callwindowproc($lpprevwndfunc, $hwnd, $msg, $wparam, $lparam)
- Local $aresult = DllCall("user32.dll", "lresult", "CallWindowProc", "ptr", $lpprevwndfunc, "hwnd", $hwnd, "uint", $msg, "wparam", $wparam, "lparam", $lparam)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aresult[0]
- EndFunc
- Func _winapi_clienttoscreen($hwnd, ByRef $tpoint)
- Local $ppoint = DllStructGetPtr($tpoint)
- DllCall("user32.dll", "bool", "ClientToScreen", "hwnd", $hwnd, "ptr", $ppoint)
- Return SetError(@error, @extended, $tpoint)
- EndFunc
- Func _winapi_closehandle($hobject)
- Local $aresult = DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $hobject)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_combinergn($hrgndest, $hrgnsrc1, $hrgnsrc2, $icombinemode)
- Local $aresult = DllCall("gdi32.dll", "int", "CombineRgn", "handle", $hrgndest, "handle", $hrgnsrc1, "handle", $hrgnsrc2, "int", $icombinemode)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_commdlgextendederror()
- Local Const $cderr_dialogfailure = 65535
- Local Const $cderr_findresfailure = 6
- Local Const $cderr_initialization = 2
- Local Const $cderr_loadresfailure = 7
- Local Const $cderr_loadstrfailure = 5
- Local Const $cderr_lockresfailure = 8
- Local Const $cderr_memallocfailure = 9
- Local Const $cderr_memlockfailure = 10
- Local Const $cderr_nohinstance = 4
- Local Const $cderr_nohook = 11
- Local Const $cderr_notemplate = 3
- Local Const $cderr_registermsgfail = 12
- Local Const $cderr_structsize = 1
- Local Const $fnerr_buffertoosmall = 12291
- Local Const $fnerr_invalidfilename = 12290
- Local Const $fnerr_subclassfailure = 12289
- Local $aresult = DllCall("comdlg32.dll", "dword", "CommDlgExtendedError")
- If @error Then Return SetError(@error, @extended, 0)
- Switch $aresult[0]
- Case $cderr_dialogfailure
- Return SetError($aresult[0], 0, "The dialog box could not be created." & @LF & "The common dialog box function's call to the DialogBox function failed." & @LF & "For example, this error occurs if the common dialog box call specifies an invalid window handle.")
- Case $cderr_findresfailure
- Return SetError($aresult[0], 0, "The common dialog box function failed to find a specified resource.")
- Case $cderr_initialization
- Return SetError($aresult[0], 0, "The common dialog box function failed during initialization." & @LF & "This error often occurs when sufficient memory is not available.")
- Case $cderr_loadresfailure
- Return SetError($aresult[0], 0, "The common dialog box function failed to load a specified resource.")
- Case $cderr_loadstrfailure
- Return SetError($aresult[0], 0, "The common dialog box function failed to load a specified string.")
- Case $cderr_lockresfailure
- Return SetError($aresult[0], 0, "The common dialog box function failed to lock a specified resource.")
- Case $cderr_memallocfailure
- Return SetError($aresult[0], 0, "The common dialog box function was unable to allocate memory for internal structures.")
- Case $cderr_memlockfailure
- Return SetError($aresult[0], 0, "The common dialog box function was unable to lock the memory associated with a handle.")
- Case $cderr_nohinstance
- Return SetError($aresult[0], 0, "The ENABLETEMPLATE flag was set in the Flags member of the initialization structure for the corresponding common dialog box," & @LF & "but you failed to provide a corresponding instance handle.")
- Case $cderr_nohook
- Return SetError($aresult[0], 0, "The ENABLEHOOK flag was set in the Flags member of the initialization structure for the corresponding common dialog box," & @LF & "but you failed to provide a pointer to a corresponding hook procedure.")
- Case $cderr_notemplate
- Return SetError($aresult[0], 0, "The ENABLETEMPLATE flag was set in the Flags member of the initialization structure for the corresponding common dialog box," & @LF & "but you failed to provide a corresponding template.")
- Case $cderr_registermsgfail
- Return SetError($aresult[0], 0, "The RegisterWindowMessage function returned an error code when it was called by the common dialog box function.")
- Case $cderr_structsize
- Return SetError($aresult[0], 0, "The lStructSize member of the initialization structure for the corresponding common dialog box is invalid")
- Case $fnerr_buffertoosmall
- Return SetError($aresult[0], 0, "The buffer pointed to by the lpstrFile member of the OPENFILENAME structure is too small for the file name specified by the user." & @LF & "The first two bytes of the lpstrFile buffer contain an integer value specifying the size, in TCHARs, required to receive the full name.")
- Case $fnerr_invalidfilename
- Return SetError($aresult[0], 0, "A file name is invalid.")
- Case $fnerr_subclassfailure
- Return SetError($aresult[0], 0, "An attempt to subclass a list box failed because sufficient memory was not available.")
- EndSwitch
- Return Hex($aresult[0])
- EndFunc
- Func _winapi_copyicon($hicon)
- Local $aresult = DllCall("user32.dll", "handle", "CopyIcon", "handle", $hicon)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createbitmap($iwidth, $iheight, $iplanes = 1, $ibitsperpel = 1, $pbits = 0)
- Local $aresult = DllCall("gdi32.dll", "handle", "CreateBitmap", "int", $iwidth, "int", $iheight, "uint", $iplanes, "uint", $ibitsperpel, "ptr", $pbits)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createcompatiblebitmap($hdc, $iwidth, $iheight)
- Local $aresult = DllCall("gdi32.dll", "handle", "CreateCompatibleBitmap", "handle", $hdc, "int", $iwidth, "int", $iheight)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createcompatibledc($hdc)
- Local $aresult = DllCall("gdi32.dll", "handle", "CreateCompatibleDC", "handle", $hdc)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createevent($pattributes = 0, $fmanualreset = True, $finitialstate = True, $sname = "")
- Local $snametype = "wstr"
- If $sname = "" Then
- $sname = 0
- $snametype = "ptr"
- EndIf
- Local $aresult = DllCall("kernel32.dll", "handle", "CreateEventW", "ptr", $pattributes, "bool", $fmanualreset, "bool", $finitialstate, $snametype, $sname)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createfile($sfilename, $icreation, $iaccess = 4, $ishare = 0, $iattributes = 0, $psecurity = 0)
- Local $ida = 0, $ism = 0, $icd = 0, $ifa = 0
- If BitAND($iaccess, 1) <> 0 Then $ida = BitOR($ida, $generic_execute)
- If BitAND($iaccess, 2) <> 0 Then $ida = BitOR($ida, $generic_read)
- If BitAND($iaccess, 4) <> 0 Then $ida = BitOR($ida, $generic_write)
- If BitAND($ishare, 1) <> 0 Then $ism = BitOR($ism, $file_share_delete)
- If BitAND($ishare, 2) <> 0 Then $ism = BitOR($ism, $file_share_read)
- If BitAND($ishare, 4) <> 0 Then $ism = BitOR($ism, $file_share_write)
- Switch $icreation
- Case 0
- $icd = $create_new
- Case 1
- $icd = $create_always
- Case 2
- $icd = $open_existing
- Case 3
- $icd = $open_always
- Case 4
- $icd = $truncate_existing
- EndSwitch
- If BitAND($iattributes, 1) <> 0 Then $ifa = BitOR($ifa, $file_attribute_archive)
- If BitAND($iattributes, 2) <> 0 Then $ifa = BitOR($ifa, $file_attribute_hidden)
- If BitAND($iattributes, 4) <> 0 Then $ifa = BitOR($ifa, $file_attribute_readonly)
- If BitAND($iattributes, 8) <> 0 Then $ifa = BitOR($ifa, $file_attribute_system)
- Local $aresult = DllCall("kernel32.dll", "handle", "CreateFileW", "wstr", $sfilename, "dword", $ida, "dword", $ism, "ptr", $psecurity, "dword", $icd, "dword", $ifa, "ptr", 0)
- If @error OR $aresult[0] = Ptr(-1) Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createfont($nheight, $nwidth, $nescape = 0, $norientn = 0, $fnweight = $__winapiconstant_fw_normal, $bitalic = False, $bunderline = False, $bstrikeout = False, $ncharset = $__winapiconstant_default_charset, $noutputprec = $__winapiconstant_out_default_precis, $nclipprec = $__winapiconstant_clip_default_precis, $nquality = $__winapiconstant_default_quality, $npitch = 0, $szface = "Arial")
- Local $aresult = DllCall("gdi32.dll", "handle", "CreateFontW", "int", $nheight, "int", $nwidth, "int", $nescape, "int", $norientn, "int", $fnweight, "dword", $bitalic, "dword", $bunderline, "dword", $bstrikeout, "dword", $ncharset, "dword", $noutputprec, "dword", $nclipprec, "dword", $nquality, "dword", $npitch, "wstr", $szface)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createfontindirect($tlogfont)
- Local $aresult = DllCall("gdi32.dll", "handle", "CreateFontIndirectW", "ptr", DllStructGetPtr($tlogfont))
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createpen($ipenstyle, $iwidth, $ncolor)
- Local $aresult = DllCall("gdi32.dll", "handle", "CreatePen", "int", $ipenstyle, "int", $iwidth, "dword", $ncolor)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createprocess($sappname, $scommand, $psecurity, $pthread, $finherit, $iflags, $penviron, $sdir, $pstartupinfo, $pprocess)
- Local $pcommand = 0
- Local $sappnametype = "wstr", $sdirtype = "wstr"
- If $sappname = "" Then
- $sappnametype = "ptr"
- $sappname = 0
- EndIf
- If $scommand <> "" Then
- Local $tcommand = DllStructCreate("wchar Text[" & 260 + 1 & "]")
- $pcommand = DllStructGetPtr($tcommand)
- DllStructSetData($tcommand, "Text", $scommand)
- EndIf
- If $sdir = "" Then
- $sdirtype = "ptr"
- $sdir = 0
- EndIf
- Local $aresult = DllCall("kernel32.dll", "bool", "CreateProcessW", $sappnametype, $sappname, "ptr", $pcommand, "ptr", $psecurity, "ptr", $pthread, "bool", $finherit, "dword", $iflags, "ptr", $penviron, $sdirtype, $sdir, "ptr", $pstartupinfo, "ptr", $pprocess)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_createrectrgn($ileftrect, $itoprect, $irightrect, $ibottomrect)
- Local $aresult = DllCall("gdi32.dll", "handle", "CreateRectRgn", "int", $ileftrect, "int", $itoprect, "int", $irightrect, "int", $ibottomrect)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createroundrectrgn($ileftrect, $itoprect, $irightrect, $ibottomrect, $iwidthellipse, $iheightellipse)
- Local $aresult = DllCall("gdi32.dll", "handle", "CreateRoundRectRgn", "int", $ileftrect, "int", $itoprect, "int", $irightrect, "int", $ibottomrect, "int", $iwidthellipse, "int", $iheightellipse)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createsolidbitmap($hwnd, $icolor, $iwidth, $iheight, $brgb = 1)
- Local $hdc = _winapi_getdc($hwnd)
- Local $hdestdc = _winapi_createcompatibledc($hdc)
- Local $hbitmap = _winapi_createcompatiblebitmap($hdc, $iwidth, $iheight)
- Local $hold = _winapi_selectobject($hdestdc, $hbitmap)
- Local $trect = DllStructCreate($tagrect)
- DllStructSetData($trect, 1, 0)
- DllStructSetData($trect, 2, 0)
- DllStructSetData($trect, 3, $iwidth)
- DllStructSetData($trect, 4, $iheight)
- If $brgb Then
- $icolor = BitOR(BitAND($icolor, 65280), BitShift(BitAND($icolor, 255), -16), BitShift(BitAND($icolor, 16711680), 16))
- EndIf
- Local $hbrush = _winapi_createsolidbrush($icolor)
- _winapi_fillrect($hdestdc, DllStructGetPtr($trect), $hbrush)
- If @error Then
- _winapi_deleteobject($hbitmap)
- $hbitmap = 0
- EndIf
- _winapi_deleteobject($hbrush)
- _winapi_releasedc($hwnd, $hdc)
- _winapi_selectobject($hdestdc, $hold)
- _winapi_deletedc($hdestdc)
- If NOT $hbitmap Then Return SetError(1, 0, 0)
- Return $hbitmap
- EndFunc
- Func _winapi_createsolidbrush($ncolor)
- Local $aresult = DllCall("gdi32.dll", "handle", "CreateSolidBrush", "dword", $ncolor)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_createwindowex($iexstyle, $sclass, $sname, $istyle, $ix, $iy, $iwidth, $iheight, $hparent, $hmenu = 0, $hinstance = 0, $pparam = 0)
- If $hinstance = 0 Then $hinstance = _winapi_getmodulehandle("")
- Local $aresult = DllCall("user32.dll", "hwnd", "CreateWindowExW", "dword", $iexstyle, "wstr", $sclass, "wstr", $sname, "dword", $istyle, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight, "hwnd", $hparent, "handle", $hmenu, "handle", $hinstance, "ptr", $pparam)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_defwindowproc($hwnd, $imsg, $iwparam, $ilparam)
- Local $aresult = DllCall("user32.dll", "lresult", "DefWindowProc", "hwnd", $hwnd, "uint", $imsg, "wparam", $iwparam, "lparam", $ilparam)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_deletedc($hdc)
- Local $aresult = DllCall("gdi32.dll", "bool", "DeleteDC", "handle", $hdc)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_deleteobject($hobject)
- Local $aresult = DllCall("gdi32.dll", "bool", "DeleteObject", "handle", $hobject)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_destroyicon($hicon)
- Local $aresult = DllCall("user32.dll", "bool", "DestroyIcon", "handle", $hicon)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_destroywindow($hwnd)
- Local $aresult = DllCall("user32.dll", "bool", "DestroyWindow", "hwnd", $hwnd)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_drawedge($hdc, $ptrrect, $nedgetype, $grfflags)
- Local $aresult = DllCall("user32.dll", "bool", "DrawEdge", "handle", $hdc, "ptr", $ptrrect, "uint", $nedgetype, "uint", $grfflags)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_drawframecontrol($hdc, $ptrrect, $ntype, $nstate)
- Local $aresult = DllCall("user32.dll", "bool", "DrawFrameControl", "handle", $hdc, "ptr", $ptrrect, "uint", $ntype, "uint", $nstate)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_drawicon($hdc, $ix, $iy, $hicon)
- Local $aresult = DllCall("user32.dll", "bool", "DrawIcon", "handle", $hdc, "int", $ix, "int", $iy, "handle", $hicon)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_drawiconex($hdc, $ix, $iy, $hicon, $iwidth = 0, $iheight = 0, $istep = 0, $hbrush = 0, $iflags = 3)
- Local $ioptions
- Switch $iflags
- Case 1
- $ioptions = $__winapiconstant_di_mask
- Case 2
- $ioptions = $__winapiconstant_di_image
- Case 3
- $ioptions = $__winapiconstant_di_normal
- Case 4
- $ioptions = $__winapiconstant_di_compat
- Case 5
- $ioptions = $__winapiconstant_di_defaultsize
- Case Else
- $ioptions = $__winapiconstant_di_nomirror
- EndSwitch
- Local $aresult = DllCall("user32.dll", "bool", "DrawIconEx", "handle", $hdc, "int", $ix, "int", $iy, "handle", $hicon, "int", $iwidth, "int", $iheight, "uint", $istep, "handle", $hbrush, "uint", $ioptions)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_drawline($hdc, $ix1, $iy1, $ix2, $iy2)
- _winapi_moveto($hdc, $ix1, $iy1)
- If @error Then Return SetError(@error, @extended, False)
- _winapi_lineto($hdc, $ix2, $iy2)
- If @error Then Return SetError(@error, @extended, False)
- Return True
- EndFunc
- Func _winapi_drawtext($hdc, $stext, ByRef $trect, $iflags)
- Local $aresult = DllCall("user32.dll", "int", "DrawTextW", "handle", $hdc, "wstr", $stext, "int", -1, "ptr", DllStructGetPtr($trect), "uint", $iflags)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_enablewindow($hwnd, $fenable = True)
- Local $aresult = DllCall("user32.dll", "bool", "EnableWindow", "hwnd", $hwnd, "bool", $fenable)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_enumdisplaydevices($sdevice, $idevnum)
- Local $pname = 0, $iflags = 0, $adevice[5]
- If $sdevice <> "" Then
- Local $tname = DllStructCreate("wchar Text[" & StringLen($sdevice) + 1 & "]")
- $pname = DllStructGetPtr($tname)
- DllStructSetData($tname, "Text", $sdevice)
- EndIf
- Local $tdevice = DllStructCreate($tagdisplay_device)
- Local $pdevice = DllStructGetPtr($tdevice)
- Local $idevice = DllStructGetSize($tdevice)
- DllStructSetData($tdevice, "Size", $idevice)
- DllCall("user32.dll", "bool", "EnumDisplayDevicesW", "ptr", $pname, "dword", $idevnum, "ptr", $pdevice, "dword", 1)
- If @error Then Return SetError(@error, @extended, 0)
- Local $in = DllStructGetData($tdevice, "Flags")
- If BitAND($in, $__winapiconstant_display_device_attached_to_desktop) <> 0 Then $iflags = BitOR($iflags, 1)
- If BitAND($in, $__winapiconstant_display_device_primary_device) <> 0 Then $iflags = BitOR($iflags, 2)
- If BitAND($in, $__winapiconstant_display_device_mirroring_driver) <> 0 Then $iflags = BitOR($iflags, 4)
- If BitAND($in, $__winapiconstant_display_device_vga_compatible) <> 0 Then $iflags = BitOR($iflags, 8)
- If BitAND($in, $__winapiconstant_display_device_removable) <> 0 Then $iflags = BitOR($iflags, 16)
- If BitAND($in, $__winapiconstant_display_device_modespruned) <> 0 Then $iflags = BitOR($iflags, 32)
- $adevice[0] = True
- $adevice[1] = DllStructGetData($tdevice, "Name")
- $adevice[2] = DllStructGetData($tdevice, "String")
- $adevice[3] = $iflags
- $adevice[4] = DllStructGetData($tdevice, "ID")
- Return $adevice
- EndFunc
- Func _winapi_enumwindows($fvisible = True, $hwnd = Default)
- __winapi_enumwindowsinit()
- If $hwnd = Default Then $hwnd = _winapi_getdesktopwindow()
- __winapi_enumwindowschild($hwnd, $fvisible)
- Return $__gawinlist_winapi
- EndFunc
- Func __winapi_enumwindowsadd($hwnd, $sclass = "")
- If $sclass = "" Then $sclass = _winapi_getclassname($hwnd)
- $__gawinlist_winapi[0][0] += 1
- Local $icount = $__gawinlist_winapi[0][0]
- If $icount >= $__gawinlist_winapi[0][1] Then
- ReDim $__gawinlist_winapi[$icount + 64][2]
- $__gawinlist_winapi[0][1] += 64
- EndIf
- $__gawinlist_winapi[$icount][0] = $hwnd
- $__gawinlist_winapi[$icount][1] = $sclass
- EndFunc
- Func __winapi_enumwindowschild($hwnd, $fvisible = True)
- $hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_child)
- While $hwnd <> 0
- If (NOT $fvisible) OR _winapi_iswindowvisible($hwnd) Then
- __winapi_enumwindowschild($hwnd, $fvisible)
- __winapi_enumwindowsadd($hwnd)
- EndIf
- $hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_hwndnext)
- WEnd
- EndFunc
- Func __winapi_enumwindowsinit()
- ReDim $__gawinlist_winapi[64][2]
- $__gawinlist_winapi[0][0] = 0
- $__gawinlist_winapi[0][1] = 64
- EndFunc
- Func _winapi_enumwindowspopup()
- __winapi_enumwindowsinit()
- Local $hwnd = _winapi_getwindow(_winapi_getdesktopwindow(), $__winapiconstant_gw_child)
- Local $sclass
- While $hwnd <> 0
- If _winapi_iswindowvisible($hwnd) Then
- $sclass = _winapi_getclassname($hwnd)
- If $sclass = "#32768" Then
- __winapi_enumwindowsadd($hwnd)
- ElseIf $sclass = "ToolbarWindow32" Then
- __winapi_enumwindowsadd($hwnd)
- ElseIf $sclass = "ToolTips_Class32" Then
- __winapi_enumwindowsadd($hwnd)
- ElseIf $sclass = "BaseBar" Then
- __winapi_enumwindowschild($hwnd)
- EndIf
- EndIf
- $hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_hwndnext)
- WEnd
- Return $__gawinlist_winapi
- EndFunc
- Func _winapi_enumwindowstop()
- __winapi_enumwindowsinit()
- Local $hwnd = _winapi_getwindow(_winapi_getdesktopwindow(), $__winapiconstant_gw_child)
- While $hwnd <> 0
- If _winapi_iswindowvisible($hwnd) Then __winapi_enumwindowsadd($hwnd)
- $hwnd = _winapi_getwindow($hwnd, $__winapiconstant_gw_hwndnext)
- WEnd
- Return $__gawinlist_winapi
- EndFunc
- Func _winapi_expandenvironmentstrings($sstring)
- Local $aresult = DllCall("kernel32.dll", "dword", "ExpandEnvironmentStringsW", "wstr", $sstring, "wstr", "", "dword", 4096)
- If @error Then Return SetError(@error, @extended, "")
- Return $aresult[2]
- EndFunc
- Func _winapi_extracticonex($sfile, $iindex, $plarge, $psmall, $iicons)
- Local $aresult = DllCall("shell32.dll", "uint", "ExtractIconExW", "wstr", $sfile, "int", $iindex, "handle", $plarge, "handle", $psmall, "uint", $iicons)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_fatalappexit($smessage)
- DllCall("kernel32.dll", "none", "FatalAppExitW", "uint", 0, "wstr", $smessage)
- If @error Then Return SetError(@error, @extended)
- EndFunc
- Func _winapi_fillrect($hdc, $ptrrect, $hbrush)
- Local $aresult
- If IsPtr($hbrush) Then
- $aresult = DllCall("user32.dll", "int", "FillRect", "handle", $hdc, "ptr", $ptrrect, "handle", $hbrush)
- Else
- $aresult = DllCall("user32.dll", "int", "FillRect", "handle", $hdc, "ptr", $ptrrect, "dword", $hbrush)
- EndIf
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_findexecutable($sfilename, $sdirectory = "")
- Local $aresult = DllCall("shell32.dll", "INT", "FindExecutableW", "wstr", $sfilename, "wstr", $sdirectory, "wstr", "")
- If @error Then Return SetError(@error, @extended, 0)
- Return SetExtended($aresult[0], $aresult[3])
- EndFunc
- Func _winapi_findwindow($sclassname, $swindowname)
- Local $aresult = DllCall("user32.dll", "hwnd", "FindWindowW", "wstr", $sclassname, "wstr", $swindowname)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_flashwindow($hwnd, $finvert = True)
- Local $aresult = DllCall("user32.dll", "bool", "FlashWindow", "hwnd", $hwnd, "bool", $finvert)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_flashwindowex($hwnd, $iflags = 3, $icount = 3, $itimeout = 0)
- Local $tflash = DllStructCreate($tagflashwinfo)
- Local $pflash = DllStructGetPtr($tflash)
- Local $iflash = DllStructGetSize($tflash)
- Local $imode = 0
- If BitAND($iflags, 1) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_caption)
- If BitAND($iflags, 2) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_tray)
- If BitAND($iflags, 4) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_timer)
- If BitAND($iflags, 8) <> 0 Then $imode = BitOR($imode, $__winapiconstant_flashw_timernofg)
- DllStructSetData($tflash, "Size", $iflash)
- DllStructSetData($tflash, "hWnd", $hwnd)
- DllStructSetData($tflash, "Flags", $imode)
- DllStructSetData($tflash, "Count", $icount)
- DllStructSetData($tflash, "Timeout", $itimeout)
- Local $aresult = DllCall("user32.dll", "bool", "FlashWindowEx", "ptr", $pflash)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_floattoint($nfloat)
- Local $tfloat = DllStructCreate("float")
- Local $tint = DllStructCreate("int", DllStructGetPtr($tfloat))
- DllStructSetData($tfloat, 1, $nfloat)
- Return DllStructGetData($tint, 1)
- EndFunc
- Func _winapi_flushfilebuffers($hfile)
- Local $aresult = DllCall("kernel32.dll", "bool", "FlushFileBuffers", "handle", $hfile)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_formatmessage($iflags, $psource, $imessageid, $ilanguageid, ByRef $pbuffer, $isize, $varguments)
- Local $sbuffertype = "ptr"
- If IsString($pbuffer) Then $sbuffertype = "wstr"
- Local $aresult = DllCall("Kernel32.dll", "dword", "FormatMessageW", "dword", $iflags, "ptr", $psource, "dword", $imessageid, "dword", $ilanguageid, $sbuffertype, $pbuffer, "dword", $isize, "ptr", $varguments)
- If @error Then Return SetError(@error, @extended, 0)
- If $sbuffertype = "wstr" Then $pbuffer = $aresult[5]
- Return $aresult[0]
- EndFunc
- Func _winapi_framerect($hdc, $ptrrect, $hbrush)
- Local $aresult = DllCall("user32.dll", "int", "FrameRect", "handle", $hdc, "ptr", $ptrrect, "handle", $hbrush)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_freelibrary($hmodule)
- Local $aresult = DllCall("kernel32.dll", "bool", "FreeLibrary", "handle", $hmodule)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_getancestor($hwnd, $iflags = 1)
- Local $aresult = DllCall("user32.dll", "hwnd", "GetAncestor", "hwnd", $hwnd, "uint", $iflags)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getasynckeystate($ikey)
- Local $aresult = DllCall("user32.dll", "short", "GetAsyncKeyState", "int", $ikey)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getbkmode($hdc)
- Local $aresult = DllCall("gdi32.dll", "int", "GetBkMode", "handle", $hdc)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getclassname($hwnd)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $aresult = DllCall("user32.dll", "int", "GetClassNameW", "hwnd", $hwnd, "wstr", "", "int", 4096)
- If @error Then Return SetError(@error, @extended, False)
- Return SetExtended($aresult[0], $aresult[2])
- EndFunc
- Func _winapi_getclientheight($hwnd)
- Local $trect = _winapi_getclientrect($hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return DllStructGetData($trect, "Bottom") - DllStructGetData($trect, "Top")
- EndFunc
- Func _winapi_getclientwidth($hwnd)
- Local $trect = _winapi_getclientrect($hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return DllStructGetData($trect, "Right") - DllStructGetData($trect, "Left")
- EndFunc
- Func _winapi_getclientrect($hwnd)
- Local $trect = DllStructCreate($tagrect)
- DllCall("user32.dll", "bool", "GetClientRect", "hwnd", $hwnd, "ptr", DllStructGetPtr($trect))
- If @error Then Return SetError(@error, @extended, 0)
- Return $trect
- EndFunc
- Func _winapi_getcurrentprocess()
- Local $aresult = DllCall("kernel32.dll", "handle", "GetCurrentProcess")
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getcurrentprocessid()
- Local $aresult = DllCall("kernel32.dll", "dword", "GetCurrentProcessId")
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getcurrentthread()
- Local $aresult = DllCall("kernel32.dll", "handle", "GetCurrentThread")
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getcurrentthreadid()
- Local $aresult = DllCall("kernel32.dll", "dword", "GetCurrentThreadId")
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getcursorinfo()
- Local $tcursor = DllStructCreate($tagcursorinfo)
- Local $icursor = DllStructGetSize($tcursor)
- DllStructSetData($tcursor, "Size", $icursor)
- DllCall("user32.dll", "bool", "GetCursorInfo", "ptr", DllStructGetPtr($tcursor))
- If @error Then Return SetError(@error, @extended, 0)
- Local $acursor[5]
- $acursor[0] = True
- $acursor[1] = DllStructGetData($tcursor, "Flags") <> 0
- $acursor[2] = DllStructGetData($tcursor, "hCursor")
- $acursor[3] = DllStructGetData($tcursor, "X")
- $acursor[4] = DllStructGetData($tcursor, "Y")
- Return $acursor
- EndFunc
- Func _winapi_getdc($hwnd)
- Local $aresult = DllCall("user32.dll", "handle", "GetDC", "hwnd", $hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getdesktopwindow()
- Local $aresult = DllCall("user32.dll", "hwnd", "GetDesktopWindow")
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getdevicecaps($hdc, $iindex)
- Local $aresult = DllCall("gdi32.dll", "int", "GetDeviceCaps", "handle", $hdc, "int", $iindex)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getdibits($hdc, $hbmp, $istartscan, $iscanlines, $pbits, $pbi, $iusage)
- Local $aresult = DllCall("gdi32.dll", "int", "GetDIBits", "handle", $hdc, "handle", $hbmp, "uint", $istartscan, "uint", $iscanlines, "ptr", $pbits, "ptr", $pbi, "uint", $iusage)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_getdlgctrlid($hwnd)
- Local $aresult = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getdlgitem($hwnd, $iitemid)
- Local $aresult = DllCall("user32.dll", "hwnd", "GetDlgItem", "hwnd", $hwnd, "int", $iitemid)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getfocus()
- Local $aresult = DllCall("user32.dll", "hwnd", "GetFocus")
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getforegroundwindow()
- Local $aresult = DllCall("user32.dll", "hwnd", "GetForegroundWindow")
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getguiresources($iflag = 0, $hprocess = -1)
- If $hprocess = -1 Then $hprocess = _winapi_getcurrentprocess()
- Local $aresult = DllCall("user32.dll", "dword", "GetGuiResources", "handle", $hprocess, "dword", $iflag)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_geticoninfo($hicon)
- Local $tinfo = DllStructCreate($tagiconinfo)
- DllCall("user32.dll", "bool", "GetIconInfo", "handle", $hicon, "ptr", DllStructGetPtr($tinfo))
- If @error Then Return SetError(@error, @extended, 0)
- Local $aicon[6]
- $aicon[0] = True
- $aicon[1] = DllStructGetData($tinfo, "Icon") <> 0
- $aicon[2] = DllStructGetData($tinfo, "XHotSpot")
- $aicon[3] = DllStructGetData($tinfo, "YHotSpot")
- $aicon[4] = DllStructGetData($tinfo, "hMask")
- $aicon[5] = DllStructGetData($tinfo, "hColor")
- Return $aicon
- EndFunc
- Func _winapi_getfilesizeex($hfile)
- Local $aresult = DllCall("kernel32.dll", "bool", "GetFileSizeEx", "handle", $hfile, "int64*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[2]
- EndFunc
- Func _winapi_getlasterrormessage()
- Local $tbufferptr = DllStructCreate("ptr")
- Local $pbufferptr = DllStructGetPtr($tbufferptr)
- Local $ncount = _winapi_formatmessage(BitOR($__winapiconstant_format_message_allocate_buffer, $__winapiconstant_format_message_from_system), 0, _winapi_getlasterror(), 0, $pbufferptr, 0, 0)
- If @error Then Return SetError(@error, 0, "")
- Local $stext = ""
- Local $pbuffer = DllStructGetData($tbufferptr, 1)
- If $pbuffer Then
- If $ncount > 0 Then
- Local $tbuffer = DllStructCreate("wchar[" & ($ncount + 1) & "]", $pbuffer)
- $stext = DllStructGetData($tbuffer, 1)
- EndIf
- _winapi_localfree($pbuffer)
- EndIf
- Return $stext
- EndFunc
- Func _winapi_getlayeredwindowattributes($hwnd, ByRef $i_transcolor, ByRef $transparency, $ascolorref = False)
- $i_transcolor = -1
- $transparency = -1
- Local $aresult = DllCall("user32.dll", "bool", "GetLayeredWindowAttributes", "hwnd", $hwnd, "dword*", $i_transcolor, "byte*", $transparency, "dword*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- If NOT $ascolorref Then
- $aresult[2] = Hex(String($aresult[2]), 6)
- $aresult[2] = "0x" & StringMid($aresult[2], 5, 2) & StringMid($aresult[2], 3, 2) & StringMid($aresult[2], 1, 2)
- EndIf
- $i_transcolor = $aresult[2]
- $transparency = $aresult[3]
- Return $aresult[4]
- EndFunc
- Func _winapi_getmodulehandle($smodulename)
- Local $smodulenametype = "wstr"
- If $smodulename = "" Then
- $smodulename = 0
- $smodulenametype = "ptr"
- EndIf
- Local $aresult = DllCall("kernel32.dll", "handle", "GetModuleHandleW", $smodulenametype, $smodulename)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getmousepos($ftoclient = False, $hwnd = 0)
- Local $imode = Opt("MouseCoordMode", 1)
- Local $apos = MouseGetPos()
- Opt("MouseCoordMode", $imode)
- Local $tpoint = DllStructCreate($tagpoint)
- DllStructSetData($tpoint, "X", $apos[0])
- DllStructSetData($tpoint, "Y", $apos[1])
- If $ftoclient Then
- _winapi_screentoclient($hwnd, $tpoint)
- If @error Then Return SetError(@error, @extended, 0)
- EndIf
- Return $tpoint
- EndFunc
- Func _winapi_getmouseposx($ftoclient = False, $hwnd = 0)
- Local $tpoint = _winapi_getmousepos($ftoclient, $hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return DllStructGetData($tpoint, "X")
- EndFunc
- Func _winapi_getmouseposy($ftoclient = False, $hwnd = 0)
- Local $tpoint = _winapi_getmousepos($ftoclient, $hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return DllStructGetData($tpoint, "Y")
- EndFunc
- Func _winapi_getobject($hobject, $isize, $pobject)
- Local $aresult = DllCall("gdi32.dll", "int", "GetObject", "handle", $hobject, "int", $isize, "ptr", $pobject)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getopenfilename($stitle = "", $sfilter = "All files (*.*)", $sinitaldir = ".", $sdefaultfile = "", $sdefaultext = "", $ifilterindex = 1, $iflags = 0, $iflagsex = 0, $hwndowner = 0)
- Local $ipathlen = 4096
- Local $inulls = 0
- Local $tofn = DllStructCreate($tagopenfilename)
- Local $afiles[1] = [0]
- Local $iflag = $iflags
- Local $asflines = StringSplit($sfilter, "|")
- Local $asfilter[$asflines[0] * 2 + 1]
- Local $istart, $ifinal, $stfilter
- $asfilter[0] = $asflines[0] * 2
- For $i = 1 To $asflines[0]
- $istart = StringInStr($asflines[$i], "(", 0, 1)
- $ifinal = StringInStr($asflines[$i], ")", 0, -1)
- $asfilter[$i * 2 - 1] = StringStripWS(StringLeft($asflines[$i], $istart - 1), 3)
- $asfilter[$i * 2] = StringStripWS(StringTrimRight(StringTrimLeft($asflines[$i], $istart), StringLen($asflines[$i]) - $ifinal + 1), 3)
- $stfilter &= "wchar[" & StringLen($asfilter[$i * 2 - 1]) + 1 & "];wchar[" & StringLen($asfilter[$i * 2]) + 1 & "];"
- Next
- Local $ttitle = DllStructCreate("wchar Title[" & StringLen($stitle) + 1 & "]")
- Local $tinitialdir = DllStructCreate("wchar InitDir[" & StringLen($sinitaldir) + 1 & "]")
- Local $tfilter = DllStructCreate($stfilter & "wchar")
- Local $tpath = DllStructCreate("wchar Path[" & $ipathlen & "]")
- Local $textn = DllStructCreate("wchar Extension[" & StringLen($sdefaultext) + 1 & "]")
- For $i = 1 To $asfilter[0]
- DllStructSetData($tfilter, $i, $asfilter[$i])
- Next
- DllStructSetData($ttitle, "Title", $stitle)
- DllStructSetData($tinitialdir, "InitDir", $sinitaldir)
- DllStructSetData($tpath, "Path", $sdefaultfile)
- DllStructSetData($textn, "Extension", $sdefaultext)
- DllStructSetData($tofn, "StructSize", DllStructGetSize($tofn))
- DllStructSetData($tofn, "hwndOwner", $hwndowner)
- DllStructSetData($tofn, "lpstrFilter", DllStructGetPtr($tfilter))
- DllStructSetData($tofn, "nFilterIndex", $ifilterindex)
- DllStructSetData($tofn, "lpstrFile", DllStructGetPtr($tpath))
- DllStructSetData($tofn, "nMaxFile", $ipathlen)
- DllStructSetData($tofn, "lpstrInitialDir", DllStructGetPtr($tinitialdir))
- DllStructSetData($tofn, "lpstrTitle", DllStructGetPtr($ttitle))
- DllStructSetData($tofn, "Flags", $iflag)
- DllStructSetData($tofn, "lpstrDefExt", DllStructGetPtr($textn))
- DllStructSetData($tofn, "FlagsEx", $iflagsex)
- DllCall("comdlg32.dll", "bool", "GetOpenFileNameW", "ptr", DllStructGetPtr($tofn))
- If @error Then Return SetError(@error, @extended, $afiles)
- If BitAND($iflags, $ofn_allowmultiselect) = $ofn_allowmultiselect AND BitAND($iflags, $ofn_explorer) = $ofn_explorer Then
- For $x = 1 To $ipathlen
- If DllStructGetData($tpath, "Path", $x) = Chr(0) Then
- DllStructSetData($tpath, "Path", "|", $x)
- $inulls += 1
- Else
- $inulls = 0
- EndIf
- If $inulls = 2 Then ExitLoop
- Next
- DllStructSetData($tpath, "Path", Chr(0), $x - 1)
- $afiles = StringSplit(DllStructGetData($tpath, "Path"), "|")
- If $afiles[0] = 1 Then Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path"))
- Return StringSplit(DllStructGetData($tpath, "Path"), "|")
- ElseIf BitAND($iflags, $ofn_allowmultiselect) = $ofn_allowmultiselect Then
- $afiles = StringSplit(DllStructGetData($tpath, "Path"), " ")
- If $afiles[0] = 1 Then Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path"))
- Return StringSplit(StringReplace(DllStructGetData($tpath, "Path"), " ", "|"), "|")
- Else
- Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path"))
- EndIf
- EndFunc
- Func _winapi_getoverlappedresult($hfile, $poverlapped, ByRef $ibytes, $fwait = False)
- Local $aresult = DllCall("kernel32.dll", "bool", "GetOverlappedResult", "handle", $hfile, "ptr", $poverlapped, "dword*", 0, "bool", $fwait)
- If @error Then Return SetError(@error, @extended, False)
- $ibytes = $aresult[3]
- Return $aresult[0]
- EndFunc
- Func _winapi_getparent($hwnd)
- Local $aresult = DllCall("user32.dll", "hwnd", "GetParent", "hwnd", $hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getprocessaffinitymask($hprocess)
- Local $aresult = DllCall("kernel32.dll", "bool", "GetProcessAffinityMask", "handle", $hprocess, "dword_ptr*", 0, "dword_ptr*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- Local $amask[3]
- $amask[0] = True
- $amask[1] = $aresult[2]
- $amask[2] = $aresult[3]
- Return $amask
- EndFunc
- Func _winapi_getsavefilename($stitle = "", $sfilter = "All files (*.*)", $sinitaldir = ".", $sdefaultfile = "", $sdefaultext = "", $ifilterindex = 1, $iflags = 0, $iflagsex = 0, $hwndowner = 0)
- Local $ipathlen = 4096
- Local $tofn = DllStructCreate($tagopenfilename)
- Local $afiles[1] = [0]
- Local $iflag = $iflags
- Local $asflines = StringSplit($sfilter, "|")
- Local $asfilter[$asflines[0] * 2 + 1]
- Local $istart, $ifinal, $stfilter
- $asfilter[0] = $asflines[0] * 2
- For $i = 1 To $asflines[0]
- $istart = StringInStr($asflines[$i], "(", 0, 1)
- $ifinal = StringInStr($asflines[$i], ")", 0, -1)
- $asfilter[$i * 2 - 1] = StringStripWS(StringLeft($asflines[$i], $istart - 1), 3)
- $asfilter[$i * 2] = StringStripWS(StringTrimRight(StringTrimLeft($asflines[$i], $istart), StringLen($asflines[$i]) - $ifinal + 1), 3)
- $stfilter &= "wchar[" & StringLen($asfilter[$i * 2 - 1]) + 1 & "];wchar[" & StringLen($asfilter[$i * 2]) + 1 & "];"
- Next
- Local $ttitle = DllStructCreate("wchar Title[" & StringLen($stitle) + 1 & "]")
- Local $tinitialdir = DllStructCreate("wchar InitDir[" & StringLen($sinitaldir) + 1 & "]")
- Local $tfilter = DllStructCreate($stfilter & "wchar")
- Local $tpath = DllStructCreate("wchar Path[" & $ipathlen & "]")
- Local $textn = DllStructCreate("wchar Extension[" & StringLen($sdefaultext) + 1 & "]")
- For $i = 1 To $asfilter[0]
- DllStructSetData($tfilter, $i, $asfilter[$i])
- Next
- DllStructSetData($ttitle, "Title", $stitle)
- DllStructSetData($tinitialdir, "InitDir", $sinitaldir)
- DllStructSetData($tpath, "Path", $sdefaultfile)
- DllStructSetData($textn, "Extension", $sdefaultext)
- DllStructSetData($tofn, "StructSize", DllStructGetSize($tofn))
- DllStructSetData($tofn, "hwndOwner", $hwndowner)
- DllStructSetData($tofn, "lpstrFilter", DllStructGetPtr($tfilter))
- DllStructSetData($tofn, "nFilterIndex", $ifilterindex)
- DllStructSetData($tofn, "lpstrFile", DllStructGetPtr($tpath))
- DllStructSetData($tofn, "nMaxFile", $ipathlen)
- DllStructSetData($tofn, "lpstrInitialDir", DllStructGetPtr($tinitialdir))
- DllStructSetData($tofn, "lpstrTitle", DllStructGetPtr($ttitle))
- DllStructSetData($tofn, "Flags", $iflag)
- DllStructSetData($tofn, "lpstrDefExt", DllStructGetPtr($textn))
- DllStructSetData($tofn, "FlagsEx", $iflagsex)
- DllCall("comdlg32.dll", "bool", "GetSaveFileNameW", "ptr", DllStructGetPtr($tofn))
- If @error Then Return SetError(@error, @extended, $afiles)
- Return __winapi_parsefiledialogpath(DllStructGetData($tpath, "Path"))
- EndFunc
- Func _winapi_getstockobject($iobject)
- Local $aresult = DllCall("gdi32.dll", "handle", "GetStockObject", "int", $iobject)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getstdhandle($istdhandle)
- If $istdhandle < 0 OR $istdhandle > 2 Then Return SetError(2, 0, -1)
- Local Const $ahandle[3] = [-10, -11, -12]
- Local $aresult = DllCall("kernel32.dll", "handle", "GetStdHandle", "dword", $ahandle[$istdhandle])
- If @error Then Return SetError(@error, @extended, -1)
- Return $aresult[0]
- EndFunc
- Func _winapi_getsyscolor($iindex)
- Local $aresult = DllCall("user32.dll", "dword", "GetSysColor", "int", $iindex)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getsyscolorbrush($iindex)
- Local $aresult = DllCall("user32.dll", "handle", "GetSysColorBrush", "int", $iindex)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getsystemmetrics($iindex)
- Local $aresult = DllCall("user32.dll", "int", "GetSystemMetrics", "int", $iindex)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_gettextextentpoint32($hdc, $stext)
- Local $tsize = DllStructCreate($tagsize)
- Local $isize = StringLen($stext)
- DllCall("gdi32.dll", "bool", "GetTextExtentPoint32W", "handle", $hdc, "wstr", $stext, "int", $isize, "ptr", DllStructGetPtr($tsize))
- If @error Then Return SetError(@error, @extended, 0)
- Return $tsize
- EndFunc
- Func _winapi_getwindow($hwnd, $icmd)
- Local $aresult = DllCall("user32.dll", "hwnd", "GetWindow", "hwnd", $hwnd, "uint", $icmd)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getwindowdc($hwnd)
- Local $aresult = DllCall("user32.dll", "handle", "GetWindowDC", "hwnd", $hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getwindowheight($hwnd)
- Local $trect = _winapi_getwindowrect($hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return DllStructGetData($trect, "Bottom") - DllStructGetData($trect, "Top")
- EndFunc
- Func _winapi_getwindowlong($hwnd, $iindex)
- Local $sfuncname = "GetWindowLongW"
- If @AutoItX64 Then $sfuncname = "GetWindowLongPtrW"
- Local $aresult = DllCall("user32.dll", "long_ptr", $sfuncname, "hwnd", $hwnd, "int", $iindex)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getwindowplacement($hwnd)
- Local $twindowplacement = DllStructCreate($tagwindowplacement)
- DllStructSetData($twindowplacement, "length", DllStructGetSize($twindowplacement))
- Local $pwindowplacement = DllStructGetPtr($twindowplacement)
- DllCall("user32.dll", "bool", "GetWindowPlacement", "hwnd", $hwnd, "ptr", $pwindowplacement)
- If @error Then Return SetError(@error, @extended, 0)
- Return $twindowplacement
- EndFunc
- Func _winapi_getwindowrect($hwnd)
- Local $trect = DllStructCreate($tagrect)
- DllCall("user32.dll", "bool", "GetWindowRect", "hwnd", $hwnd, "ptr", DllStructGetPtr($trect))
- If @error Then Return SetError(@error, @extended, 0)
- Return $trect
- EndFunc
- Func _winapi_getwindowrgn($hwnd, $hrgn)
- Local $aresult = DllCall("user32.dll", "int", "GetWindowRgn", "hwnd", $hwnd, "handle", $hrgn)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_getwindowtext($hwnd)
- Local $aresult = DllCall("user32.dll", "int", "GetWindowTextW", "hwnd", $hwnd, "wstr", "", "int", 4096)
- If @error Then Return SetError(@error, @extended, "")
- Return SetExtended($aresult[0], $aresult[2])
- EndFunc
- Func _winapi_getwindowthreadprocessid($hwnd, ByRef $ipid)
- Local $aresult = DllCall("user32.dll", "dword", "GetWindowThreadProcessId", "hwnd", $hwnd, "dword*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- $ipid = $aresult[2]
- Return $aresult[0]
- EndFunc
- Func _winapi_getwindowwidth($hwnd)
- Local $trect = _winapi_getwindowrect($hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return DllStructGetData($trect, "Right") - DllStructGetData($trect, "Left")
- EndFunc
- Func _winapi_getxyfrompoint(ByRef $tpoint, ByRef $ix, ByRef $iy)
- $ix = DllStructGetData($tpoint, "X")
- $iy = DllStructGetData($tpoint, "Y")
- EndFunc
- Func _winapi_globalmemorystatus()
- Local $tmem = DllStructCreate($tagmemorystatusex)
- Local $pmem = DllStructGetPtr($tmem)
- Local $imem = DllStructGetSize($tmem)
- DllStructSetData($tmem, 1, $imem)
- DllCall("kernel32.dll", "none", "GlobalMemoryStatusEx", "ptr", $pmem)
- If @error Then Return SetError(@error, @extended, 0)
- Local $amem[7]
- $amem[0] = DllStructGetData($tmem, 2)
- $amem[1] = DllStructGetData($tmem, 3)
- $amem[2] = DllStructGetData($tmem, 4)
- $amem[3] = DllStructGetData($tmem, 5)
- $amem[4] = DllStructGetData($tmem, 6)
- $amem[5] = DllStructGetData($tmem, 7)
- $amem[6] = DllStructGetData($tmem, 8)
- Return $amem
- EndFunc
- Func _winapi_guidfromstring($sguid)
- Local $tguid = DllStructCreate($tagguid)
- _winapi_guidfromstringex($sguid, DllStructGetPtr($tguid))
- If @error Then Return SetError(@error, @extended, 0)
- Return $tguid
- EndFunc
- Func _winapi_guidfromstringex($sguid, $pguid)
- Local $aresult = DllCall("ole32.dll", "long", "CLSIDFromString", "wstr", $sguid, "ptr", $pguid)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_hiword($ilong)
- Return BitShift($ilong, 16)
- EndFunc
- Func _winapi_inprocess($hwnd, ByRef $hlastwnd)
- If $hwnd = $hlastwnd Then Return True
- For $ii = $__gainprocess_winapi[0][0] To 1 Step -1
- If $hwnd = $__gainprocess_winapi[$ii][0] Then
- If $__gainprocess_winapi[$ii][1] Then
- $hlastwnd = $hwnd
- Return True
- Else
- Return False
- EndIf
- EndIf
- Next
- Local $iprocessid
- _winapi_getwindowthreadprocessid($hwnd, $iprocessid)
- Local $icount = $__gainprocess_winapi[0][0] + 1
- If $icount >= 64 Then $icount = 1
- $__gainprocess_winapi[0][0] = $icount
- $__gainprocess_winapi[$icount][0] = $hwnd
- $__gainprocess_winapi[$icount][1] = ($iprocessid = @AutoItPID)
- Return $__gainprocess_winapi[$icount][1]
- EndFunc
- Func _winapi_inttofloat($iint)
- Local $tint = DllStructCreate("int")
- Local $tfloat = DllStructCreate("float", DllStructGetPtr($tint))
- DllStructSetData($tint, 1, $iint)
- Return DllStructGetData($tfloat, 1)
- EndFunc
- Func _winapi_isclassname($hwnd, $sclassname)
- Local $sseparator = Opt("GUIDataSeparatorChar")
- Local $aclassname = StringSplit($sclassname, $sseparator)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $sclasscheck = _winapi_getclassname($hwnd)
- For $x = 1 To UBound($aclassname) - 1
- If StringUpper(StringMid($sclasscheck, 1, StringLen($aclassname[$x]))) = StringUpper($aclassname[$x]) Then Return True
- Next
- Return False
- EndFunc
- Func _winapi_iswindow($hwnd)
- Local $aresult = DllCall("user32.dll", "bool", "IsWindow", "hwnd", $hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_iswindowvisible($hwnd)
- Local $aresult = DllCall("user32.dll", "bool", "IsWindowVisible", "hwnd", $hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_invalidaterect($hwnd, $trect = 0, $ferase = True)
- Local $prect = 0
- If IsDllStruct($trect) Then $prect = DllStructGetPtr($trect)
- Local $aresult = DllCall("user32.dll", "bool", "InvalidateRect", "hwnd", $hwnd, "ptr", $prect, "bool", $ferase)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_lineto($hdc, $ix, $iy)
- Local $aresult = DllCall("gdi32.dll", "bool", "LineTo", "handle", $hdc, "int", $ix, "int", $iy)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_loadbitmap($hinstance, $sbitmap)
- Local $sbitmaptype = "int"
- If IsString($sbitmap) Then $sbitmaptype = "wstr"
- Local $aresult = DllCall("user32.dll", "handle", "LoadBitmapW", "handle", $hinstance, $sbitmaptype, $sbitmap)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_loadimage($hinstance, $simage, $itype, $ixdesired, $iydesired, $iload)
- Local $aresult, $simagetype = "int"
- If IsString($simage) Then $simagetype = "wstr"
- $aresult = DllCall("user32.dll", "handle", "LoadImageW", "handle", $hinstance, $simagetype, $simage, "uint", $itype, "int", $ixdesired, "int", $iydesired, "uint", $iload)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_loadlibrary($sfilename)
- Local $aresult = DllCall("kernel32.dll", "handle", "LoadLibraryW", "wstr", $sfilename)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_loadlibraryex($sfilename, $iflags = 0)
- Local $aresult = DllCall("kernel32.dll", "handle", "LoadLibraryExW", "wstr", $sfilename, "ptr", 0, "dword", $iflags)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_loadshell32icon($iiconid)
- Local $ticons = DllStructCreate("ptr Data")
- Local $picons = DllStructGetPtr($ticons)
- Local $iicons = _winapi_extracticonex("shell32.dll", $iiconid, 0, $picons, 1)
- If @error Then Return SetError(@error, @extended, 0)
- If $iicons <= 0 Then Return SetError(1, 0, 0)
- Return DllStructGetData($ticons, "Data")
- EndFunc
- Func _winapi_loadstring($hinstance, $istringid)
- Local $aresult = DllCall("user32.dll", "int", "LoadStringW", "handle", $hinstance, "uint", $istringid, "wstr", "", "int", 4096)
- If @error Then Return SetError(@error, @extended, "")
- Return SetExtended($aresult[0], $aresult[3])
- EndFunc
- Func _winapi_localfree($hmem)
- Local $aresult = DllCall("kernel32.dll", "handle", "LocalFree", "handle", $hmem)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_loword($ilong)
- Return BitAND($ilong, 65535)
- EndFunc
- Func _winapi_makelangid($lgidprimary, $lgidsub)
- Return BitOR(BitShift($lgidsub, -10), $lgidprimary)
- EndFunc
- Func _winapi_makelcid($lgid, $srtid)
- Return BitOR(BitShift($srtid, -16), $lgid)
- EndFunc
- Func _winapi_makelong($ilo, $ihi)
- Return BitOR(BitShift($ihi, -16), BitAND($ilo, 65535))
- EndFunc
- Func _winapi_makeqword($lodword, $hidword)
- Local $tint64 = DllStructCreate("uint64")
- Local $tdwords = DllStructCreate("dword;dword", DllStructGetPtr($tint64))
- DllStructSetData($tdwords, 1, $lodword)
- DllStructSetData($tdwords, 2, $hidword)
- Return DllStructGetData($tint64, 1)
- EndFunc
- Func _winapi_messagebeep($itype = 1)
- Local $isound
- Switch $itype
- Case 1
- $isound = 0
- Case 2
- $isound = 16
- Case 3
- $isound = 32
- Case 4
- $isound = 48
- Case 5
- $isound = 64
- Case Else
- $isound = -1
- EndSwitch
- Local $aresult = DllCall("user32.dll", "bool", "MessageBeep", "uint", $isound)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_msgbox($iflags, $stitle, $stext)
- BlockInput(0)
- MsgBox($iflags, $stitle, $stext & " ")
- EndFunc
- Func _winapi_mouse_event($iflags, $ix = 0, $iy = 0, $idata = 0, $iextrainfo = 0)
- DllCall("user32.dll", "none", "mouse_event", "dword", $iflags, "dword", $ix, "dword", $iy, "dword", $idata, "ulong_ptr", $iextrainfo)
- If @error Then Return SetError(@error, @extended)
- EndFunc
- Func _winapi_moveto($hdc, $ix, $iy)
- Local $aresult = DllCall("gdi32.dll", "bool", "MoveToEx", "handle", $hdc, "int", $ix, "int", $iy, "ptr", 0)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_movewindow($hwnd, $ix, $iy, $iwidth, $iheight, $frepaint = True)
- Local $aresult = DllCall("user32.dll", "bool", "MoveWindow", "hwnd", $hwnd, "int", $ix, "int", $iy, "int", $iwidth, "int", $iheight, "bool", $frepaint)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_muldiv($inumber, $inumerator, $idenominator)
- Local $aresult = DllCall("kernel32.dll", "int", "MulDiv", "int", $inumber, "int", $inumerator, "int", $idenominator)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aresult[0]
- EndFunc
- Func _winapi_multibytetowidechar($stext, $icodepage = 0, $iflags = 0, $bretstring = False)
- Local $stexttype = "ptr", $ptext = $stext
- If IsDllStruct($stext) Then
- $ptext = DllStructGetPtr($stext)
- Else
- If NOT IsPtr($stext) Then $stexttype = "STR"
- EndIf
- Local $aresult = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $icodepage, "dword", $iflags, $stexttype, $ptext, "int", -1, "ptr", 0, "int", 0)
- If @error Then Return SetError(@error, @extended, 0)
- Local $iout = $aresult[0]
- Local $tout = DllStructCreate("wchar[" & $iout & "]")
- Local $pout = DllStructGetPtr($tout)
- $aresult = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $icodepage, "dword", $iflags, $stexttype, $ptext, "int", -1, "ptr", $pout, "int", $iout)
- If @error Then Return SetError(@error, @extended, 0)
- If $bretstring Then Return DllStructGetData($tout, 1)
- Return $tout
- EndFunc
- Func _winapi_multibytetowidecharex($stext, $ptext, $icodepage = 0, $iflags = 0)
- Local $aresult = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $icodepage, "dword", $iflags, "STR", $stext, "int", -1, "ptr", $ptext, "int", (StringLen($stext) + 1) * 2)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_openprocess($iaccess, $finherit, $iprocessid, $fdebugpriv = False)
- Local $aresult = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $iaccess, "bool", $finherit, "dword", $iprocessid)
- If @error Then Return SetError(@error, @extended, 0)
- If $aresult[0] Then Return $aresult[0]
- If NOT $fdebugpriv Then Return 0
- Local $htoken = _security__openthreadtokenex(BitOR($token_adjust_privileges, $token_query))
- If @error Then Return SetError(@error, @extended, 0)
- _security__setprivilege($htoken, "SeDebugPrivilege", True)
- Local $ierror = @error
- Local $ilasterror = @extended
- Local $iret = 0
- If NOT @error Then
- $aresult = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $iaccess, "bool", $finherit, "dword", $iprocessid)
- $ierror = @error
- $ilasterror = @extended
- If $aresult[0] Then $iret = $aresult[0]
- _security__setprivilege($htoken, "SeDebugPrivilege", False)
- If @error Then
- $ierror = @error
- $ilasterror = @extended
- EndIf
- EndIf
- _winapi_closehandle($htoken)
- Return SetError($ierror, $ilasterror, $iret)
- EndFunc
- Func __winapi_parsefiledialogpath($spath)
- Local $afiles[3]
- $afiles[0] = 2
- Local $stemp = StringMid($spath, 1, StringInStr($spath, "\", 0, -1) - 1)
- $afiles[1] = $stemp
- $afiles[2] = StringMid($spath, StringInStr($spath, "\", 0, -1) + 1)
- Return $afiles
- EndFunc
- Func _winapi_pathfindonpath(Const $szfile, $aextrapaths = "", Const $szpathdelimiter = @LF)
- Local $iextracount = 0
- If IsString($aextrapaths) Then
- If StringLen($aextrapaths) Then
- $aextrapaths = StringSplit($aextrapaths, $szpathdelimiter, 1 + 2)
- $iextracount = UBound($aextrapaths, 1)
- EndIf
- ElseIf IsArray($aextrapaths) Then
- $iextracount = UBound($aextrapaths)
- EndIf
- Local $tpaths, $tpathptrs
- If $iextracount Then
- Local $szstruct = ""
- For $path In $aextrapaths
- $szstruct &= "wchar[" & StringLen($path) + 1 & "];"
- Next
- $tpaths = DllStructCreate($szstruct)
- $tpathptrs = DllStructCreate("ptr[" & $iextracount + 1 & "]")
- For $i = 1 To $iextracount
- DllStructSetData($tpaths, $i, $aextrapaths[$i - 1])
- DllStructSetData($tpathptrs, 1, DllStructGetPtr($tpaths, $i), $i)
- Next
- DllStructSetData($tpathptrs, 1, Ptr(0), $iextracount + 1)
- EndIf
- Local $aresult = DllCall("shlwapi.dll", "bool", "PathFindOnPathW", "wstr", $szfile, "ptr", DllStructGetPtr($tpathptrs))
- If @error Then Return SetError(@error, @extended, False)
- If $aresult[0] = 0 Then Return SetError(1, 0, $szfile)
- Return $aresult[1]
- EndFunc
- Func _winapi_pointfromrect(ByRef $trect, $fcenter = True)
- Local $ix1 = DllStructGetData($trect, "Left")
- Local $iy1 = DllStructGetData($trect, "Top")
- Local $ix2 = DllStructGetData($trect, "Right")
- Local $iy2 = DllStructGetData($trect, "Bottom")
- If $fcenter Then
- $ix1 = $ix1 + (($ix2 - $ix1) / 2)
- $iy1 = $iy1 + (($iy2 - $iy1) / 2)
- EndIf
- Local $tpoint = DllStructCreate($tagpoint)
- DllStructSetData($tpoint, "X", $ix1)
- DllStructSetData($tpoint, "Y", $iy1)
- Return $tpoint
- EndFunc
- Func _winapi_postmessage($hwnd, $imsg, $iwparam, $ilparam)
- Local $aresult = DllCall("user32.dll", "bool", "PostMessage", "hwnd", $hwnd, "uint", $imsg, "wparam", $iwparam, "lparam", $ilparam)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_primarylangid($lgid)
- Return BitAND($lgid, 1023)
- EndFunc
- Func _winapi_ptinrect(ByRef $trect, ByRef $tpoint)
- Local $ix = DllStructGetData($tpoint, "X")
- Local $iy = DllStructGetData($tpoint, "Y")
- Local $aresult = DllCall("user32.dll", "bool", "PtInRect", "ptr", DllStructGetPtr($trect), "long", $ix, "long", $iy)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_readfile($hfile, $pbuffer, $itoread, ByRef $iread, $poverlapped = 0)
- Local $aresult = DllCall("kernel32.dll", "bool", "ReadFile", "handle", $hfile, "ptr", $pbuffer, "dword", $itoread, "dword*", 0, "ptr", $poverlapped)
- If @error Then Return SetError(@error, @extended, False)
- $iread = $aresult[4]
- Return $aresult[0]
- EndFunc
- Func _winapi_readprocessmemory($hprocess, $pbaseaddress, $pbuffer, $isize, ByRef $iread)
- Local $aresult = DllCall("kernel32.dll", "bool", "ReadProcessMemory", "handle", $hprocess, "ptr", $pbaseaddress, "ptr", $pbuffer, "ulong_ptr", $isize, "ulong_ptr*", 0)
- If @error Then Return SetError(@error, @extended, False)
- $iread = $aresult[5]
- Return $aresult[0]
- EndFunc
- Func _winapi_rectisempty(ByRef $trect)
- Return (DllStructGetData($trect, "Left") = 0) AND (DllStructGetData($trect, "Top") = 0) AND (DllStructGetData($trect, "Right") = 0) AND (DllStructGetData($trect, "Bottom") = 0)
- EndFunc
- Func _winapi_redrawwindow($hwnd, $trect = 0, $hregion = 0, $iflags = 5)
- Local $prect = 0
- If $trect <> 0 Then $prect = DllStructGetPtr($trect)
- Local $aresult = DllCall("user32.dll", "bool", "RedrawWindow", "hwnd", $hwnd, "ptr", $prect, "handle", $hregion, "uint", $iflags)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_registerwindowmessage($smessage)
- Local $aresult = DllCall("user32.dll", "uint", "RegisterWindowMessageW", "wstr", $smessage)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_releasecapture()
- Local $aresult = DllCall("user32.dll", "bool", "ReleaseCapture")
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_releasedc($hwnd, $hdc)
- Local $aresult = DllCall("user32.dll", "int", "ReleaseDC", "hwnd", $hwnd, "handle", $hdc)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_screentoclient($hwnd, ByRef $tpoint)
- Local $aresult = DllCall("user32.dll", "bool", "ScreenToClient", "hwnd", $hwnd, "ptr", DllStructGetPtr($tpoint))
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_selectobject($hdc, $hgdiobj)
- Local $aresult = DllCall("gdi32.dll", "handle", "SelectObject", "handle", $hdc, "handle", $hgdiobj)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_setbkcolor($hdc, $icolor)
- Local $aresult = DllCall("gdi32.dll", "INT", "SetBkColor", "handle", $hdc, "dword", $icolor)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aresult[0]
- EndFunc
- Func _winapi_setbkmode($hdc, $ibkmode)
- Local $aresult = DllCall("gdi32.dll", "int", "SetBkMode", "handle", $hdc, "int", $ibkmode)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_setcapture($hwnd)
- Local $aresult = DllCall("user32.dll", "hwnd", "SetCapture", "hwnd", $hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_setcursor($hcursor)
- Local $aresult = DllCall("user32.dll", "handle", "SetCursor", "handle", $hcursor)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_setdefaultprinter($sprinter)
- Local $aresult = DllCall("winspool.drv", "bool", "SetDefaultPrinterW", "wstr", $sprinter)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_setdibits($hdc, $hbmp, $istartscan, $iscanlines, $pbits, $pbmi, $icoloruse = 0)
- Local $aresult = DllCall("gdi32.dll", "int", "SetDIBits", "handle", $hdc, "handle", $hbmp, "uint", $istartscan, "uint", $iscanlines, "ptr", $pbits, "ptr", $pbmi, "uint", $icoloruse)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_setendoffile($hfile)
- Local $aresult = DllCall("kernel32.dll", "bool", "SetEndOfFile", "handle", $hfile)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_setevent($hevent)
- Local $aresult = DllCall("kernel32.dll", "bool", "SetEvent", "handle", $hevent)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_setfilepointer($hfile, $ipos, $imethod = 0)
- Local $aresult = DllCall("kernel32.dll", "INT", "SetFilePointer", "handle", $hfile, "long", $ipos, "ptr", 0, "long", $imethod)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aresult[0]
- EndFunc
- Func _winapi_setfocus($hwnd)
- Local $aresult = DllCall("user32.dll", "hwnd", "SetFocus", "hwnd", $hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_setfont($hwnd, $hfont, $fredraw = True)
- _sendmessage($hwnd, $__winapiconstant_wm_setfont, $hfont, $fredraw, 0, "hwnd")
- EndFunc
- Func _winapi_sethandleinformation($hobject, $imask, $iflags)
- Local $aresult = DllCall("kernel32.dll", "bool", "SetHandleInformation", "handle", $hobject, "dword", $imask, "dword", $iflags)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_setlayeredwindowattributes($hwnd, $i_transcolor, $transparency = 255, $dwflags = 3, $iscolorref = False)
- If $dwflags = Default OR $dwflags = "" OR $dwflags < 0 Then $dwflags = 3
- If NOT $iscolorref Then
- $i_transcolor = Hex(String($i_transcolor), 6)
- $i_transcolor = Execute("0x00" & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
- EndIf
- Local $aresult = DllCall("user32.dll", "bool", "SetLayeredWindowAttributes", "hwnd", $hwnd, "dword", $i_transcolor, "byte", $transparency, "dword", $dwflags)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_setparent($hwndchild, $hwndparent)
- Local $aresult = DllCall("user32.dll", "hwnd", "SetParent", "hwnd", $hwndchild, "hwnd", $hwndparent)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_setprocessaffinitymask($hprocess, $imask)
- Local $aresult = DllCall("kernel32.dll", "bool", "SetProcessAffinityMask", "handle", $hprocess, "ulong_ptr", $imask)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_setsyscolors($velements, $vcolors)
- Local $isearray = IsArray($velements), $iscarray = IsArray($vcolors)
- Local $ielementnum
- If NOT $iscarray AND NOT $isearray Then
- $ielementnum = 1
- ElseIf $iscarray OR $isearray Then
- If NOT $iscarray OR NOT $isearray Then Return SetError(-1, -1, False)
- If UBound($velements) <> UBound($vcolors) Then Return SetError(-1, -1, False)
- $ielementnum = UBound($velements)
- EndIf
- Local $telements = DllStructCreate("int Element[" & $ielementnum & "]")
- Local $tcolors = DllStructCreate("dword NewColor[" & $ielementnum & "]")
- Local $pelements = DllStructGetPtr($telements)
- Local $pcolors = DllStructGetPtr($tcolors)
- If NOT $isearray Then
- DllStructSetData($telements, "Element", $velements, 1)
- Else
- For $x = 0 To $ielementnum - 1
- DllStructSetData($telements, "Element", $velements[$x], $x + 1)
- Next
- EndIf
- If NOT $iscarray Then
- DllStructSetData($tcolors, "NewColor", $vcolors, 1)
- Else
- For $x = 0 To $ielementnum - 1
- DllStructSetData($tcolors, "NewColor", $vcolors[$x], $x + 1)
- Next
- EndIf
- Local $aresult = DllCall("user32.dll", "bool", "SetSysColors", "int", $ielementnum, "ptr", $pelements, "ptr", $pcolors)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_settextcolor($hdc, $icolor)
- Local $aresult = DllCall("gdi32.dll", "INT", "SetTextColor", "handle", $hdc, "dword", $icolor)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aresult[0]
- EndFunc
- Func _winapi_setwindowlong($hwnd, $iindex, $ivalue)
- _winapi_setlasterror(0)
- Local $sfuncname = "SetWindowLongW"
- If @AutoItX64 Then $sfuncname = "SetWindowLongPtrW"
- Local $aresult = DllCall("user32.dll", "long_ptr", $sfuncname, "hwnd", $hwnd, "int", $iindex, "long_ptr", $ivalue)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_setwindowplacement($hwnd, $pwindowplacement)
- Local $aresult = DllCall("user32.dll", "bool", "SetWindowPlacement", "hwnd", $hwnd, "ptr", $pwindowplacement)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_setwindowpos($hwnd, $hafter, $ix, $iy, $icx, $icy, $iflags)
- Local $aresult = DllCall("user32.dll", "bool", "SetWindowPos", "hwnd", $hwnd, "hwnd", $hafter, "int", $ix, "int", $iy, "int", $icx, "int", $icy, "uint", $iflags)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_setwindowrgn($hwnd, $hrgn, $bredraw = True)
- Local $aresult = DllCall("user32.dll", "int", "SetWindowRgn", "hwnd", $hwnd, "handle", $hrgn, "bool", $bredraw)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_setwindowshookex($idhook, $lpfn, $hmod, $dwthreadid = 0)
- Local $aresult = DllCall("user32.dll", "handle", "SetWindowsHookEx", "int", $idhook, "ptr", $lpfn, "handle", $hmod, "dword", $dwthreadid)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_setwindowtext($hwnd, $stext)
- Local $aresult = DllCall("user32.dll", "bool", "SetWindowTextW", "hwnd", $hwnd, "wstr", $stext)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_showcursor($fshow)
- Local $aresult = DllCall("user32.dll", "int", "ShowCursor", "bool", $fshow)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_showerror($stext, $fexit = True)
- _winapi_msgbox(266256, "Error", $stext)
- If $fexit Then Exit
- EndFunc
- Func _winapi_showmsg($stext)
- _winapi_msgbox(64 + 4096, "Information", $stext)
- EndFunc
- Func _winapi_showwindow($hwnd, $icmdshow = 5)
- Local $aresult = DllCall("user32.dll", "bool", "ShowWindow", "hwnd", $hwnd, "int", $icmdshow)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_stringfromguid($pguid)
- Local $aresult = DllCall("ole32.dll", "int", "StringFromGUID2", "ptr", $pguid, "wstr", "", "int", 40)
- If @error Then Return SetError(@error, @extended, "")
- Return SetExtended($aresult[0], $aresult[2])
- EndFunc
- Func _winapi_sublangid($lgid)
- Return BitShift($lgid, 10)
- EndFunc
- Func _winapi_systemparametersinfo($iaction, $iparam = 0, $vparam = 0, $iwinini = 0)
- Local $aresult = DllCall("user32.dll", "bool", "SystemParametersInfoW", "uint", $iaction, "uint", $iparam, "ptr", $vparam, "uint", $iwinini)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_twipsperpixelx()
- Local $lngdc, $twipsperpixelx
- $lngdc = _winapi_getdc(0)
- $twipsperpixelx = 1440 / _winapi_getdevicecaps($lngdc, $__winapiconstant_logpixelsx)
- _winapi_releasedc(0, $lngdc)
- Return $twipsperpixelx
- EndFunc
- Func _winapi_twipsperpixely()
- Local $lngdc, $twipsperpixely
- $lngdc = _winapi_getdc(0)
- $twipsperpixely = 1440 / _winapi_getdevicecaps($lngdc, $__winapiconstant_logpixelsy)
- _winapi_releasedc(0, $lngdc)
- Return $twipsperpixely
- EndFunc
- Func _winapi_unhookwindowshookex($hhk)
- Local $aresult = DllCall("user32.dll", "bool", "UnhookWindowsHookEx", "handle", $hhk)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_updatelayeredwindow($hwnd, $hdcdest, $pptdest, $psize, $hdcsrce, $pptsrce, $irgb, $pblend, $iflags)
- Local $aresult = DllCall("user32.dll", "bool", "UpdateLayeredWindow", "hwnd", $hwnd, "handle", $hdcdest, "ptr", $pptdest, "ptr", $psize, "handle", $hdcsrce, "ptr", $pptsrce, "dword", $irgb, "ptr", $pblend, "dword", $iflags)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_updatewindow($hwnd)
- Local $aresult = DllCall("user32.dll", "bool", "UpdateWindow", "hwnd", $hwnd)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_waitforinputidle($hprocess, $itimeout = -1)
- Local $aresult = DllCall("user32.dll", "dword", "WaitForInputIdle", "handle", $hprocess, "dword", $itimeout)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_waitformultipleobjects($icount, $phandles, $fwaitall = False, $itimeout = -1)
- Local $aresult = DllCall("kernel32.dll", "INT", "WaitForMultipleObjects", "dword", $icount, "ptr", $phandles, "bool", $fwaitall, "dword", $itimeout)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aresult[0]
- EndFunc
- Func _winapi_waitforsingleobject($hhandle, $itimeout = -1)
- Local $aresult = DllCall("kernel32.dll", "INT", "WaitForSingleObject", "handle", $hhandle, "dword", $itimeout)
- If @error Then Return SetError(@error, @extended, -1)
- Return $aresult[0]
- EndFunc
- Func _winapi_widechartomultibyte($punicode, $icodepage = 0, $bretstring = True)
- Local $sunicodetype = "ptr"
- If IsDllStruct($punicode) Then
- $punicode = DllStructGetPtr($punicode)
- Else
- If NOT IsPtr($punicode) Then $sunicodetype = "wstr"
- EndIf
- Local $aresult = DllCall("kernel32.dll", "int", "WideCharToMultiByte", "uint", $icodepage, "dword", 0, $sunicodetype, $punicode, "int", -1, "ptr", 0, "int", 0, "ptr", 0, "ptr", 0)
- If @error Then Return SetError(@error, @extended, "")
- Local $tmultibyte = DllStructCreate("char[" & $aresult[0] & "]")
- Local $pmultibyte = DllStructGetPtr($tmultibyte)
- $aresult = DllCall("kernel32.dll", "int", "WideCharToMultiByte", "uint", $icodepage, "dword", 0, $sunicodetype, $punicode, "int", -1, "ptr", $pmultibyte, "int", $aresult[0], "ptr", 0, "ptr", 0)
- If @error Then Return SetError(@error, @extended, "")
- If $bretstring Then Return DllStructGetData($tmultibyte, 1)
- Return $tmultibyte
- EndFunc
- Func _winapi_windowfrompoint(ByRef $tpoint)
- Local $tpointcast = DllStructCreate("int64", DllStructGetPtr($tpoint))
- Local $aresult = DllCall("user32.dll", "hwnd", "WindowFromPoint", "int64", DllStructGetData($tpointcast, 1))
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _winapi_writeconsole($hconsole, $stext)
- Local $aresult = DllCall("kernel32.dll", "bool", "WriteConsoleW", "handle", $hconsole, "wstr", $stext, "dword", StringLen($stext), "dword*", 0, "ptr", 0)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _winapi_writefile($hfile, $pbuffer, $itowrite, ByRef $iwritten, $poverlapped = 0)
- Local $aresult = DllCall("kernel32.dll", "bool", "WriteFile", "handle", $hfile, "ptr", $pbuffer, "dword", $itowrite, "dword*", 0, "ptr", $poverlapped)
- If @error Then Return SetError(@error, @extended, False)
- $iwritten = $aresult[4]
- Return $aresult[0]
- EndFunc
- Func _winapi_writeprocessmemory($hprocess, $pbaseaddress, $pbuffer, $isize, ByRef $iwritten, $sbuffer = "ptr")
- Local $aresult = DllCall("kernel32.dll", "bool", "WriteProcessMemory", "handle", $hprocess, "ptr", $pbaseaddress, $sbuffer, $pbuffer, "ulong_ptr", $isize, "ulong_ptr*", 0)
- If @error Then Return SetError(@error, @extended, False)
- $iwritten = $aresult[5]
- Return $aresult[0]
- EndFunc
- Global Const $fw_dontcare = 0
- Global Const $fw_thin = 100
- Global Const $fw_extralight = 200
- Global Const $fw_ultralight = 200
- Global Const $fw_light = 300
- Global Const $fw_normal = 400
- Global Const $fw_regular = 400
- Global Const $fw_medium = 500
- Global Const $fw_semibold = 600
- Global Const $fw_demibold = 600
- Global Const $fw_bold = 700
- Global Const $fw_extrabold = 800
- Global Const $fw_ultrabold = 800
- Global Const $fw_heavy = 900
- Global Const $fw_black = 900
- Global Const $cf_effects = 256
- Global Const $cf_printerfonts = 2
- Global Const $cf_screenfonts = 1
- Global Const $cf_noscriptsel = 8388608
- Global Const $cf_inittologfontstruct = 64
- Global Const $logpixelsx = 88
- Global Const $logpixelsy = 90
- Global Const $ansi_charset = 0
- Global Const $baltic_charset = 186
- Global Const $chinesebig5_charset = 136
- Global Const $default_charset = 1
- Global Const $easteurope_charset = 238
- Global Const $gb2312_charset = 134
- Global Const $greek_charset = 161
- Global Const $hangeul_charset = 129
- Global Const $mac_charset = 77
- Global Const $oem_charset = 255
- Global Const $russian_charset = 204
- Global Const $shiftjis_charset = 128
- Global Const $symbol_charset = 2
- Global Const $turkish_charset = 162
- Global Const $vietnamese_charset = 163
- Global Const $out_character_precis = 2
- Global Const $out_default_precis = 0
- Global Const $out_device_precis = 5
- Global Const $out_outline_precis = 8
- Global Const $out_ps_only_precis = 10
- Global Const $out_raster_precis = 6
- Global Const $out_string_precis = 1
- Global Const $out_stroke_precis = 3
- Global Const $out_tt_only_precis = 7
- Global Const $out_tt_precis = 4
- Global Const $clip_character_precis = 1
- Global Const $clip_default_precis = 0
- Global Const $clip_embedded = 128
- Global Const $clip_lh_angles = 16
- Global Const $clip_mask = 15
- Global Const $clip_stroke_precis = 2
- Global Const $clip_tt_always = 32
- Global Const $antialiased_quality = 4
- Global Const $default_quality = 0
- Global Const $draft_quality = 1
- Global Const $nonantialiased_quality = 3
- Global Const $proof_quality = 2
- Global Const $default_pitch = 0
- Global Const $fixed_pitch = 1
- Global Const $variable_pitch = 2
- Global Const $ff_decorative = 80
- Global Const $ff_dontcare = 0
- Global Const $ff_modern = 48
- Global Const $ff_roman = 16
- Global Const $ff_script = 64
- Global Const $ff_swiss = 32
- Global Const $__miscconstant_cc_anycolor = 256
- Global Const $__miscconstant_cc_fullopen = 2
- Global Const $__miscconstant_cc_rgbinit = 1
- Global Const $tagchoosecolor = "dword Size;hwnd hWndOwnder;handle hInstance;dword rgbResult;ptr CustColors;dword Flags;lparam lCustData;" & "ptr lpfnHook;ptr lpTemplateName"
- Global Const $tagchoosefont = "dword Size;hwnd hWndOwner;handle hDC;ptr LogFont;int PointSize;dword Flags;dword rgbColors;lparam CustData;" & "ptr fnHook;ptr TemplateName;handle hInstance;ptr szStyle;word FontType;int SizeMin;int SizeMax"
- Func _choosecolor($ireturntype = 0, $icolorref = 0, $ireftype = 0, $hwndownder = 0)
- Local $custcolors = "dword[16]"
- Local $tchoose = DllStructCreate($tagchoosecolor)
- Local $tcc = DllStructCreate($custcolors)
- If $ireftype = 1 Then
- $icolorref = Int($icolorref)
- ElseIf $ireftype = 2 Then
- $icolorref = Hex(String($icolorref), 6)
- $icolorref = "0x" & StringMid($icolorref, 5, 2) & StringMid($icolorref, 3, 2) & StringMid($icolorref, 1, 2)
- EndIf
- DllStructSetData($tchoose, "Size", DllStructGetSize($tchoose))
- DllStructSetData($tchoose, "hWndOwnder", $hwndownder)
- DllStructSetData($tchoose, "rgbResult", $icolorref)
- DllStructSetData($tchoose, "CustColors", DllStructGetPtr($tcc))
- DllStructSetData($tchoose, "Flags", BitOR($__miscconstant_cc_anycolor, $__miscconstant_cc_fullopen, $__miscconstant_cc_rgbinit))
- Local $aresult = DllCall("comdlg32.dll", "bool", "ChooseColor", "ptr", DllStructGetPtr($tchoose))
- If @error Then Return SetError(@error, @extended, -1)
- If $aresult[0] = 0 Then Return SetError(-3, -3, -1)
- Local $color_picked = DllStructGetData($tchoose, "rgbResult")
- If $ireturntype = 1 Then
- Return "0x" & Hex(String($color_picked), 6)
- ElseIf $ireturntype = 2 Then
- $color_picked = Hex(String($color_picked), 6)
- Return "0x" & StringMid($color_picked, 5, 2) & StringMid($color_picked, 3, 2) & StringMid($color_picked, 1, 2)
- ElseIf $ireturntype = 0 Then
- Return $color_picked
- Else
- Return SetError(-4, -4, -1)
- EndIf
- EndFunc
- Func _choosefont($sfontname = "Courier New", $ipointsize = 10, $icolorref = 0, $ifontweight = 0, $iitalic = False, $iunderline = False, $istrikethru = False, $hwndowner = 0)
- Local $italic = 0, $underline = 0, $strikeout = 0
- Local $lngdc = __misc_getdc(0)
- Local $lfheight = Round(($ipointsize * __misc_getdevicecaps($lngdc, $logpixelsx)) / 72, 0)
- __misc_releasedc(0, $lngdc)
- Local $tchoosefont = DllStructCreate($tagchoosefont)
- Local $tlogfont = DllStructCreate($taglogfont)
- DllStructSetData($tchoosefont, "Size", DllStructGetSize($tchoosefont))
- DllStructSetData($tchoosefont, "hWndOwner", $hwndowner)
- DllStructSetData($tchoosefont, "LogFont", DllStructGetPtr($tlogfont))
- DllStructSetData($tchoosefont, "PointSize", $ipointsize)
- DllStructSetData($tchoosefont, "Flags", BitOR($cf_screenfonts, $cf_printerfonts, $cf_effects, $cf_inittologfontstruct, $cf_noscriptsel))
- DllStructSetData($tchoosefont, "rgbColors", $icolorref)
- DllStructSetData($tchoosefont, "FontType", 0)
- DllStructSetData($tlogfont, "Height", $lfheight)
- DllStructSetData($tlogfont, "Weight", $ifontweight)
- DllStructSetData($tlogfont, "Italic", $iitalic)
- DllStructSetData($tlogfont, "Underline", $iunderline)
- DllStructSetData($tlogfont, "Strikeout", $istrikethru)
- DllStructSetData($tlogfont, "FaceName", $sfontname)
- Local $aresult = DllCall("comdlg32.dll", "bool", "ChooseFontW", "ptr", DllStructGetPtr($tchoosefont))
- If @error Then Return SetError(@error, @extended, -1)
- If $aresult[0] = 0 Then Return SetError(-3, -3, -1)
- Local $fontname = DllStructGetData($tlogfont, "FaceName")
- If StringLen($fontname) = 0 AND StringLen($sfontname) > 0 Then $fontname = $sfontname
- If DllStructGetData($tlogfont, "Italic") Then $italic = 2
- If DllStructGetData($tlogfont, "Underline") Then $underline = 4
- If DllStructGetData($tlogfont, "Strikeout") Then $strikeout = 8
- Local $attributes = BitOR($italic, $underline, $strikeout)
- Local $size = DllStructGetData($tchoosefont, "PointSize") / 10
- Local $colorref = DllStructGetData($tchoosefont, "rgbColors")
- Local $weight = DllStructGetData($tlogfont, "Weight")
- Local $color_picked = Hex(String($colorref), 6)
- Return StringSplit($attributes & "," & $fontname & "," & $size & "," & $weight & "," & $colorref & "," & "0x" & $color_picked & "," & "0x" & StringMid($color_picked, 5, 2) & StringMid($color_picked, 3, 2) & StringMid($color_picked, 1, 2), ",")
- EndFunc
- Func _clipputfile($sfile, $sseparator = "|")
- Local Const $gmem_moveable = 2, $cf_hdrop = 15
- $sfile &= $sseparator & $sseparator
- Local $nglobmemsize = (StringLen($sfile) + 20)
- Local $aresult = DllCall("user32.dll", "bool", "OpenClipboard", "hwnd", 0)
- If @error OR $aresult[0] = 0 Then Return SetError(1, _winapi_getlasterror(), False)
- Local $ierror = 0, $ilasterror = 0
- $aresult = DllCall("user32.dll", "bool", "EmptyClipboard")
- If @error OR NOT $aresult[0] Then
- $ierror = 2
- $ilasterror = _winapi_getlasterror()
- Else
- $aresult = DllCall("kernel32.dll", "handle", "GlobalAlloc", "uint", $gmem_moveable, "ulong_ptr", $nglobmemsize)
- If @error OR NOT $aresult[0] Then
- $ierror = 3
- $ilasterror = _winapi_getlasterror()
- Else
- Local $hglobal = $aresult[0]
- $aresult = DllCall("kernel32.dll", "ptr", "GlobalLock", "handle", $hglobal)
- If @error OR NOT $aresult[0] Then
- $ierror = 4
- $ilasterror = _winapi_getlasterror()
- Else
- Local $hlock = $aresult[0]
- Local $dropfiles = DllStructCreate("dword;ptr;int;int;int;char[" & StringLen($sfile) + 1 & "]", $hlock)
- If @error Then Return SetError(5, 6, False)
- Local $tempstruct = DllStructCreate("dword;ptr;int;int;int")
- DllStructSetData($dropfiles, 1, DllStructGetSize($tempstruct))
- DllStructSetData($dropfiles, 2, 0)
- DllStructSetData($dropfiles, 3, 0)
- DllStructSetData($dropfiles, 4, 0)
- DllStructSetData($dropfiles, 5, 0)
- DllStructSetData($dropfiles, 6, $sfile)
- For $i = 1 To StringLen($sfile)
- If DllStructGetData($dropfiles, 6, $i) = $sseparator Then DllStructSetData($dropfiles, 6, Chr(0), $i)
- Next
- $aresult = DllCall("user32.dll", "handle", "SetClipboardData", "uint", $cf_hdrop, "handle", $hglobal)
- If @error OR NOT $aresult[0] Then
- $ierror = 6
- $ilasterror = _winapi_getlasterror()
- EndIf
- $aresult = DllCall("kernel32.dll", "bool", "GlobalUnlock", "handle", $hglobal)
- If (@error OR NOT $aresult[0]) AND NOT $ierror AND _winapi_getlasterror() Then
- $ierror = 8
- $ilasterror = _winapi_getlasterror()
- EndIf
- EndIf
- $aresult = DllCall("kernel32.dll", "ptr", "GlobalFree", "handle", $hglobal)
- If (@error OR NOT $aresult[0]) AND NOT $ierror Then
- $ierror = 9
- $ilasterror = _winapi_getlasterror()
- EndIf
- EndIf
- EndIf
- $aresult = DllCall("user32.dll", "bool", "CloseClipboard")
- If (@error OR NOT $aresult[0]) AND NOT $ierror Then Return SetError(7, _winapi_getlasterror(), False)
- If $ierror Then Return SetError($ierror, $ilasterror, False)
- Return True
- EndFunc
- Func _iif($ftest, $vtrueval, $vfalseval)
- If $ftest Then
- Return $vtrueval
- Else
- Return $vfalseval
- EndIf
- EndFunc
- Func _mousetrap($ileft = 0, $itop = 0, $iright = 0, $ibottom = 0)
- Local $aresult
- If @NumParams == 0 Then
- $aresult = DllCall("user32.dll", "bool", "ClipCursor", "ptr", 0)
- If @error OR NOT $aresult[0] Then Return SetError(1, _winapi_getlasterror(), False)
- Else
- If @NumParams == 2 Then
- $iright = $ileft + 1
- $ibottom = $itop + 1
- EndIf
- Local $trect = DllStructCreate($tagrect)
- DllStructSetData($trect, "Left", $ileft)
- DllStructSetData($trect, "Top", $itop)
- DllStructSetData($trect, "Right", $iright)
- DllStructSetData($trect, "Bottom", $ibottom)
- $aresult = DllCall("user32.dll", "bool", "ClipCursor", "ptr", DllStructGetPtr($trect))
- If @error OR NOT $aresult[0] Then Return SetError(2, _winapi_getlasterror(), False)
- EndIf
- Return True
- EndFunc
- Func _singleton($soccurencename, $iflag = 0)
- Local Const $error_already_exists = 183
- Local Const $security_descriptor_revision = 1
- Local $psecurityattributes = 0
- If BitAND($iflag, 2) Then
- Local $tsecuritydescriptor = DllStructCreate("dword[5]")
- Local $psecuritydescriptor = DllStructGetPtr($tsecuritydescriptor)
- Local $aret = DllCall("advapi32.dll", "bool", "InitializeSecurityDescriptor", "ptr", $psecuritydescriptor, "dword", $security_descriptor_revision)
- If @error Then Return SetError(@error, @extended, 0)
- If $aret[0] Then
- $aret = DllCall("advapi32.dll", "bool", "SetSecurityDescriptorDacl", "ptr", $psecuritydescriptor, "bool", 1, "ptr", 0, "bool", 0)
- If @error Then Return SetError(@error, @extended, 0)
- If $aret[0] Then
- Local $structsecurityattributes = DllStructCreate($tagsecurity_attributes)
- DllStructSetData($structsecurityattributes, 1, DllStructGetSize($structsecurityattributes))
- DllStructSetData($structsecurityattributes, 2, $psecuritydescriptor)
- DllStructSetData($structsecurityattributes, 3, 0)
- $psecurityattributes = DllStructGetPtr($structsecurityattributes)
- EndIf
- EndIf
- EndIf
- Local $handle = DllCall("kernel32.dll", "handle", "CreateMutexW", "ptr", $psecurityattributes, "bool", 1, "wstr", $soccurencename)
- If @error Then Return SetError(@error, @extended, 0)
- Local $lasterror = DllCall("kernel32.dll", "dword", "GetLastError")
- If @error Then Return SetError(@error, @extended, 0)
- If $lasterror[0] = $error_already_exists Then
- If BitAND($iflag, 1) Then
- Return SetError($lasterror[0], $lasterror[0], 0)
- Else
- Exit - 1
- EndIf
- EndIf
- Return $handle[0]
- EndFunc
- Func _ispressed($shexkey, $vdll = "user32.dll")
- Local $a_r = DllCall($vdll, "short", "GetAsyncKeyState", "int", "0x" & $shexkey)
- If @error Then Return SetError(@error, @extended, False)
- Return BitAND($a_r[0], 32768) <> 0
- EndFunc
- Func _versioncompare($sversion1, $sversion2)
- If $sversion1 = $sversion2 Then Return 0
- Local $sep = "."
- If StringInStr($sversion1, $sep) = 0 Then $sep = ","
- Local $aversion1 = StringSplit($sversion1, $sep)
- Local $aversion2 = StringSplit($sversion2, $sep)
- If UBound($aversion1) <> UBound($aversion2) OR UBound($aversion1) = 0 Then
- SetExtended(1)
- If $sversion1 > $sversion2 Then
- Return 1
- ElseIf $sversion1 < $sversion2 Then
- Return - 1
- EndIf
- Else
- For $i = 1 To UBound($aversion1) - 1
- If StringIsDigit($aversion1[$i]) AND StringIsDigit($aversion2[$i]) Then
- If Number($aversion1[$i]) > Number($aversion2[$i]) Then
- Return 1
- ElseIf Number($aversion1[$i]) < Number($aversion2[$i]) Then
- Return - 1
- EndIf
- Else
- SetExtended(1)
- If $aversion1[$i] > $aversion2[$i] Then
- Return 1
- ElseIf $aversion1[$i] < $aversion2[$i] Then
- Return - 1
- EndIf
- EndIf
- Next
- EndIf
- Return SetError(2, 0, 0)
- EndFunc
- Func __misc_getdc($hwnd)
- Local $aresult = DllCall("User32.dll", "handle", "GetDC", "hwnd", $hwnd)
- If @error OR NOT $aresult[0] Then Return SetError(1, _winapi_getlasterror(), 0)
- Return $aresult[0]
- EndFunc
- Func __misc_getdevicecaps($hdc, $iindex)
- Local $aresult = DllCall("GDI32.dll", "int", "GetDeviceCaps", "handle", $hdc, "int", $iindex)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func __misc_releasedc($hwnd, $hdc)
- Local $aresult = DllCall("User32.dll", "int", "ReleaseDC", "hwnd", $hwnd, "handle", $hdc)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0] <> 0
- EndFunc
- Global Const $bs_groupbox = 7
- Global Const $bs_bottom = 2048
- Global Const $bs_center = 768
- Global Const $bs_defpushbutton = 1
- Global Const $bs_left = 256
- Global Const $bs_multiline = 8192
- Global Const $bs_pushbox = 10
- Global Const $bs_pushlike = 4096
- Global Const $bs_right = 512
- Global Const $bs_rightbutton = 32
- Global Const $bs_top = 1024
- Global Const $bs_vcenter = 3072
- Global Const $bs_flat = 32768
- Global Const $bs_icon = 64
- Global Const $bs_bitmap = 128
- Global Const $bs_notify = 16384
- Global Const $bs_splitbutton = 12
- Global Const $bs_defsplitbutton = 13
- Global Const $bs_commandlink = 14
- Global Const $bs_defcommandlink = 15
- Global Const $bcsif_glyph = 1
- Global Const $bcsif_image = 2
- Global Const $bcsif_style = 4
- Global Const $bcsif_size = 8
- Global Const $bcss_nosplit = 1
- Global Const $bcss_stretch = 2
- Global Const $bcss_alignleft = 4
- Global Const $bcss_image = 8
- Global Const $button_imagelist_align_left = 0
- Global Const $button_imagelist_align_right = 1
- Global Const $button_imagelist_align_top = 2
- Global Const $button_imagelist_align_bottom = 3
- Global Const $button_imagelist_align_center = 4
- Global Const $bs_3state = 5
- Global Const $bs_auto3state = 6
- Global Const $bs_autocheckbox = 3
- Global Const $bs_checkbox = 2
- Global Const $bs_radiobutton = 4
- Global Const $bs_autoradiobutton = 9
- Global Const $bs_ownerdraw = 11
- Global Const $gui_ss_default_button = 0
- Global Const $gui_ss_default_checkbox = 0
- Global Const $gui_ss_default_group = 0
- Global Const $gui_ss_default_radio = 0
- Global Const $bcm_first = 5632
- Global Const $bcm_getidealsize = ($bcm_first + 1)
- Global Const $bcm_getimagelist = ($bcm_first + 3)
- Global Const $bcm_getnote = ($bcm_first + 10)
- Global Const $bcm_getnotelength = ($bcm_first + 11)
- Global Const $bcm_getsplitinfo = ($bcm_first + 8)
- Global Const $bcm_gettextmargin = ($bcm_first + 5)
- Global Const $bcm_setdropdownstate = ($bcm_first + 6)
- Global Const $bcm_setimagelist = ($bcm_first + 2)
- Global Const $bcm_setnote = ($bcm_first + 9)
- Global Const $bcm_setshield = ($bcm_first + 12)
- Global Const $bcm_setsplitinfo = ($bcm_first + 7)
- Global Const $bcm_settextmargin = ($bcm_first + 4)
- Global Const $bm_click = 245
- Global Const $bm_getcheck = 240
- Global Const $bm_getimage = 246
- Global Const $bm_getstate = 242
- Global Const $bm_setcheck = 241
- Global Const $bm_setdontclick = 248
- Global Const $bm_setimage = 247
- Global Const $bm_setstate = 243
- Global Const $bm_setstyle = 244
- Global Const $bcn_first = -1250
- Global Const $bcn_dropdown = ($bcn_first + 2)
- Global Const $bcn_hotitemchange = ($bcn_first + 1)
- Global Const $bn_clicked = 0
- Global Const $bn_paint = 1
- Global Const $bn_hilite = 2
- Global Const $bn_unhilite = 3
- Global Const $bn_disable = 4
- Global Const $bn_doubleclicked = 5
- Global Const $bn_setfocus = 6
- Global Const $bn_killfocus = 7
- Global Const $bn_pushed = $bn_hilite
- Global Const $bn_unpushed = $bn_unhilite
- Global Const $bn_dblclk = $bn_doubleclicked
- Global Const $bst_checked = 1
- Global Const $bst_indeterminate = 2
- Global Const $bst_unchecked = 0
- Global Const $bst_focus = 8
- Global Const $bst_pushed = 4
- Global Const $bst_dontclick = 128
- 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 $process_terminate = 1
- Global Const $process_create_thread = 2
- Global Const $process_set_sessionid = 4
- Global Const $process_vm_operation = 8
- Global Const $process_vm_read = 16
- Global Const $process_vm_write = 32
- Global Const $process_dup_handle = 64
- Global Const $process_create_process = 128
- Global Const $process_set_quota = 256
- Global Const $process_set_information = 512
- Global Const $process_query_information = 1024
- Global Const $process_suspend_resume = 2048
- Global Const $process_all_access = 2035711
- Global Const $ddl_archive = 32
- Global Const $ddl_directory = 16
- Global Const $ddl_drives = 16384
- Global Const $ddl_exclusive = 32768
- Global Const $ddl_hidden = 2
- Global Const $ddl_readonly = 1
- Global Const $ddl_readwrite = 0
- Global Const $ddl_system = 4
- Global Const $color_aqua = 65535
- Global Const $color_black = 0
- Global Const $color_blue = 255
- Global Const $color_cream = 16776176
- Global Const $color_fuchsia = 16711935
- Global Const $color_gray = 8421504
- Global Const $color_green = 32768
- Global Const $color_lime = 65280
- Global Const $color_maroon = 9116770
- Global Const $color_medblue = 708
- Global Const $color_medgray = 10526884
- Global Const $color_moneygreen = 12639424
- Global Const $color_navy = 128
- Global Const $color_olive = 8421376
- Global Const $color_purple = 8388736
- Global Const $color_red = 16711680
- Global Const $color_silver = 12632256
- Global Const $color_skyblue = 10930928
- Global Const $color_teal = 32896
- Global Const $color_white = 16777215
- Global Const $color_yellow = 16776960
- Global Const $clr_none = -1
- Global Const $clr_default = -16777216
- Global Const $clr_aqua = 16776960
- Global Const $clr_black = 0
- Global Const $clr_blue = 16711680
- Global Const $clr_cream = 15793151
- Global Const $clr_fuchsia = 16711935
- Global Const $clr_gray = 8421504
- Global Const $clr_green = 32768
- Global Const $clr_lime = 65280
- Global Const $clr_maroon = 6429835
- Global Const $clr_medblue = 12845568
- Global Const $clr_medgray = 10789024
- Global Const $clr_moneygreen = 12639424
- Global Const $clr_navy = 8388608
- Global Const $clr_olive = 32896
- Global Const $clr_purple = 8388736
- Global Const $clr_red = 255
- Global Const $clr_silver = 12632256
- Global Const $clr_skyblue = 15780518
- Global Const $clr_teal = 8421376
- Global Const $clr_white = 16777215
- Global Const $clr_yellow = 65535
- Global Const $cc_anycolor = 256
- Global Const $cc_fullopen = 2
- Global Const $cc_rgbinit = 1
- Global Const $opt_coordsrelative = 0
- Global Const $opt_coordsabsolute = 1
- Global Const $opt_coordsclient = 2
- Global Const $opt_errorsilent = 0
- Global Const $opt_errorfatal = 1
- Global Const $opt_capsnostore = 0
- Global Const $opt_capsstore = 1
- Global Const $opt_matchstart = 1
- Global Const $opt_matchany = 2
- Global Const $opt_matchexact = 3
- Global Const $opt_matchadvanced = 4
- Global Const $ccs_top = 1
- Global Const $ccs_nomovey = 2
- Global Const $ccs_bottom = 3
- Global Const $ccs_noresize = 4
- Global Const $ccs_noparentalign = 8
- Global Const $ccs_nohilite = 16
- Global Const $ccs_adjustable = 32
- Global Const $ccs_nodivider = 64
- Global Const $ccs_vert = 128
- Global Const $ccs_left = 129
- Global Const $ccs_nomovex = 130
- Global Const $ccs_right = 131
- Global Const $di_mask = 1
- Global Const $di_image = 2
- Global Const $di_normal = 3
- Global Const $di_compat = 4
- Global Const $di_defaultsize = 8
- Global Const $di_nomirror = 16
- Global Const $display_device_attached_to_desktop = 1
- Global Const $display_device_multi_driver = 2
- Global Const $display_device_primary_device = 4
- Global Const $display_device_mirroring_driver = 8
- Global Const $display_device_vga_compatible = 16
- Global Const $display_device_removable = 32
- Global Const $display_device_disconnect = 33554432
- Global Const $display_device_remote = 67108864
- Global Const $display_device_modespruned = 134217728
- Global Const $flashw_caption = 1
- Global Const $flashw_tray = 2
- Global Const $flashw_timer = 4
- Global Const $flashw_timernofg = 12
- Global Const $format_message_allocate_buffer = 256
- Global Const $format_message_ignore_inserts = 512
- Global Const $format_message_from_string = 1024
- Global Const $format_message_from_hmodule = 2048
- Global Const $format_message_from_system = 4096
- Global Const $format_message_argument_array = 8192
- Global Const $gw_hwndfirst = 0
- Global Const $gw_hwndlast = 1
- Global Const $gw_hwndnext = 2
- Global Const $gw_hwndprev = 3
- Global Const $gw_owner = 4
- Global Const $gw_child = 5
- Global Const $gwl_wndproc = -4
- Global Const $gwl_hinstance = -6
- Global Const $gwl_hwndparent = -8
- Global Const $gwl_id = -12
- Global Const $gwl_style = -16
- Global Const $gwl_exstyle = -20
- Global Const $gwl_userdata = -21
- Global Const $std_cut = 0
- Global Const $std_copy = 1
- Global Const $std_paste = 2
- Global Const $std_undo = 3
- Global Const $std_redow = 4
- Global Const $std_delete = 5
- Global Const $std_filenew = 6
- Global Const $std_fileopen = 7
- Global Const $std_filesave = 8
- Global Const $std_printpre = 9
- Global Const $std_properties = 10
- Global Const $std_help = 11
- Global Const $std_find = 12
- Global Const $std_replace = 13
- Global Const $std_print = 14
- Global Const $lr_defaultcolor = 0
- Global Const $lr_monochrome = 1
- Global Const $lr_color = 2
- Global Const $lr_copyreturnorg = 4
- Global Const $lr_copydeleteorg = 8
- Global Const $lr_loadfromfile = 16
- Global Const $lr_loadtransparent = 32
- Global Const $lr_defaultsize = 64
- Global Const $lr_vgacolor = 128
- Global Const $lr_loadmap3dcolors = 4096
- Global Const $lr_createdibsection = 8192
- Global Const $lr_copyfromresource = 16384
- Global Const $lr_shared = 32768
- Global Const $image_bitmap = 0
- Global Const $image_icon = 1
- Global Const $image_cursor = 2
- Global Const $kb_sendspecial = 0
- Global Const $kb_sendraw = 1
- Global Const $kb_capsoff = 0
- Global Const $kb_capson = 1
- Global Const $dont_resolve_dll_references = 1
- Global Const $load_library_as_datafile = 2
- Global Const $load_with_altered_search_path = 8
- Global Const $objid_window = 0
- Global Const $objid_titlebar = -2
- Global Const $objid_sizegrip = -7
- Global Const $objid_caret = -8
- Global Const $objid_cursor = -9
- Global Const $objid_alert = -10
- Global Const $objid_sound = -11
- Global Const $vk_down = 40
- Global Const $vk_end = 35
- Global Const $vk_home = 36
- Global Const $vk_left = 37
- Global Const $vk_next = 34
- Global Const $vk_prior = 33
- Global Const $vk_right = 39
- Global Const $vk_up = 38
- Global Const $mb_ok = 0
- Global Const $mb_okcancel = 1
- Global Const $mb_abortretryignore = 2
- Global Const $mb_yesnocancel = 3
- Global Const $mb_yesno = 4
- Global Const $mb_retrycancel = 5
- Global Const $mb_iconhand = 16
- Global Const $mb_iconquestion = 32
- Global Const $mb_iconexclamation = 48
- Global Const $mb_iconasterisk = 64
- Global Const $mb_defbutton1 = 0
- Global Const $mb_defbutton2 = 256
- Global Const $mb_defbutton3 = 512
- Global Const $mb_applmodal = 0
- Global Const $mb_systemmodal = 4096
- Global Const $mb_taskmodal = 8192
- Global Const $mb_topmost = 262144
- Global Const $mb_rightjustified = 524288
- Global Const $idtimeout = -1
- Global Const $idok = 1
- Global Const $idcancel = 2
- Global Const $idabort = 3
- Global Const $idretry = 4
- Global Const $idignore = 5
- Global Const $idyes = 6
- Global Const $idno = 7
- Global Const $idtryagain = 10
- Global Const $idcontinue = 11
- Global Const $dlg_notitle = 1
- Global Const $dlg_notontop = 2
- Global Const $dlg_textleft = 4
- Global Const $dlg_textright = 8
- Global Const $dlg_moveable = 16
- Global Const $dlg_textvcenter = 32
- Global Const $tip_iconnone = 0
- Global Const $tip_iconasterisk = 1
- Global Const $tip_iconexclamation = 2
- Global Const $tip_iconhand = 3
- Global Const $tip_nosound = 16
- Global Const $idc_unknown = 0
- Global Const $idc_appstarting = 1
- Global Const $idc_arrow = 2
- Global Const $idc_cross = 3
- Global Const $idc_hand = 32649
- Global Const $idc_help = 4
- Global Const $idc_ibeam = 5
- Global Const $idc_icon = 6
- Global Const $idc_no = 7
- Global Const $idc_size = 8
- Global Const $idc_sizeall = 9
- Global Const $idc_sizenesw = 10
- Global Const $idc_sizens = 11
- Global Const $idc_sizenwse = 12
- Global Const $idc_sizewe = 13
- Global Const $idc_uparrow = 14
- Global Const $idc_wait = 15
- Global Const $idi_application = 32512
- Global Const $idi_asterisk = 32516
- Global Const $idi_exclamation = 32515
- Global Const $idi_hand = 32513
- Global Const $idi_question = 32514
- Global Const $idi_winlogo = 32517
- Global Const $sd_logoff = 0
- Global Const $sd_shutdown = 1
- Global Const $sd_reboot = 2
- Global Const $sd_force = 4
- Global Const $sd_powerdown = 8
- Global Const $str_nocasesense = 0
- Global Const $str_casesense = 1
- Global Const $str_stripleading = 1
- Global Const $str_striptrailing = 2
- Global Const $str_stripspaces = 4
- Global Const $str_stripall = 8
- Global Const $tray_item_exit = 3
- Global Const $tray_item_pause = 4
- Global Const $tray_item_first = 7
- Global Const $tray_checked = 1
- Global Const $tray_unchecked = 4
- Global Const $tray_enable = 64
- Global Const $tray_disable = 128
- Global Const $tray_focus = 256
- Global Const $tray_default = 512
- Global Const $tray_event_showicon = -3
- Global Const $tray_event_hideicon = -4
- Global Const $tray_event_flashicon = -5
- Global Const $tray_event_noflashicon = -6
- Global Const $tray_event_primarydown = -7
- Global Const $tray_event_primaryup = -8
- Global Const $tray_event_secondarydown = -9
- Global Const $tray_event_secondaryup = -10
- Global Const $tray_event_mouseover = -11
- Global Const $tray_event_mouseout = -12
- Global Const $tray_event_primarydouble = -13
- Global Const $tray_event_secondarydouble = -14
- Global Const $stdin_child = 1
- Global Const $stdout_child = 2
- Global Const $stderr_child = 4
- Global Const $stderr_merged = 8
- Global Const $stdio_inherit_parent = 16
- Global Const $run_create_new_console = 65536
- Global Const $mouseeventf_absolute = 32768
- Global Const $mouseeventf_move = 1
- Global Const $mouseeventf_leftdown = 2
- Global Const $mouseeventf_leftup = 4
- Global Const $mouseeventf_rightdown = 8
- Global Const $mouseeventf_rightup = 16
- Global Const $mouseeventf_middledown = 32
- Global Const $mouseeventf_middleup = 64
- Global Const $mouseeventf_wheel = 2048
- Global Const $mouseeventf_xdown = 128
- Global Const $mouseeventf_xup = 256
- Global Const $reg_none = 0
- Global Const $reg_sz = 1
- Global Const $reg_expand_sz = 2
- Global Const $reg_binary = 3
- Global Const $reg_dword = 4
- Global Const $reg_dword_big_endian = 5
- Global Const $reg_link = 6
- Global Const $reg_multi_sz = 7
- Global Const $reg_resource_list = 8
- Global Const $reg_full_resource_descriptor = 9
- Global Const $reg_resource_requirements_list = 10
- Global Const $hwnd_bottom = 1
- Global Const $hwnd_notopmost = -2
- Global Const $hwnd_top = 0
- Global Const $hwnd_topmost = -1
- Global Const $swp_nosize = 1
- Global Const $swp_nomove = 2
- Global Const $swp_nozorder = 4
- Global Const $swp_noredraw = 8
- Global Const $swp_noactivate = 16
- Global Const $swp_framechanged = 32
- Global Const $swp_drawframe = 32
- Global Const $swp_showwindow = 64
- Global Const $swp_hidewindow = 128
- Global Const $swp_nocopybits = 256
- Global Const $swp_noownerzorder = 512
- Global Const $swp_noreposition = 512
- Global Const $swp_nosendchanging = 1024
- Global Const $swp_defererase = 8192
- Global Const $swp_asyncwindowpos = 16384
- Global Const $lang_afrikaans = 54
- Global Const $lang_albanian = 28
- Global Const $lang_arabic = 1
- Global Const $lang_armenian = 43
- Global Const $lang_assamese = 77
- Global Const $lang_azeri = 44
- Global Const $lang_basque = 45
- Global Const $lang_belarusian = 35
- Global Const $lang_bengali = 69
- Global Const $lang_bulgarian = 2
- Global Const $lang_catalan = 3
- Global Const $lang_chinese = 4
- Global Const $lang_croatian = 26
- Global Const $lang_czech = 5
- Global Const $lang_danish = 6
- Global Const $lang_dutch = 19
- Global Const $lang_english = 9
- Global Const $lang_estonian = 37
- Global Const $lang_faeroese = 56
- Global Const $lang_farsi = 41
- Global Const $lang_finnish = 11
- Global Const $lang_french = 156
- Global Const $lang_georgian = 55
- Global Const $lang_german = 7
- Global Const $lang_greek = 8
- Global Const $lang_gujarati = 71
- Global Const $lang_hebrew = 13
- Global Const $lang_hindi = 57
- Global Const $lang_hungarian = 14
- Global Const $lang_icelandic = 15
- Global Const $lang_indonesian = 33
- Global Const $lang_italian = 16
- Global Const $lang_japanese = 17
- Global Const $lang_kannada = 75
- Global Const $lang_kashmiri = 96
- Global Const $lang_kazak = 63
- Global Const $lang_konkani = 87
- Global Const $lang_korean = 18
- Global Const $lang_latvian = 38
- Global Const $lang_lithuanian = 39
- Global Const $lang_macedonian = 47
- Global Const $lang_malay = 62
- Global Const $lang_malayalam = 76
- Global Const $lang_manipuri = 88
- Global Const $lang_marathi = 78
- Global Const $lang_nepali = 97
- Global Const $lang_neutral = 0
- Global Const $lang_norwegian = 20
- Global Const $lang_oriya = 72
- Global Const $lang_polish = 21
- Global Const $lang_portuguese = 22
- Global Const $lang_punjabi = 70
- Global Const $lang_romanian = 24
- Global Const $lang_russian = 25
- Global Const $lang_sanskrit = 79
- Global Const $lang_serbian = 26
- Global Const $lang_sindhi = 89
- Global Const $lang_slovak = 27
- Global Const $lang_slovenian = 36
- Global Const $lang_spanish = 10
- Global Const $lang_swahili = 65
- Global Const $lang_swedish = 29
- Global Const $lang_tamil = 73
- Global Const $lang_tatar = 68
- Global Const $lang_telugu = 74
- Global Const $lang_thai = 30
- Global Const $lang_turkish = 31
- Global Const $lang_ukrainian = 34
- Global Const $lang_urdu = 32
- Global Const $lang_uzbek = 67
- Global Const $lang_vietnamese = 42
- Global Const $sublang_arabic_algeria = 5
- Global Const $sublang_arabic_bahrain = 15
- Global Const $sublang_arabic_egypt = 3
- Global Const $sublang_arabic_iraq = 2
- Global Const $sublang_arabic_jordan = 11
- Global Const $sublang_arabic_kuwait = 13
- Global Const $sublang_arabic_lebanon = 12
- Global Const $sublang_arabic_libya = 4
- Global Const $sublang_arabic_morocco = 6
- Global Const $sublang_arabic_oman = 8
- Global Const $sublang_arabic_qatar = 16
- Global Const $sublang_arabic_saudi_arabia = 1
- Global Const $sublang_arabic_syria = 10
- Global Const $sublang_arabic_tunisia = 7
- Global Const $sublang_arabic_uae = 14
- Global Const $sublang_arabic_yemen = 9
- Global Const $sublang_azeri_cyrillic = 2
- Global Const $sublang_azeri_latin = 1
- Global Const $sublang_chinese_hongkong = 3
- Global Const $sublang_chinese_macau = 5
- Global Const $sublang_chinese_simplified = 2
- Global Const $sublang_chinese_singapore = 4
- Global Const $sublang_chinese_traditional = 1
- Global Const $sublang_default = 1
- Global Const $sublang_dutch = 1
- Global Const $sublang_dutch_belgian = 2
- Global Const $sublang_english_aus = 3
- Global Const $sublang_english_belize = 10
- Global Const $sublang_english_can = 4
- Global Const $sublang_english_caribbean = 9
- Global Const $sublang_english_eire = 6
- Global Const $sublang_english_jamaica = 8
- Global Const $sublang_english_nz = 5
- Global Const $sublang_english_philippines = 13
- Global Const $sublang_english_south_africa = 7
- Global Const $sublang_english_trinidad = 11
- Global Const $sublang_english_uk = 2
- Global Const $sublang_english_us = 1
- Global Const $sublang_english_zimbabwe = 12
- Global Const $sublang_french = 1
- Global Const $sublang_french_belgian = 2
- Global Const $sublang_french_canadian = 3
- Global Const $sublang_french_luxembourg = 5
- Global Const $sublang_french_monaco = 6
- Global Const $sublang_french_swiss = 4
- Global Const $sublang_german = 1
- Global Const $sublang_german_austrian = 3
- Global Const $sublang_german_liechtenstein = 5
- Global Const $sublang_german_luxembourg = 4
- Global Const $sublang_german_swiss = 2
- Global Const $sublang_italian = 1
- Global Const $sublang_italian_swiss = 2
- Global Const $sublang_kashmiri_india = 2
- Global Const $sublang_korean = 1
- Global Const $sublang_lithuanian = 1
- Global Const $sublang_malay_brunei_darussalam = 2
- Global Const $sublang_malay_malaysia = 1
- Global Const $sublang_nepali_india = 2
- Global Const $sublang_neutral = 0
- Global Const $sublang_norwegian_bokmal = 1
- Global Const $sublang_norwegian_nynorsk = 2
- Global Const $sublang_portuguese = 2
- Global Const $sublang_portuguese_brazilian = 1
- Global Const $sublang_serbian_cyrillic = 3
- Global Const $sublang_serbian_latin = 2
- Global Const $sublang_spanish = 1
- Global Const $sublang_spanish_argentina = 11
- Global Const $sublang_spanish_bolivia = 16
- Global Const $sublang_spanish_chile = 13
- Global Const $sublang_spanish_colombia = 9
- Global Const $sublang_spanish_costa_rica = 5
- Global Const $sublang_spanish_dominican_republic = 7
- Global Const $sublang_spanish_ecuador = 12
- Global Const $sublang_spanish_el_salvador = 17
- Global Const $sublang_spanish_guatemala = 4
- Global Const $sublang_spanish_honduras = 18
- Global Const $sublang_spanish_mexican = 2
- Global Const $sublang_spanish_modern = 3
- Global Const $sublang_spanish_nicaragua = 19
- Global Const $sublang_spanish_panama = 6
- Global Const $sublang_spanish_paraguay = 15
- Global Const $sublang_spanish_peru = 10
- Global Const $sublang_spanish_puerto_rico = 20
- Global Const $sublang_spanish_uruguay = 14
- Global Const $sublang_spanish_venezuela = 8
- Global Const $sublang_swedish = 1
- Global Const $sublang_swedish_finland = 2
- Global Const $sublang_sys_default = 2
- Global Const $sublang_urdu_india = 2
- Global Const $sublang_urdu_pakistan = 1
- Global Const $sublang_uzbek_cyrillic = 2
- Global Const $sort_default = 0
- Global Const $sort_japanese_xjis = 0
- Global Const $sort_japanese_unicode = 1
- Global Const $sort_chinese_big5 = 0
- Global Const $sort_chinese_prcp = 0
- Global Const $sort_chinese_unicode = 1
- Global Const $sort_chinese_prc = 2
- Global Const $sort_korean_ksc = 0
- Global Const $sort_korean_unicode = 1
- Global Const $sort_german_phone_book = 1
- Global Const $sort_hungarian_default = 0
- Global Const $sort_hungarian_technical = 1
- Global Const $sort_georgian_traditional = 0
- Global Const $sort_georgian_modern = 1
- 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)
- Global $pid
- #Region _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À-ÿaS~x]") Then
- $s_curchar = StringUpper($s_curchar)
- $capnext = 0
- EndIf
- Case NOT StringRegExp($s_curchar, "[a-zA-ZÀ-ÿaS~x]")
- $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
- 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 _memoryreadprotected($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
- Local $x = DllCall($ah_handle[0], "int", "VirtualProtectEx", "int", $ah_handle[1], "ptr", $iv_address, "int", DllStructGetSize($v_buffer), "dword", 64, "dword*", 0)
- DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
- DllCall($ah_handle[0], "int", "VirtualProtectEx", "int", $ah_handle[1], "ptr", $iv_address, "int", DllStructGetSize($v_buffer), "dword", $x[5], "dword*", 0)
- If NOT @error Then
- Local $v_value = DllStructGetData($v_buffer, 1)
- Return $v_value
- Else
- SetError(6)
- Return 0
- EndIf
- EndFunc
- Func setconsoletitle($stitle)
- Return DllCall("Kernel32.dll", "bool", "SetConsoleTitleW", "wstr", $stitle)
- 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 _memorywriteprotected($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
- Local $x = DllCall($ah_handle[0], "int", "VirtualProtectEx", "int", $ah_handle[1], "ptr", $iv_address, "int", DllStructGetSize($v_buffer), "dword", 64, "dword*", 0)
- DllCall($ah_handle[0], "int", "WriteProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
- DllCall($ah_handle[0], "int", "VirtualProtectEx", "int", $ah_handle[1], "ptr", $iv_address, "int", DllStructGetSize($v_buffer), "dword", $x[5], "dword*", 0)
- 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 $my_token_adjust_privileges = 32
- Const $my_token_query = 8
- Const $my_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($my_token_adjust_privileges, $my_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, $my_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 _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)
- _memoryclose($pid)
- EndFunc
- Func _findpattern($iv_pid, $dwstart, $bpattern, $bprotected = False)
- If $bprotected = False Then
- Local $dwstart2 = $dwstart - 4096
- Local $memopenhandle = _memoryopen($iv_pid, 2035711)
- Do
- $dwstart2 = $dwstart2 + 4096
- Local $searchbuffer = _memoryread($dwstart2, $memopenhandle, "byte[4130]")
- Local $ncount = StringInStr($searchbuffer, $bpattern)
- Until $ncount = NOT 0
- Local $ncountf = ($ncount / 2) - 1
- Return "0x" & Hex($dwstart2 + $ncountf)
- _memoryclose($iv_pid)
- ElseIf $bprotected = True Then
- Local $dwstart2 = $dwstart - 4096
- Local $memopenhandle = _memoryopen($iv_pid, 2035711)
- Do
- $dwstart2 = $dwstart2 + 4096
- Local $searchbuffer = _memoryreadprotected($dwstart2, $memopenhandle, "byte[4130]")
- Local $ncount = StringInStr($searchbuffer, $bpattern)
- Until $ncount = NOT 0
- Local $ncountf = ($ncount / 2) - 1
- Return "0x" & Hex($dwstart2 + $ncountf)
- _memoryclose($iv_pid)
- EndIf
- EndFunc
- Func _findpatternhdr($iv_pid, $dwstart, $bpattern)
- Local $dwstart2 = $dwstart - 147456
- Local $memopenhandle = _memoryopen($iv_pid, 2035711)
- Do
- $dwstart2 = $dwstart2 + 147456
- Local $searchbuffer = _memoryread($dwstart2, $memopenhandle, "byte[147456]")
- Local $ncount = StringInStr($searchbuffer, $bpattern)
- Until $ncount = NOT 0
- Local $ncountf = ($ncount / 2) - 1
- Return "0x" & Hex($dwstart2 + $ncountf - $dwstart)
- _memoryclose($iv_pid)
- EndFunc
- Func _pattern($iv_pid, $dwstart, $bpattern)
- Local $dwstart2 = $dwstart
- Local $memopenhandle = _memoryopen($iv_pid, 2035711)
- Local $bpatterna = StringSplit($bpattern, "*", 1)
- Do
- $dwstart2 = $dwstart2 + 65536
- Local $searchbuffer = _memoryread($dwstart2, $memopenhandle, "byte[65536]")
- Local $ncount = StringInStr($searchbuffer, $bpattern)
- Until $ncount = NOT 0
- Local $ncountf = ($ncount / 2) - 1
- Return "0x" & Hex($dwstart2 + $ncountf)
- _memoryclose($iv_pid)
- EndFunc
- Func __setprivilege($privilege, $benable)
- Const $my_token_adjust_privileges = 32
- Const $my_token_query = 8
- Const $my_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($my_token_adjust_privileges, $my_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, $my_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 swapendian($hex)
- Return Hex(BitOR(BitOR(BitOR(BitShift($hex, 24), BitAND(BitShift($hex, -8), 16711680)), BitAND(BitShift($hex, 8), 65280)), BitShift($hex, -24)), 8)
- EndFunc
- Func swapendian2($dw)
- Return Hex(Int(StringToBinary(BinaryToString($dw), 1)))
- EndFunc
- Func _getdriveinfo($sdrive)
- $sdrive = StringRegExpReplace($sdrive, "(?i)(.*)([a-z]{1}:)(.*)", "$2")
- Local $sdrivetype = DriveGetType($sdrive)
- If $sdrivetype <> "Fixed" AND $sdrivetype <> "Removable" Then SetError(1, 0, 1)
- If NOT FileExists($sdrive) Then Return SetError(1, 0, 1)
- Local $wbemflagreturnimmediately = 16
- Local $wbemflagforwardonly = 32
- Local $colitems = ""
- Local $apartition, $aphysicaldrive, $aout[14][2]
- $objwmiservice = ObjGet("winmgmts:\\localhost\root\CIMV2")
- If NOT IsObj($objwmiservice) Then Return SetError(2, 0, 2)
- $colitems = $objwmiservice.execquery("SELECT * FROM Win32_LogicalDiskToPartition", "WQL", $wbemflagreturnimmediately + $wbemflagforwardonly)
- If IsObj($colitems) Then
- For $objitem In $colitems
- If StringInStr($objitem.dependent, '"' & $sdrive & '"') Then
- $apartition = StringRegExp($objitem.antecedent, 'DeviceID="(.*)"', 3)
- EndIf
- Next
- EndIf
- If NOT IsArray($apartition) Then Return SetError(3, 0, 3)
- $colitems = $objwmiservice.execquery("SELECT * FROM Win32_DiskDriveToDiskPartition", "WQL", $wbemflagreturnimmediately + $wbemflagforwardonly)
- If IsObj($colitems) Then
- For $objitem In $colitems
- If StringInStr($objitem.dependent, '"' & $apartition[0] & '"') Then
- $aphysicaldrive = StringRegExp($objitem.antecedent, 'DeviceID="(.*)"', 3)
- EndIf
- Next
- EndIf
- If NOT IsArray($aphysicaldrive) Then Return SetError(4, 0, 4)
- $aphysicaldrive[0] = StringReplace($aphysicaldrive[0], "\\", "\")
- $colitems = $objwmiservice.execquery("SELECT * FROM Win32_DiskDrive", "WQL", $wbemflagreturnimmediately + $wbemflagforwardonly)
- If IsObj($colitems) Then
- For $objitem In $colitems
- If StringInStr($objitem.deviceid, $aphysicaldrive[0]) Then
- $aout[0][0] = "Volume-Label"
- $aout[0][1] = DriveGetLabel($sdrive)
- $aout[1][0] = "Serial-Nr. (Volume)"
- $aout[1][1] = DriveGetSerial($sdrive)
- $aout[2][0] = "Model"
- $aout[2][1] = $objitem.model
- $aout[3][0] = "Serial-Nr. (Drive)"
- $aout[3][1] = StringMid($objitem.pnpdeviceid, StringInStr($objitem.pnpdeviceid, "\", 0, -1) + 1)
- $aout[3][1] = StringReplace($aout[3][1], "&0", "")
- $aout[4][0] = "Interface"
- $aout[4][1] = $objitem.interfacetype
- $aout[5][0] = "Size (Bytes)"
- $aout[5][1] = $objitem.size
- $aout[6][0] = "Media Type"
- $aout[6][1] = StringRegExpReplace($objitem.mediatype, "[^[:print:]]", " ")
- $aout[7][0] = "Total Cylinders"
- $aout[7][1] = $objitem.totalcylinders
- $aout[8][0] = "Total Heads"
- $aout[8][1] = $objitem.totalheads
- $aout[9][0] = "Total Tracks"
- $aout[9][1] = $objitem.totaltracks
- $aout[10][0] = "Total Sectors"
- $aout[10][1] = $objitem.totalsectors
- $aout[11][0] = "Tracks Per Cylinder"
- $aout[11][1] = $objitem.trackspercylinder
- $aout[12][0] = "Sectors Per Track"
- $aout[12][1] = $objitem.sectorspertrack
- $aout[13][0] = "Bytes Per Sector"
- $aout[13][1] = $objitem.bytespersector
- EndIf
- Next
- EndIf
- $objwmiservice = ""
- Return $aout
- EndFunc
- Func createremotethread($hprocess, $lpthreadattributes, $dwstacksize, $lpstartaddress, $lpparameter, $dwcreationflags, $lpthreadid)
- If NOT IsArray($hprocess) Then
- SetError(1)
- Return - 1
- EndIf
- Return DllCall($hprocess[0], "HANDLE", "CreateRemoteThread", "HANDLE", $hprocess[1], "int", $lpthreadattributes, "int", $dwstacksize, "DWORD", $lpstartaddress, "ptr", $lpparameter, "DWORD", $dwcreationflags, "DWORD*", $lpthreadid)
- EndFunc
- Func file_open($filename)
- Return FileOpen($filename, 17)
- EndFunc
- Func file_close($filehandle)
- FileClose($filehandle)
- EndFunc
- Func file_scanex($hfile, $pattern, $mask, $addr = 0)
- $pattern = StringRegExpReplace($pattern, "[^0123456789ABCDEFabcdef.]", "")
- If StringLen($pattern) = 0 Then
- SetError(2)
- Return - 2
- EndIf
- If StringLen($pattern) / 2 <> StringLen($mask) Then
- SetError(4)
- Return - 4
- EndIf
- Local $formatedpattern = ""
- Local $bufferpattern
- Local $buffermask
- For $i = 0 To StringLen($mask) - 1
- $bufferpattern = StringLeft($pattern, 2)
- $pattern = StringRight($pattern, StringLen($pattern) - 2)
- $buffermask = StringLeft($mask, 1)
- $mask = StringRight($mask, StringLen($mask) - 1)
- If $buffermask = "?" Then $bufferpattern = ".."
- $formatedpattern = $formatedpattern & $bufferpattern
- Next
- $pattern = $formatedpattern
- $bytes = StringTrimLeft(file_read($hfile, $addr, 16777215), 2)
- StringRegExp($bytes, $pattern, 1, 0)
- If NOT @error Then
- $retn = StringFormat("0x%.8X", 0 + ((@extended - StringLen($pattern) - 2) / 2))
- Return $retn
- Else
- Return - 3
- EndIf
- EndFunc
- Func file_scan($hfile, $pattern, $addr = 0)
- $bytes = StringTrimLeft(file_read($hfile, $addr, 16777215), 2)
- StringRegExp($bytes, $pattern, 1, 0)
- If NOT @error Then
- $retn = StringFormat("0x%.8X", $addr + ((@extended - StringLen($pattern) - 2) / 2))
- Return $retn
- Else
- Return - 3
- EndIf
- EndFunc
- Func file_read($hfile, $address, $length)
- FileSetPos($hfile, $address, 0)
- $ret = FileRead($hfile, $length)
- FileSetPos($hfile, 0, 0)
- Return $ret
- EndFunc
- Func file_write($hfile, $address, $bytes)
- FileSetPos($hfile, $address, 0)
- $ret = FileWrite($hfile, $bytes)
- FileSetPos($hfile, 0, 0)
- Return $ret
- EndFunc
- Func _memoryscanex($ah_handle, $pattern, $mask, $after = False, $iv_addrstart = 4194304, $iv_addrend = 16777215, $step = 51200)
- If NOT IsArray($ah_handle) Then
- SetError(1)
- Return - 1
- EndIf
- $pattern = StringRegExpReplace($pattern, "[^0123456789ABCDEFabcdef.]", "")
- If StringLen($pattern) = 0 Then
- SetError(2)
- Return - 2
- EndIf
- If StringLen($pattern) / 2 <> StringLen($mask) Then
- SetError(4)
- Return - 4
- EndIf
- Local $formatedpattern = ""
- Local $bufferpattern
- Local $buffermask
- For $i = 0 To StringLen($mask) - 1
- $bufferpattern = StringLeft($pattern, 2)
- $pattern = StringRight($pattern, StringLen($pattern) - 2)
- $buffermask = StringLeft($mask, 1)
- $mask = StringRight($mask, StringLen($mask) - 1)
- If $buffermask = "?" Then $bufferpattern = ".."
- $formatedpattern = $formatedpattern & $bufferpattern
- Next
- $pattern = $formatedpattern
- For $addr = $iv_addrstart To $iv_addrend Step $step-(StringLen($pattern) / 2 )
- StringRegExp(_memoryread($addr, $ah_handle, "byte[" & $step & "]"), $pattern, 1, 2)
- If NOT @error Then
- If $after Then
- Return StringFormat("0x%.8X", $addr + ((@extended - 2) / 2))
- Else
- Return StringFormat("0x%.8X", $addr + ((@extended - StringLen($pattern) - 2) / 2))
- EndIf
- EndIf
- Next
- Return - 3
- EndFunc
- Global Const $es_left = 0
- Global Const $es_center = 1
- Global Const $es_right = 2
- Global Const $es_multiline = 4
- Global Const $es_uppercase = 8
- Global Const $es_lowercase = 16
- Global Const $es_password = 32
- Global Const $es_autovscroll = 64
- Global Const $es_autohscroll = 128
- Global Const $es_nohidesel = 256
- Global Const $es_oemconvert = 1024
- Global Const $es_readonly = 2048
- Global Const $es_wantreturn = 4096
- Global Const $es_number = 8192
- Global Const $ec_err = -1
- Global Const $ecm_first = 5376
- Global Const $em_canundo = 198
- Global Const $em_charfrompos = 215
- Global Const $em_emptyundobuffer = 205
- Global Const $em_fmtlines = 200
- Global Const $em_getcuebanner = ($ecm_first + 2)
- Global Const $em_getfirstvisibleline = 206
- Global Const $em_gethandle = 189
- Global Const $em_getimestatus = 217
- Global Const $em_getlimittext = 213
- Global Const $em_getline = 196
- Global Const $em_getlinecount = 186
- Global Const $em_getmargins = 212
- Global Const $em_getmodify = 184
- Global Const $em_getpasswordchar = 210
- Global Const $em_getrect = 178
- Global Const $em_getsel = 176
- Global Const $em_getthumb = 190
- Global Const $em_getwordbreakproc = 209
- Global Const $em_hideballoontip = ($ecm_first + 4)
- Global Const $em_limittext = 197
- Global Const $em_linefromchar = 201
- Global Const $em_lineindex = 187
- Global Const $em_linelength = 193
- Global Const $em_linescroll = 182
- Global Const $em_posfromchar = 214
- Global Const $em_replacesel = 194
- Global Const $em_scroll = 181
- Global Const $em_scrollcaret = 183
- Global Const $em_setcuebanner = ($ecm_first + 1)
- Global Const $em_sethandle = 188
- Global Const $em_setimestatus = 216
- Global Const $em_setlimittext = $em_limittext
- Global Const $em_setmargins = 211
- Global Const $em_setmodify = 185
- Global Const $em_setpasswordchar = 204
- Global Const $em_setreadonly = 207
- Global Const $em_setrect = 179
- Global Const $em_setrectnp = 180
- Global Const $em_setsel = 177
- Global Const $em_settabstops = 203
- Global Const $em_setwordbreakproc = 208
- Global Const $em_showballoontip = ($ecm_first + 3)
- Global Const $em_undo = 199
- Global Const $ec_leftmargin = 1
- Global Const $ec_rightmargin = 2
- Global Const $ec_usefontinfo = 65535
- Global Const $emsis_compositionstring = 1
- Global Const $eimes_getcompstratonce = 1
- Global Const $eimes_cancelcompstrinfocus = 2
- Global Const $eimes_completecompstrkillfocus = 4
- Global Const $en_align_ltr_ec = 1792
- Global Const $en_align_rtl_ec = 1793
- Global Const $en_change = 768
- Global Const $en_errspace = 1280
- Global Const $en_hscroll = 1537
- Global Const $en_killfocus = 512
- Global Const $en_maxtext = 1281
- Global Const $en_setfocus = 256
- Global Const $en_update = 1024
- Global Const $en_vscroll = 1538
- Global Const $tti_none = 0
- Global Const $tti_info = 1
- Global Const $tti_warning = 2
- Global Const $tti_error = 3
- Global Const $tti_info_large = 4
- Global Const $tti_warning_large = 5
- Global Const $tti_error_large = 6
- Global Const $__editconstant_ws_vscroll = 2097152
- Global Const $__editconstant_ws_hscroll = 1048576
- Global Const $gui_ss_default_edit = BitOR($es_wantreturn, $__editconstant_ws_vscroll, $__editconstant_ws_hscroll, $es_autovscroll, $es_autohscroll)
- Global Const $gui_ss_default_input = BitOR($es_left, $es_autohscroll)
- Global Const $sbars_sizegrip = 256
- Global Const $sbt_tooltips = 2048
- Global Const $sbars_tooltips = 2048
- Global Const $sbt_sunken = 0
- Global Const $sbt_noborders = 256
- Global Const $sbt_popout = 512
- Global Const $sbt_rtlreading = 1024
- Global Const $sbt_notabparsing = 2048
- Global Const $sbt_ownerdraw = 4096
- Global Const $__statusbarconstant_wm_user = 1024
- Global Const $sb_getborders = ($__statusbarconstant_wm_user + 7)
- Global Const $sb_geticon = ($__statusbarconstant_wm_user + 20)
- Global Const $sb_getparts = ($__statusbarconstant_wm_user + 6)
- Global Const $sb_getrect = ($__statusbarconstant_wm_user + 10)
- Global Const $sb_gettexta = ($__statusbarconstant_wm_user + 2)
- Global Const $sb_gettextw = ($__statusbarconstant_wm_user + 13)
- Global Const $sb_gettext = $sb_gettexta
- Global Const $sb_gettextlengtha = ($__statusbarconstant_wm_user + 3)
- Global Const $sb_gettextlengthw = ($__statusbarconstant_wm_user + 12)
- Global Const $sb_gettextlength = $sb_gettextlengtha
- Global Const $sb_gettiptexta = ($__statusbarconstant_wm_user + 18)
- Global Const $sb_gettiptextw = ($__statusbarconstant_wm_user + 19)
- Global Const $sb_getunicodeformat = 8192 + 6
- Global Const $sb_issimple = ($__statusbarconstant_wm_user + 14)
- Global Const $sb_setbkcolor = 8192 + 1
- Global Const $sb_seticon = ($__statusbarconstant_wm_user + 15)
- Global Const $sb_setminheight = ($__statusbarconstant_wm_user + 8)
- Global Const $sb_setparts = ($__statusbarconstant_wm_user + 4)
- Global Const $sb_settexta = ($__statusbarconstant_wm_user + 1)
- Global Const $sb_settextw = ($__statusbarconstant_wm_user + 11)
- Global Const $sb_settext = $sb_settexta
- Global Const $sb_settiptexta = ($__statusbarconstant_wm_user + 16)
- Global Const $sb_settiptextw = ($__statusbarconstant_wm_user + 17)
- Global Const $sb_setunicodeformat = 8192 + 5
- Global Const $sb_simple = ($__statusbarconstant_wm_user + 9)
- Global Const $sb_simpleid = 255
- Global Const $sbn_first = -880
- Global Const $sbn_simplemodechange = $sbn_first - 0
- Global Const $gmem_fixed = 0
- Global Const $gmem_moveable = 2
- Global Const $gmem_nocompact = 16
- Global Const $gmem_nodiscard = 32
- Global Const $gmem_zeroinit = 64
- Global Const $gmem_modify = 128
- Global Const $gmem_discardable = 256
- Global Const $gmem_not_banked = 4096
- Global Const $gmem_share = 8192
- Global Const $gmem_ddeshare = 8192
- Global Const $gmem_notify = 16384
- Global Const $gmem_lower = 4096
- Global Const $gmem_valid_flags = 32626
- Global Const $gmem_invalid_handle = 32768
- Global Const $gptr = $gmem_fixed + $gmem_zeroinit
- Global Const $ghnd = $gmem_moveable + $gmem_zeroinit
- Global Const $mem_commit = 4096
- Global Const $mem_reserve = 8192
- Global Const $mem_top_down = 1048576
- Global Const $mem_shared = 134217728
- Global Const $page_noaccess = 1
- Global Const $page_readonly = 2
- Global Const $page_readwrite = 4
- Global Const $page_execute = 16
- Global Const $page_execute_read = 32
- Global Const $page_execute_readwrite = 64
- Global Const $page_guard = 256
- Global Const $page_nocache = 512
- Global Const $mem_decommit = 16384
- Global Const $mem_release = 32768
- Global Const $tagmemmap = "handle hProc;ulong_ptr Size;ptr Mem"
- Func _memfree(ByRef $tmemmap)
- Local $pmemory = DllStructGetData($tmemmap, "Mem")
- Local $hprocess = DllStructGetData($tmemmap, "hProc")
- Local $bresult = _memvirtualfreeex($hprocess, $pmemory, 0, $mem_release)
- DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $hprocess)
- If @error Then Return SetError(@error, @extended, False)
- Return $bresult
- EndFunc
- Func _memglobalalloc($ibytes, $iflags = 0)
- Local $aresult = DllCall("kernel32.dll", "handle", "GlobalAlloc", "uint", $iflags, "ulong_ptr", $ibytes)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _memglobalfree($hmem)
- Local $aresult = DllCall("kernel32.dll", "ptr", "GlobalFree", "handle", $hmem)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _memgloballock($hmem)
- Local $aresult = DllCall("kernel32.dll", "ptr", "GlobalLock", "handle", $hmem)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _memglobalsize($hmem)
- Local $aresult = DllCall("kernel32.dll", "ulong_ptr", "GlobalSize", "handle", $hmem)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _memglobalunlock($hmem)
- Local $aresult = DllCall("kernel32.dll", "bool", "GlobalUnlock", "handle", $hmem)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _meminit($hwnd, $isize, ByRef $tmemmap)
- Local $aresult = DllCall("User32.dll", "dword", "GetWindowThreadProcessId", "hwnd", $hwnd, "dword*", 0)
- If @error Then Return SetError(@error, @extended, 0)
- Local $iprocessid = $aresult[2]
- If $iprocessid = 0 Then Return SetError(1, 0, 0)
- Local $iaccess = BitOR($process_vm_operation, $process_vm_read, $process_vm_write)
- Local $hprocess = __mem_openprocess($iaccess, False, $iprocessid, True)
- Local $ialloc = BitOR($mem_reserve, $mem_commit)
- Local $pmemory = _memvirtualallocex($hprocess, 0, $isize, $ialloc, $page_readwrite)
- If $pmemory = 0 Then Return SetError(2, 0, 0)
- $tmemmap = DllStructCreate($tagmemmap)
- DllStructSetData($tmemmap, "hProc", $hprocess)
- DllStructSetData($tmemmap, "Size", $isize)
- DllStructSetData($tmemmap, "Mem", $pmemory)
- Return $pmemory
- EndFunc
- Func _memmovememory($psource, $pdest, $ilength)
- DllCall("kernel32.dll", "none", "RtlMoveMemory", "ptr", $pdest, "ptr", $psource, "ulong_ptr", $ilength)
- If @error Then Return SetError(@error, @extended)
- EndFunc
- Func _memread(ByRef $tmemmap, $psrce, $pdest, $isize)
- Local $aresult = DllCall("kernel32.dll", "bool", "ReadProcessMemory", "handle", DllStructGetData($tmemmap, "hProc"), "ptr", $psrce, "ptr", $pdest, "ulong_ptr", $isize, "ulong_ptr*", 0)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _memwrite(ByRef $tmemmap, $psrce, $pdest = 0, $isize = 0, $ssrce = "ptr")
- If $pdest = 0 Then $pdest = DllStructGetData($tmemmap, "Mem")
- If $isize = 0 Then $isize = DllStructGetData($tmemmap, "Size")
- Local $aresult = DllCall("kernel32.dll", "bool", "WriteProcessMemory", "handle", DllStructGetData($tmemmap, "hProc"), "ptr", $pdest, $ssrce, $psrce, "ulong_ptr", $isize, "ulong_ptr*", 0)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _memvirtualalloc($paddress, $isize, $iallocation, $iprotect)
- Local $aresult = DllCall("kernel32.dll", "ptr", "VirtualAlloc", "ptr", $paddress, "ulong_ptr", $isize, "dword", $iallocation, "dword", $iprotect)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _memvirtualallocex($hprocess, $paddress, $isize, $iallocation, $iprotect)
- Local $aresult = DllCall("kernel32.dll", "ptr", "VirtualAllocEx", "handle", $hprocess, "ptr", $paddress, "ulong_ptr", $isize, "dword", $iallocation, "dword", $iprotect)
- If @error Then Return SetError(@error, @extended, 0)
- Return $aresult[0]
- EndFunc
- Func _memvirtualfree($paddress, $isize, $ifreetype)
- Local $aresult = DllCall("kernel32.dll", "bool", "VirtualFree", "ptr", $paddress, "ulong_ptr", $isize, "dword", $ifreetype)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func _memvirtualfreeex($hprocess, $paddress, $isize, $ifreetype)
- Local $aresult = DllCall("kernel32.dll", "bool", "VirtualFreeEx", "handle", $hprocess, "ptr", $paddress, "ulong_ptr", $isize, "dword", $ifreetype)
- If @error Then Return SetError(@error, @extended, False)
- Return $aresult[0]
- EndFunc
- Func __mem_openprocess($iaccess, $finherit, $iprocessid, $fdebugpriv = False)
- Local $aresult = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $iaccess, "bool", $finherit, "dword", $iprocessid)
- If @error Then Return SetError(@error, @extended, 0)
- If $aresult[0] Then Return $aresult[0]
- If NOT $fdebugpriv Then Return 0
- Local $htoken = _security__openthreadtokenex(BitOR($token_adjust_privileges, $token_query))
- If @error Then Return SetError(@error, @extended, 0)
- _security__setprivilege($htoken, "SeDebugPrivilege", True)
- Local $ierror = @error
- Local $ilasterror = @extended
- Local $iret = 0
- If NOT @error Then
- $aresult = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $iaccess, "bool", $finherit, "dword", $iprocessid)
- $ierror = @error
- $ilasterror = @extended
- If $aresult[0] Then $iret = $aresult[0]
- _security__setprivilege($htoken, "SeDebugPrivilege", False)
- If @error Then
- $ierror = @error
- $ilasterror = @extended
- EndIf
- EndIf
- DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $htoken)
- Return SetError($ierror, $ilasterror, $iret)
- EndFunc
- Global Const $_udf_globalids_offset = 2
- Global Const $_udf_globalid_max_win = 16
- Global Const $_udf_startid = 10000
- Global Const $_udf_globalid_max_ids = 55535
- Global Const $__udfguiconstant_ws_visible = 268435456
- Global Const $__udfguiconstant_ws_child = 1073741824
- Global $_udf_globalids_used[$_udf_globalid_max_win][$_udf_globalid_max_ids + $_udf_globalids_offset + 1]
- Func __udf_getnextglobalid($hwnd)
- Local $nctrlid, $iusedindex = -1, $fallused = True
- If NOT WinExists($hwnd) Then Return SetError(-1, -1, 0)
- For $iindex = 0 To $_udf_globalid_max_win - 1
- If $_udf_globalids_used[$iindex][0] <> 0 Then
- If NOT WinExists($_udf_globalids_used[$iindex][0]) Then
- For $x = 0 To UBound($_udf_globalids_used, 2) - 1
- $_udf_globalids_used[$iindex][$x] = 0
- Next
- $_udf_globalids_used[$iindex][1] = $_udf_startid
- $fallused = False
- EndIf
- EndIf
- Next
- For $iindex = 0 To $_udf_globalid_max_win - 1
- If $_udf_globalids_used[$iindex][0] = $hwnd Then
- $iusedindex = $iindex
- ExitLoop
- EndIf
- Next
- If $iusedindex = -1 Then
- For $iindex = 0 To $_udf_globalid_max_win - 1
- If $_udf_globalids_used[$iindex][0] = 0 Then
- $_udf_globalids_used[$iindex][0] = $hwnd
- $_udf_globalids_used[$iindex][1] = $_udf_startid
- $fallused = False
- $iusedindex = $iindex
- ExitLoop
- EndIf
- Next
- EndIf
- If $iusedindex = -1 AND $fallused Then Return SetError(16, 0, 0)
- If $_udf_globalids_used[$iusedindex][1] = $_udf_startid + $_udf_globalid_max_ids Then
- For $iidindex = $_udf_globalids_offset To UBound($_udf_globalids_used, 2) - 1
- If $_udf_globalids_used[$iusedindex][$iidindex] = 0 Then
- $nctrlid = ($iidindex - $_udf_globalids_offset) + 10000
- $_udf_globalids_used[$iusedindex][$iidindex] = $nctrlid
- Return $nctrlid
- EndIf
- Next
- Return SetError(-1, $_udf_globalid_max_ids, 0)
- EndIf
- $nctrlid = $_udf_globalids_used[$iusedindex][1]
- $_udf_globalids_used[$iusedindex][1] += 1
- $_udf_globalids_used[$iusedindex][($nctrlid - 10000) + $_udf_globalids_offset] = $nctrlid
- Return $nctrlid
- EndFunc
- Func __udf_freeglobalid($hwnd, $iglobalid)
- If $iglobalid - $_udf_startid < 0 OR $iglobalid - $_udf_startid > $_udf_globalid_max_ids Then Return SetError(-1, 0, False)
- For $iindex = 0 To $_udf_globalid_max_win - 1
- If $_udf_globalids_used[$iindex][0] = $hwnd Then
- For $x = $_udf_globalids_offset To UBound($_udf_globalids_used, 2) - 1
- If $_udf_globalids_used[$iindex][$x] = $iglobalid Then
- $_udf_globalids_used[$iindex][$x] = 0
- Return True
- EndIf
- Next
- Return SetError(-3, 0, False)
- EndIf
- Next
- Return SetError(-2, 0, False)
- EndFunc
- Func __udf_debugprint($stext, $iline = @ScriptLineNumber, $err = @error, $ext = @extended)
- ConsoleWrite("!===========================================================" & @CRLF & "+======================================================" & @CRLF & "-->Line(" & StringFormat("%04d", $iline) & "):" & @TAB & $stext & @CRLF & "+======================================================" & @CRLF)
- Return SetError($err, $ext, 1)
- EndFunc
- Func __udf_validateclassname($hwnd, $sclassnames)
- __udf_debugprint("This is for debugging only, set the debug variable to false before submitting")
- If _winapi_isclassname($hwnd, $sclassnames) Then Return True
- Local $sseparator = Opt("GUIDataSeparatorChar")
- $sclassnames = StringReplace($sclassnames, $sseparator, ",")
- __udf_debugprint("Invalid Class Type(s):" & @LF & @TAB & "Expecting Type(s): " & $sclassnames & @LF & @TAB & "Received Type : " & _winapi_getclassname($hwnd))
- Exit
- EndFunc
- Global $__ghsblastwnd
- Global $debug_sb = False
- Global Const $__statusbarconstant_classname = "msctls_statusbar32"
- Global Const $__statusbarconstant_wm_size = 5
- Global Const $__statusbarconstant_clr_default = -16777216
- Global Const $tagborders = "int BX;int BY;int RX"
- Func _guictrlstatusbar_create($hwnd, $vpartedge = -1, $vparttext = "", $istyles = -1, $iexstyles = -1)
- If NOT IsHWnd($hwnd) Then Return SetError(1, 0, 0)
- Local $istyle = BitOR($__udfguiconstant_ws_child, $__udfguiconstant_ws_visible)
- If $istyles = -1 Then $istyles = 0
- If $iexstyles = -1 Then $iexstyles = 0
- Local $apartwidth[1], $aparttext[1]
- If @NumParams > 1 Then
- If IsArray($vpartedge) Then
- $apartwidth = $vpartedge
- Else
- $apartwidth[0] = $vpartedge
- EndIf
- If @NumParams = 2 Then
- ReDim $aparttext[UBound($apartwidth)]
- Else
- If IsArray($vparttext) Then
- $aparttext = $vparttext
- Else
- $aparttext[0] = $vparttext
- EndIf
- If UBound($apartwidth) <> UBound($aparttext) Then
- Local $ilast
- If UBound($apartwidth) > UBound($aparttext) Then
- $ilast = UBound($aparttext)
- ReDim $aparttext[UBound($apartwidth)]
- For $x = $ilast To UBound($aparttext) - 1
- $apartwidth[$x] = ""
- Next
- Else
- $ilast = UBound($apartwidth)
- ReDim $apartwidth[UBound($aparttext)]
- For $x = $ilast To UBound($apartwidth) - 1
- $apartwidth[$x] = $apartwidth[$x - 1] + 75
- Next
- $apartwidth[UBound($aparttext) - 1] = -1
- EndIf
- EndIf
- EndIf
- If NOT IsHWnd($hwnd) Then $hwnd = HWnd($hwnd)
- If @NumParams > 3 Then $istyle = BitOR($istyle, $istyles)
- EndIf
- Local $nctrlid = __udf_getnextglobalid($hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Local $hwndsbar = _winapi_createwindowex($iexstyles, $__statusbarconstant_classname, "", $istyle, 0, 0, 0, 0, $hwnd, $nctrlid)
- If @error Then Return SetError(@error, @extended, 0)
- If @NumParams > 1 Then
- _guictrlstatusbar_setparts($hwndsbar, UBound($apartwidth), $apartwidth)
- For $x = 0 To UBound($aparttext) - 1
- _guictrlstatusbar_settext($hwndsbar, $aparttext[$x], $x)
- Next
- EndIf
- Return $hwndsbar
- EndFunc
- Func _guictrlstatusbar_destroy(ByRef $hwnd)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- If NOT _winapi_isclassname($hwnd, $__statusbarconstant_classname) Then Return SetError(2, 2, False)
- Local $destroyed = 0
- If IsHWnd($hwnd) Then
- If _winapi_inprocess($hwnd, $__ghsblastwnd) Then
- Local $nctrlid = _winapi_getdlgctrlid($hwnd)
- Local $hparent = _winapi_getparent($hwnd)
- $destroyed = _winapi_destroywindow($hwnd)
- Local $iret = __udf_freeglobalid($hparent, $nctrlid)
- If NOT $iret Then
- EndIf
- Else
- Return SetError(1, 1, False)
- EndIf
- EndIf
- If $destroyed Then $hwnd = 0
- Return $destroyed <> 0
- EndFunc
- Func _guictrlstatusbar_embedcontrol($hwnd, $ipart, $hcontrol, $ifit = 4)
- Local $arect = _guictrlstatusbar_getrect($hwnd, $ipart)
- Local $ibarx = $arect[0]
- Local $ibary = $arect[1]
- Local $ibarw = $arect[2] - $ibarx
- Local $ibarh = $arect[3] - $ibary
- Local $iconx = $ibarx
- Local $icony = $ibary
- Local $iconw = _winapi_getwindowwidth($hcontrol)
- Local $iconh = _winapi_getwindowheight($hcontrol)
- If $iconw > $ibarw Then $iconw = $ibarw
- If $iconh > $ibarh Then $iconh = $ibarh
- Local $ipadx = ($ibarw - $iconw) / 2
- Local $ipady = ($ibarh - $iconh) / 2
- If $ipadx < 0 Then $ipadx = 0
- If $ipady < 0 Then $ipady = 0
- If BitAND($ifit, 1) = 1 Then $iconx = $ibarx + $ipadx
- If BitAND($ifit, 2) = 2 Then $icony = $ibary + $ipady
- If BitAND($ifit, 4) = 4 Then
- $ipadx = _guictrlstatusbar_getbordersrect($hwnd)
- $ipady = _guictrlstatusbar_getbordersvert($hwnd)
- $iconx = $ibarx
- If _guictrlstatusbar_issimple($hwnd) Then $iconx += $ipadx
- $icony = $ibary + $ipady
- $iconw = $ibarw - ($ipadx * 2)
- $iconh = $ibarh - ($ipady * 2)
- EndIf
- _winapi_setparent($hcontrol, $hwnd)
- _winapi_movewindow($hcontrol, $iconx, $icony, $iconw, $iconh)
- EndFunc
- Func _guictrlstatusbar_getborders($hwnd)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Local $tborders = DllStructCreate($tagborders)
- Local $pborders = DllStructGetPtr($tborders)
- Local $iret
- If _winapi_inprocess($hwnd, $__ghsblastwnd) Then
- $iret = _sendmessage($hwnd, $sb_getborders, 0, $pborders, 0, "wparam", "ptr")
- Else
- Local $isize = DllStructGetSize($tborders)
- Local $tmemmap
- Local $pmemory = _meminit($hwnd, $isize, $tmemmap)
- $iret = _sendmessage($hwnd, $sb_getborders, 0, $pmemory, 0, "wparam", "ptr")
- _memread($tmemmap, $pmemory, $pborders, $isize)
- _memfree($tmemmap)
- EndIf
- Local $aborders[3]
- If $iret = 0 Then Return SetError(-1, -1, $aborders)
- $aborders[0] = DllStructGetData($tborders, "BX")
- $aborders[1] = DllStructGetData($tborders, "BY")
- $aborders[2] = DllStructGetData($tborders, "RX")
- Return $aborders
- EndFunc
- Func _guictrlstatusbar_getbordershorz($hwnd)
- Local $aborders = _guictrlstatusbar_getborders($hwnd)
- Return SetError(@error, @extended, $aborders[0])
- EndFunc
- Func _guictrlstatusbar_getbordersrect($hwnd)
- Local $aborders = _guictrlstatusbar_getborders($hwnd)
- Return SetError(@error, @extended, $aborders[2])
- EndFunc
- Func _guictrlstatusbar_getbordersvert($hwnd)
- Local $aborders = _guictrlstatusbar_getborders($hwnd)
- Return SetError(@error, @extended, $aborders[1])
- EndFunc
- Func _guictrlstatusbar_getcount($hwnd)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Return _sendmessage($hwnd, $sb_getparts)
- EndFunc
- Func _guictrlstatusbar_getheight($hwnd)
- Local $trect = _guictrlstatusbar_getrectex($hwnd, 0)
- Return DllStructGetData($trect, "Bottom") - DllStructGetData($trect, "Top") - (_guictrlstatusbar_getbordersvert($hwnd) * 2)
- EndFunc
- Func _guictrlstatusbar_geticon($hwnd, $iindex = 0)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Return _sendmessage($hwnd, $sb_geticon, $iindex, 0, 0, "wparam", "lparam", "hwnd")
- EndFunc
- Func _guictrlstatusbar_getparts($hwnd)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Local $icount = _guictrlstatusbar_getcount($hwnd)
- Local $tparts = DllStructCreate("int[" & $icount & "]")
- Local $pparts = DllStructGetPtr($tparts)
- Local $aparts[$icount + 1]
- If _winapi_inprocess($hwnd, $__ghsblastwnd) Then
- $aparts[0] = _sendmessage($hwnd, $sb_getparts, $icount, $pparts, 0, "wparam", "ptr")
- Else
- Local $iparts = DllStructGetSize($tparts)
- Local $tmemmap
- Local $pmemory = _meminit($hwnd, $iparts, $tmemmap)
- $aparts[0] = _sendmessage($hwnd, $sb_getparts, $icount, $pmemory, 0, "wparam", "ptr")
- _memread($tmemmap, $pmemory, $pparts, $iparts)
- _memfree($tmemmap)
- EndIf
- For $ii = 1 To $icount
- $aparts[$ii] = DllStructGetData($tparts, 1, $ii)
- Next
- Return $aparts
- EndFunc
- Func _guictrlstatusbar_getrect($hwnd, $ipart)
- Local $trect = _guictrlstatusbar_getrectex($hwnd, $ipart)
- If @error Then Return SetError(@error, 0, 0)
- Local $arect[4]
- $arect[0] = DllStructGetData($trect, "Left")
- $arect[1] = DllStructGetData($trect, "Top")
- $arect[2] = DllStructGetData($trect, "Right")
- $arect[3] = DllStructGetData($trect, "Bottom")
- Return $arect
- EndFunc
- Func _guictrlstatusbar_getrectex($hwnd, $ipart)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Local $trect = DllStructCreate($tagrect)
- Local $prect = DllStructGetPtr($trect)
- Local $iret
- If _winapi_inprocess($hwnd, $__ghsblastwnd) Then
- $iret = _sendmessage($hwnd, $sb_getrect, $ipart, $prect, 0, "wparam", "ptr")
- Else
- Local $irect = DllStructGetSize($trect)
- Local $tmemmap
- Local $pmemory = _meminit($hwnd, $irect, $tmemmap)
- $iret = _sendmessage($hwnd, $sb_getrect, $ipart, $pmemory, 0, "wparam", "ptr")
- _memread($tmemmap, $pmemory, $prect, $irect)
- _memfree($tmemmap)
- EndIf
- Return SetError($iret = 0, 0, $trect)
- EndFunc
- Func _guictrlstatusbar_gettext($hwnd, $ipart)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Local $funicode = _guictrlstatusbar_getunicodeformat($hwnd)
- Local $ibuffer = _guictrlstatusbar_gettextlength($hwnd, $ipart)
- If $ibuffer = 0 Then Return SetError(1, 0, "")
- Local $tbuffer
- If $funicode Then
- $tbuffer = DllStructCreate("wchar Text[" & $ibuffer & "]")
- $ibuffer *= 2
- Else
- $tbuffer = DllStructCreate("char Text[" & $ibuffer & "]")
- EndIf
- Local $pbuffer = DllStructGetPtr($tbuffer)
- If _winapi_inprocess($hwnd, $__ghsblastwnd) Then
- _sendmessage($hwnd, $sb_gettextw, $ipart, $pbuffer, 0, "wparam", "ptr")
- Else
- Local $tmemmap
- Local $pmemory = _meminit($hwnd, $ibuffer, $tmemmap)
- If $funicode Then
- _sendmessage($hwnd, $sb_gettextw, $ipart, $pmemory, 0, "wparam", "ptr")
- Else
- _sendmessage($hwnd, $sb_gettext, $ipart, $pmemory, 0, "wparam", "ptr")
- EndIf
- _memread($tmemmap, $pmemory, $pbuffer, $ibuffer)
- _memfree($tmemmap)
- EndIf
- Return DllStructGetData($tbuffer, "Text")
- EndFunc
- Func _guictrlstatusbar_gettextflags($hwnd, $ipart)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- If _guictrlstatusbar_getunicodeformat($hwnd) Then
- Return _sendmessage($hwnd, $sb_gettextlengthw, $ipart)
- Else
- Return _sendmessage($hwnd, $sb_gettextlength, $ipart)
- EndIf
- EndFunc
- Func _guictrlstatusbar_gettextlength($hwnd, $ipart)
- Return _winapi_loword(_guictrlstatusbar_gettextflags($hwnd, $ipart))
- EndFunc
- Func _guictrlstatusbar_gettextlengthex($hwnd, $ipart)
- Return _winapi_hiword(_guictrlstatusbar_gettextflags($hwnd, $ipart))
- EndFunc
- Func _guictrlstatusbar_gettiptext($hwnd, $ipart)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Local $funicode = _guictrlstatusbar_getunicodeformat($hwnd)
- Local $tbuffer
- If $funicode Then
- $tbuffer = DllStructCreate("wchar Text[4096]")
- Else
- $tbuffer = DllStructCreate("char Text[4096]")
- EndIf
- Local $pbuffer = DllStructGetPtr($tbuffer)
- If _winapi_inprocess($hwnd, $__ghsblastwnd) Then
- _sendmessage($hwnd, $sb_gettiptextw, _winapi_makelong($ipart, 4096), $pbuffer, 0, "wparam", "ptr")
- Else
- Local $tmemmap
- Local $pmemory = _meminit($hwnd, 4096, $tmemmap)
- If $funicode Then
- _sendmessage($hwnd, $sb_gettiptextw, _winapi_makelong($ipart, 4096), $pmemory, 0, "wparam", "ptr")
- Else
- _sendmessage($hwnd, $sb_gettiptexta, _winapi_makelong($ipart, 4096), $pmemory, 0, "wparam", "ptr")
- EndIf
- _memread($tmemmap, $pmemory, $pbuffer, 4096)
- _memfree($tmemmap)
- EndIf
- Return DllStructGetData($tbuffer, "Text")
- EndFunc
- Func _guictrlstatusbar_getunicodeformat($hwnd)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Return _sendmessage($hwnd, $sb_getunicodeformat) <> 0
- EndFunc
- Func _guictrlstatusbar_getwidth($hwnd, $ipart)
- Local $trect = _guictrlstatusbar_getrectex($hwnd, $ipart)
- Return DllStructGetData($trect, "Right") - DllStructGetData($trect, "Left") - (_guictrlstatusbar_getbordershorz($hwnd) * 2)
- EndFunc
- Func _guictrlstatusbar_issimple($hwnd)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Return _sendmessage($hwnd, $sb_issimple) <> 0
- EndFunc
- Func _guictrlstatusbar_resize($hwnd)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- _sendmessage($hwnd, $__statusbarconstant_wm_size)
- EndFunc
- Func _guictrlstatusbar_setbkcolor($hwnd, $icolor)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- $icolor = _sendmessage($hwnd, $sb_setbkcolor, 0, $icolor)
- If $icolor = $__statusbarconstant_clr_default Then Return "0x" & Hex($__statusbarconstant_clr_default)
- Return $icolor
- EndFunc
- Func _guictrlstatusbar_seticon($hwnd, $ipart, $hicon = -1, $siconfile = "")
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- If $hicon = -1 Then Return _sendmessage($hwnd, $sb_seticon, $ipart, $hicon, 0, "wparam", "handle") <> 0
- If StringLen($siconfile) <= 0 Then Return _sendmessage($hwnd, $sb_seticon, $ipart, $hicon) <> 0
- Local $ticon = DllStructCreate("handle")
- Local $vresult = DllCall("shell32.dll", "uint", "ExtractIconExW", "wstr", $siconfile, "int", $hicon, "ptr", 0, "ptr", DllStructGetPtr($ticon), "uint", 1)
- If @error Then Return SetError(@error, @extended, False)
- $vresult = $vresult[0]
- If $vresult > 0 Then $vresult = _sendmessage($hwnd, $sb_seticon, $ipart, DllStructGetData($ticon, 1), 0, "wparam", "handle")
- DllCall("user32.dll", "bool", "DestroyIcon", "handle", DllStructGetData($ticon, 1))
- Return $vresult
- EndFunc
- Func _guictrlstatusbar_setminheight($hwnd, $iminheight)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- _sendmessage($hwnd, $sb_setminheight, $iminheight)
- _guictrlstatusbar_resize($hwnd)
- EndFunc
- Func _guictrlstatusbar_setparts($hwnd, $iaparts = -1, $iapartwidth = 25)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Local $tparts, $iparts = 1
- If IsArray($iaparts) <> 0 Then
- $iaparts[UBound($iaparts) - 1] = -1
- $iparts = UBound($iaparts)
- $tparts = DllStructCreate("int[" & $iparts & "]")
- For $x = 0 To $iparts - 2
- DllStructSetData($tparts, 1, $iaparts[$x], $x + 1)
- Next
- DllStructSetData($tparts, 1, -1, $iparts)
- ElseIf IsArray($iapartwidth) <> 0 Then
- $iparts = UBound($iapartwidth)
- $tparts = DllStructCreate("int[" & $iparts & "]")
- For $x = 0 To $iparts - 2
- DllStructSetData($tparts, 1, $iapartwidth[$x], $x + 1)
- Next
- DllStructSetData($tparts, 1, -1, $iparts)
- ElseIf $iaparts > 1 Then
- $iparts = $iaparts
- $tparts = DllStructCreate("int[" & $iparts & "]")
- For $x = 1 To $iparts - 1
- DllStructSetData($tparts, 1, $iapartwidth * $x, $x)
- Next
- DllStructSetData($tparts, 1, -1, $iparts)
- Else
- $tparts = DllStructCreate("int")
- DllStructSetData($tparts, $iparts, -1)
- EndIf
- Local $pparts = DllStructGetPtr($tparts)
- If _winapi_inprocess($hwnd, $__ghsblastwnd) Then
- _sendmessage($hwnd, $sb_setparts, $iparts, $pparts, 0, "wparam", "ptr")
- Else
- Local $isize = DllStructGetSize($tparts)
- Local $tmemmap
- Local $pmemory = _meminit($hwnd, $isize, $tmemmap)
- _memwrite($tmemmap, $pparts)
- _sendmessage($hwnd, $sb_setparts, $iparts, $pmemory, 0, "wparam", "ptr")
- _memfree($tmemmap)
- EndIf
- _guictrlstatusbar_resize($hwnd)
- Return True
- EndFunc
- Func _guictrlstatusbar_setsimple($hwnd, $fsimple = True)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- _sendmessage($hwnd, $sb_simple, $fsimple)
- EndFunc
- Func _guictrlstatusbar_settext($hwnd, $stext = "", $ipart = 0, $iuflag = 0)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Local $funicode = _guictrlstatusbar_getunicodeformat($hwnd)
- Local $ibuffer = StringLen($stext) + 1
- Local $ttext
- If $funicode Then
- $ttext = DllStructCreate("wchar Text[" & $ibuffer & "]")
- $ibuffer *= 2
- Else
- $ttext = DllStructCreate("char Text[" & $ibuffer & "]")
- EndIf
- Local $pbuffer = DllStructGetPtr($ttext)
- DllStructSetData($ttext, "Text", $stext)
- If _guictrlstatusbar_issimple($hwnd) Then $ipart = $sb_simpleid
- Local $iret
- If _winapi_inprocess($hwnd, $__ghsblastwnd) Then
- $iret = _sendmessage($hwnd, $sb_settextw, BitOR($ipart, $iuflag), $pbuffer, 0, "wparam", "ptr")
- Else
- Local $tmemmap
- Local $pmemory = _meminit($hwnd, $ibuffer, $tmemmap)
- _memwrite($tmemmap, $pbuffer)
- If $funicode Then
- $iret = _sendmessage($hwnd, $sb_settextw, BitOR($ipart, $iuflag), $pmemory, 0, "wparam", "ptr")
- Else
- $iret = _sendmessage($hwnd, $sb_settext, BitOR($ipart, $iuflag), $pmemory, 0, "wparam", "ptr")
- EndIf
- _memfree($tmemmap)
- EndIf
- Return $iret <> 0
- EndFunc
- Func _guictrlstatusbar_settiptext($hwnd, $ipart, $stext)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Local $funicode = _guictrlstatusbar_getunicodeformat($hwnd)
- Local $ibuffer = StringLen($stext) + 1
- Local $ttext
- If $funicode Then
- $ttext = DllStructCreate("wchar TipText[" & $ibuffer & "]")
- $ibuffer *= 2
- Else
- $ttext = DllStructCreate("char TipText[" & $ibuffer & "]")
- EndIf
- Local $pbuffer = DllStructGetPtr($ttext)
- DllStructSetData($ttext, "TipText", $stext)
- If _winapi_inprocess($hwnd, $__ghsblastwnd) Then
- _sendmessage($hwnd, $sb_settiptextw, $ipart, $pbuffer, 0, "wparam", "ptr")
- Else
- Local $tmemmap
- Local $pmemory = _meminit($hwnd, $ibuffer, $tmemmap)
- _memwrite($tmemmap, $pbuffer, $pmemory, $ibuffer)
- If $funicode Then
- _sendmessage($hwnd, $sb_settiptextw, $ipart, $pmemory, 0, "wparam", "ptr")
- Else
- _sendmessage($hwnd, $sb_settiptexta, $ipart, $pmemory, 0, "wparam", "ptr")
- EndIf
- _memfree($tmemmap)
- EndIf
- EndFunc
- Func _guictrlstatusbar_setunicodeformat($hwnd, $funicode = True)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- Return _sendmessage($hwnd, $sb_setunicodeformat, $funicode)
- EndFunc
- Func _guictrlstatusbar_showhide($hwnd, $istate)
- If $debug_sb Then __udf_validateclassname($hwnd, $__statusbarconstant_classname)
- If $istate <> @SW_HIDE AND $istate <> @SW_SHOW Then Return SetError(1, 1, False)
- Return _winapi_showwindow($hwnd, $istate)
- EndFunc
- Global $_gheditlastwnd
- Global $debug_ed = False
- Global Const $__editconstant_classname = "Edit"
- Global Const $__editconstant_gui_checked = 1
- Global Const $__editconstant_gui_hide = 32
- Global Const $__editconstant_gui_event_close = -3
- Global Const $__editconstant_gui_enable = 64
- Global Const $__editconstant_gui_disable = 128
- Global Const $__editconstant_ss_center = 1
- Global Const $__editconstant_wm_setredraw = 11
- Global Const $__editconstant_ws_caption = 12582912
- Global Const $__editconstant_ws_popup = -2147483648
- Global Const $__editconstant_ws_tabstop = 65536
- Global Const $__editconstant_ws_sysmenu = 524288
- Global Const $__editconstant_ws_minimizebox = 131072
- Global Const $__editconstant_default_gui_font = 17
- Global Const $__editconstant_wm_setfont = 48
- Global Const $__editconstant_wm_gettextlength = 14
- Global Const $__editconstant_wm_gettext = 13
- Global Const $__editconstant_wm_settext = 12
- Global Const $__editconstant_sb_lineup = 0
- Global Const $__editconstant_sb_linedown = 1
- Global Const $__editconstant_sb_pagedown = 3
- Global Const $__editconstant_sb_pageup = 2
- Global Const $__editconstant_sb_scrollcaret = 4
- Global Const $tageditballoontip = "dword Size;ptr Title;ptr Text;int Icon"
- Func _guictrledit_appendtext($hwnd, $stext)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $ilength = _guictrledit_gettextlen($hwnd)
- _guictrledit_setsel($hwnd, $ilength, $ilength)
- _sendmessage($hwnd, $em_replacesel, True, $stext, 0, "wparam", "wstr")
- EndFunc
- Func _guictrledit_beginupdate($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $__editconstant_wm_setredraw) = 0
- EndFunc
- Func _guictrledit_canundo($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_canundo) <> 0
- EndFunc
- Func _guictrledit_charfrompos($hwnd, $ix, $iy)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $areturn[2]
- Local $iret = _sendmessage($hwnd, $em_charfrompos, 0, _winapi_makelong($ix, $iy))
- $areturn[0] = _winapi_loword($iret)
- $areturn[1] = _winapi_hiword($iret)
- Return $areturn
- EndFunc
- Func _guictrledit_create($hwnd, $stext, $ix, $iy, $iwidth = 150, $iheight = 150, $istyle = 3150020, $iexstyle = 512)
- If NOT IsHWnd($hwnd) Then Return SetError(1, 0, 0)
- If NOT IsString($stext) Then Return SetError(2, 0, 0)
- If $iwidth = -1 Then $iwidth = 150
- If $iheight = -1 Then $iheight = 150
- If $istyle = -1 Then $istyle = 3150020
- If $iexstyle = -1 Then $iexstyle = 512
- If BitAND($istyle, $es_readonly) = $es_readonly Then
- $istyle = BitOR($__udfguiconstant_ws_child, $__udfguiconstant_ws_visible, $istyle)
- Else
- $istyle = BitOR($__udfguiconstant_ws_child, $__udfguiconstant_ws_visible, $__editconstant_ws_tabstop, $istyle)
- EndIf
- Local $nctrlid = __udf_getnextglobalid($hwnd)
- If @error Then Return SetError(@error, @extended, 0)
- Local $hedit = _winapi_createwindowex($iexstyle, $__editconstant_classname, "", $istyle, $ix, $iy, $iwidth, $iheight, $hwnd, $nctrlid)
- _sendmessage($hedit, $__editconstant_wm_setfont, _winapi_getstockobject($__editconstant_default_gui_font), True)
- _guictrledit_settext($hedit, $stext)
- _guictrledit_setlimittext($hedit, 0)
- Return $hedit
- EndFunc
- Func _guictrledit_destroy(ByRef $hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT _winapi_isclassname($hwnd, $__editconstant_classname) Then Return SetError(2, 2, False)
- Local $destroyed = 0
- If IsHWnd($hwnd) Then
- If _winapi_inprocess($hwnd, $_gheditlastwnd) Then
- Local $nctrlid = _winapi_getdlgctrlid($hwnd)
- Local $hparent = _winapi_getparent($hwnd)
- $destroyed = _winapi_destroywindow($hwnd)
- Local $iret = __udf_freeglobalid($hparent, $nctrlid)
- If NOT $iret Then
- EndIf
- Else
- Return SetError(1, 1, False)
- EndIf
- Else
- $destroyed = GUICtrlDelete($hwnd)
- EndIf
- If $destroyed Then $hwnd = 0
- Return $destroyed <> 0
- EndFunc
- Func _guictrledit_emptyundobuffer($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- _sendmessage($hwnd, $em_emptyundobuffer)
- EndFunc
- Func _guictrledit_endupdate($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $__editconstant_wm_setredraw, 1) = 0
- EndFunc
- Func _guictrledit_fmtlines($hwnd, $fsoftbreak = False)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_fmtlines, $fsoftbreak)
- EndFunc
- Func _guictrledit_find($hwnd, $freplace = False)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $ipos = 0, $icase, $ioccurance = 0, $ireplacements = 0
- Local $apartsrightedge[3] = [125, 225, -1]
- Local $oldmode = Opt("GUIOnEventMode", 0)
- Local $asel = _guictrledit_getsel($hwnd)
- Local $stext = _guictrledit_gettext($hwnd)
- Local $guisearch = GUICreate("Find", 349, 177, -1, -1, BitOR($__udfguiconstant_ws_child, $__editconstant_ws_minimizebox, $__editconstant_ws_caption, $__editconstant_ws_popup, $__editconstant_ws_sysmenu))
- Local $statusbar1 = _guictrlstatusbar_create($guisearch, $apartsrightedge)
- _guictrlstatusbar_settext($statusbar1, "Find: ")
- GUISetIcon(@SystemDir & "\shell32.dll", 22, $guisearch)
- GUICtrlCreateLabel("Find what:", 9, 10, 53, 16, $__editconstant_ss_center)
- Local $inputsearch = GUICtrlCreateInput("", 80, 8, 257, 21)
- Local $lblreplace = GUICtrlCreateLabel("Replace with:", 9, 42, 69, 17, $__editconstant_ss_center)
- Local $inputreplace = GUICtrlCreateInput("", 80, 40, 257, 21)
- Local $chkwholeonly = GUICtrlCreateCheckbox("Match whole word only", 9, 72, 145, 17)
- Local $chkmatchcase = GUICtrlCreateCheckbox("Match case", 9, 96, 145, 17)
- Local $btnfindnext = GUICtrlCreateButton("Find Next", 168, 72, 161, 21, 0)
- Local $btnreplace = GUICtrlCreateButton("Replace", 168, 96, 161, 21, 0)
- Local $btnclose = GUICtrlCreateButton("Close", 104, 130, 161, 21, 0)
- If (IsArray($asel) AND $asel <> $ec_err) Then
- GUICtrlSetData($inputsearch, StringMid($stext, $asel[0] + 1, $asel[1] - $asel[0]))
- If $asel[0] <> $asel[1] Then
- $ipos = $asel[0]
- If BitAND(GUICtrlRead($chkmatchcase), $__editconstant_gui_checked) = $__editconstant_gui_checked Then $icase = 1
- $ioccurance = 1
- Local $itpose
- While 1
- $itpose = StringInStr($stext, GUICtrlRead($inputsearch), $icase, $ioccurance)
- If NOT $itpose Then
- $ioccurance = 0
- ExitLoop
- ElseIf $itpose = $ipos + 1 Then
- ExitLoop
- EndIf
- $ioccurance += 1
- WEnd
- EndIf
- _guictrlstatusbar_settext($statusbar1, "Find: " & GUICtrlRead($inputsearch))
- EndIf
- If $freplace = False Then
- GUICtrlSetState($lblreplace, $__editconstant_gui_hide)
- GUICtrlSetState($inputreplace, $__editconstant_gui_hide)
- GUICtrlSetState($btnreplace, $__editconstant_gui_hide)
- Else
- _guictrlstatusbar_settext($statusbar1, "Replacements: " & $ireplacements, 1)
- _guictrlstatusbar_settext($statusbar1, "With: ", 2)
- EndIf
- GUISetState(@SW_SHOW)
- Local $msgfind
- While 1
- $msgfind = GUIGetMsg()
- Select
- Case $msgfind = $__editconstant_gui_event_close OR $msgfind = $btnclose
- ExitLoop
- Case $msgfind = $btnfindnext
- GUICtrlSetState($btnfindnext, $__editconstant_gui_disable)
- GUICtrlSetCursor($btnfindnext, 15)
- Sleep(100)
- _guictrlstatusbar_settext($statusbar1, "Find: " & GUICtrlRead($inputsearch))
- If $freplace = True Then
- _guictrlstatusbar_settext($statusbar1, "Find: " & GUICtrlRead($inputsearch))
- _guictrlstatusbar_settext($statusbar1, "With: " & GUICtrlRead($inputreplace), 2)
- EndIf
- __guictrledit_findtext($hwnd, $inputsearch, $chkmatchcase, $chkwholeonly, $ipos, $ioccurance, $ireplacements)
- Sleep(100)
- GUICtrlSetState($btnfindnext, $__editconstant_gui_enable)
- GUICtrlSetCursor($btnfindnext, 2)
- Case $msgfind = $btnreplace
- GUICtrlSetState($btnreplace, $__editconstant_gui_disable)
- GUICtrlSetCursor($btnreplace, 15)
- Sleep(100)
- _guictrlstatusbar_settext($statusbar1, "Find: " & GUICtrlRead($inputsearch))
- _guictrlstatusbar_settext($statusbar1, "With: " & GUICtrlRead($inputreplace), 2)
- If $ipos Then
- _guictrledit_replacesel($hwnd, GUICtrlRead($inputreplace))
- $ireplacements += 1
- $ioccurance -= 1
- _guictrlstatusbar_settext($statusbar1, "Replacements: " & $ireplacements, 1)
- EndIf
- __guictrledit_findtext($hwnd, $inputsearch, $chkmatchcase, $chkwholeonly, $ipos, $ioccurance, $ireplacements)
- Sleep(100)
- GUICtrlSetState($btnreplace, $__editconstant_gui_enable)
- GUICtrlSetCursor($btnreplace, 2)
- EndSelect
- WEnd
- GUIDelete($guisearch)
- Opt("GUIOnEventMode", $oldmode)
- EndFunc
- Func __guictrledit_findtext($hwnd, $inputsearch, $chkmatchcase, $chkwholeonly, ByRef $ipos, ByRef $ioccurance, ByRef $ireplacements)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $icase = 0, $iwhole = 0
- Local $fexact = False
- Local $sfind = GUICtrlRead($inputsearch)
- Local $stext = _guictrledit_gettext($hwnd)
- If BitAND(GUICtrlRead($chkmatchcase), $__editconstant_gui_checked) = $__editconstant_gui_checked Then $icase = 1
- If BitAND(GUICtrlRead($chkwholeonly), $__editconstant_gui_checked) = $__editconstant_gui_checked Then $iwhole = 1
- If $sfind <> "" Then
- $ioccurance += 1
- $ipos = StringInStr($stext, $sfind, $icase, $ioccurance)
- If $iwhole AND $ipos Then
- Local $c_compare2 = StringMid($stext, $ipos + StringLen($sfind), 1)
- If $ipos = 1 Then
- If ($ipos + StringLen($sfind)) - 1 = StringLen($stext) OR ($c_compare2 = " " OR $c_compare2 = @LF OR $c_compare2 = @CR OR $c_compare2 = @CRLF OR $c_compare2 = @TAB) Then $fexact = True
- Else
- Local $c_compare1 = StringMid($stext, $ipos - 1, 1)
- If ($ipos + StringLen($sfind)) - 1 = StringLen($stext) Then
- If ($c_compare1 = " " OR $c_compare1 = @LF OR $c_compare1 = @CR OR $c_compare1 = @CRLF OR $c_compare1 = @TAB) Then $fexact = True
- Else
- If ($c_compare1 = " " OR $c_compare1 = @LF OR $c_compare1 = @CR OR $c_compare1 = @CRLF OR $c_compare1 = @TAB) AND ($c_compare2 = " " OR $c_compare2 = @LF OR $c_compare2 = @CR OR $c_compare2 = @CRLF OR $c_compare2 = @TAB) Then $fexact = True
- EndIf
- EndIf
- If $fexact = False Then
- __guictrledit_findtext($hwnd, $inputsearch, $chkmatchcase, $chkwholeonly, $ipos, $ioccurance, $ireplacements)
- Else
- _guictrledit_setsel($hwnd, $ipos - 1, ($ipos + StringLen($sfind)) - 1)
- _guictrledit_scroll($hwnd, $__editconstant_sb_scrollcaret)
- EndIf
- ElseIf $iwhole AND NOT $ipos Then
- $ioccurance = 0
- MsgBox(48, "Find", "Reached End of document, Can not find the string '" & $sfind & "'")
- ElseIf NOT $iwhole Then
- If NOT $ipos Then
- $ioccurance = 1
- _guictrledit_setsel($hwnd, -1, 0)
- _guictrledit_scroll($hwnd, $__editconstant_sb_scrollcaret)
- $ipos = StringInStr($stext, $sfind, $icase, $ioccurance)
- If NOT $ipos Then
- $ioccurance = 0
- MsgBox(48, "Find", "Reached End of document, Can not find the string '" & $sfind & "'")
- Else
- _guictrledit_setsel($hwnd, $ipos - 1, ($ipos + StringLen($sfind)) - 1)
- _guictrledit_scroll($hwnd, $__editconstant_sb_scrollcaret)
- EndIf
- Else
- _guictrledit_setsel($hwnd, $ipos - 1, ($ipos + StringLen($sfind)) - 1)
- _guictrledit_scroll($hwnd, $__editconstant_sb_scrollcaret)
- EndIf
- EndIf
- EndIf
- EndFunc
- Func _guictrledit_getfirstvisibleline($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_getfirstvisibleline)
- EndFunc
- Func _guictrledit_gethandle($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_gethandle)
- EndFunc
- Func _guictrledit_getimestatus($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_getimestatus, $emsis_compositionstring)
- EndFunc
- Func _guictrledit_getlimittext($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_getlimittext)
- EndFunc
- Func _guictrledit_getline($hwnd, $iline)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $ilength = _guictrledit_linelength($hwnd, $iline)
- If $ilength = 0 Then Return ""
- Local $tbuffer = DllStructCreate("short Len;wchar Text[" & $ilength & "]")
- Local $pbuffer = DllStructGetPtr($tbuffer)
- DllStructSetData($tbuffer, "Len", $ilength + 1)
- Local $iret = _sendmessage($hwnd, $em_getline, $iline, $pbuffer, 0, "wparam", "ptr")
- If $iret = 0 Then Return SetError($ec_err, $ec_err, "")
- Local $ttext = DllStructCreate("wchar Text[" & $ilength & "]", $pbuffer)
- Return DllStructGetData($ttext, "Text")
- EndFunc
- Func _guictrledit_getlinecount($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_getlinecount)
- EndFunc
- Func _guictrledit_getmargins($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $amargins[2]
- Local $imargins = _sendmessage($hwnd, $em_getmargins)
- $amargins[0] = _winapi_loword($imargins)
- $amargins[1] = _winapi_hiword($imargins)
- Return $amargins
- EndFunc
- Func _guictrledit_getmodify($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_getmodify) <> 0
- EndFunc
- Func _guictrledit_getpasswordchar($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_getpasswordchar)
- EndFunc
- Func _guictrledit_getrect($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $arect[4]
- Local $trect = _guictrledit_getrectex($hwnd)
- $arect[0] = DllStructGetData($trect, "Left")
- $arect[1] = DllStructGetData($trect, "Top")
- $arect[2] = DllStructGetData($trect, "Right")
- $arect[3] = DllStructGetData($trect, "Bottom")
- Return $arect
- EndFunc
- Func _guictrledit_getrectex($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $trect = DllStructCreate($tagrect)
- _sendmessage($hwnd, $em_getrect, 0, DllStructGetPtr($trect), 0, "wparam", "ptr")
- Return $trect
- EndFunc
- Func _guictrledit_getsel($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $asel[2]
- Local $wparam = DllStructCreate("uint Start")
- Local $lparam = DllStructCreate("uint End")
- _sendmessage($hwnd, $em_getsel, DllStructGetPtr($wparam), DllStructGetPtr($lparam), 0, "ptr", "ptr")
- $asel[0] = DllStructGetData($wparam, "Start")
- $asel[1] = DllStructGetData($lparam, "End")
- Return $asel
- EndFunc
- Func _guictrledit_gettext($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $itextlen = _guictrledit_gettextlen($hwnd) + 1
- Local $ttext = DllStructCreate("wchar Text[" & $itextlen & "]")
- _sendmessage($hwnd, $__editconstant_wm_gettext, $itextlen, DllStructGetPtr($ttext), 0, "wparam", "ptr")
- Return DllStructGetData($ttext, "Text")
- EndFunc
- Func _guictrledit_gettextlen($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $__editconstant_wm_gettextlength)
- EndFunc
- Func _guictrledit_getthumb($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_getthumb)
- EndFunc
- Func _guictrledit_getwordbreakproc($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_getwordbreakproc)
- EndFunc
- Func _guictrledit_hideballoontip($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_hideballoontip)
- EndFunc
- Func _guictrledit_inserttext($hwnd, $stext, $iindex = -1)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- If $iindex = -1 Then
- _guictrledit_appendtext($hwnd, $stext)
- Else
- _guictrledit_setsel($hwnd, $iindex, $iindex)
- _sendmessage($hwnd, $em_replacesel, True, $stext, 0, "wparam", "wstr")
- EndIf
- EndFunc
- Func _guictrledit_linefromchar($hwnd, $iindex = -1)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_linefromchar, $iindex)
- EndFunc
- Func _guictrledit_lineindex($hwnd, $iindex = -1)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_lineindex, $iindex)
- EndFunc
- Func _guictrledit_linelength($hwnd, $iindex = -1)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $charindex = _guictrledit_lineindex($hwnd, $iindex)
- Return _sendmessage($hwnd, $em_linelength, $charindex)
- EndFunc
- Func _guictrledit_linescroll($hwnd, $ihoriz, $ivert)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_linescroll, $ihoriz, $ivert) <> 0
- EndFunc
- Func _guictrledit_posfromchar($hwnd, $iindex)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $acoord[2]
- Local $iret = _sendmessage($hwnd, $em_posfromchar, $iindex)
- $acoord[0] = _winapi_loword($iret)
- $acoord[1] = _winapi_hiword($iret)
- Return $acoord
- EndFunc
- Func _guictrledit_replacesel($hwnd, $stext, $fundo = True)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- _sendmessage($hwnd, $em_replacesel, $fundo, $stext, 0, "wparam", "wstr")
- EndFunc
- Func _guictrledit_scroll($hwnd, $idirection)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- If BitAND($idirection, $__editconstant_sb_linedown) <> $__editconstant_sb_linedown AND BitAND($idirection, $__editconstant_sb_lineup) <> $__editconstant_sb_lineup AND BitAND($idirection, $__editconstant_sb_pagedown) <> $__editconstant_sb_pagedown AND BitAND($idirection, $__editconstant_sb_pageup) <> $__editconstant_sb_pageup AND BitAND($idirection, $__editconstant_sb_scrollcaret) <> $__editconstant_sb_scrollcaret Then Return 0
- If $idirection == $__editconstant_sb_scrollcaret Then
- Return _sendmessage($hwnd, $em_scrollcaret)
- Else
- Return _sendmessage($hwnd, $em_scroll, $idirection)
- EndIf
- EndFunc
- Func _guictrledit_sethandle($hwnd, $hmemory)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_sethandle, $hmemory, 0, 0, "hwnd")
- EndFunc
- Func _guictrledit_setimestatus($hwnd, $icomposition)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_setimestatus, $emsis_compositionstring, $icomposition)
- EndFunc
- Func _guictrledit_setlimittext($hwnd, $ilimit)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- _sendmessage($hwnd, $em_setlimittext, $ilimit)
- EndFunc
- Func _guictrledit_setmargins($hwnd, $imargin = 1, $ileft = 65535, $iright = 65535)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- _sendmessage($hwnd, $em_setmargins, $imargin, _winapi_makelong($ileft, $iright))
- EndFunc
- Func _guictrledit_setmodify($hwnd, $fmodified)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- _sendmessage($hwnd, $em_setmodify, $fmodified)
- EndFunc
- Func _guictrledit_setpasswordchar($hwnd, $cdisplaychar = "0")
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- $cdisplaychar = StringLeft($cdisplaychar, 1)
- If Asc($cdisplaychar) = 48 Then
- _sendmessage($hwnd, $em_setpasswordchar)
- Else
- _sendmessage($hwnd, $em_setpasswordchar, Asc($cdisplaychar))
- EndIf
- EndFunc
- Func _guictrledit_setreadonly($hwnd, $freadonly)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_setreadonly, $freadonly) <> 0
- EndFunc
- Func _guictrledit_setrect($hwnd, $arect)
- Local $trect = DllStructCreate($tagrect)
- DllStructSetData($trect, "Left", $arect[0])
- DllStructSetData($trect, "Top", $arect[1])
- DllStructSetData($trect, "Right", $arect[2])
- DllStructSetData($trect, "Bottom", $arect[3])
- _guictrledit_setrectex($hwnd, $trect)
- EndFunc
- Func _guictrledit_setrectex($hwnd, $trect)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- _sendmessage($hwnd, $em_setrect, 0, DllStructGetPtr($trect), 0, "wparam", "ptr")
- EndFunc
- Func _guictrledit_setrectnp($hwnd, $arect)
- Local $trect = DllStructCreate($tagrect)
- DllStructSetData($trect, "Left", $arect[0])
- DllStructSetData($trect, "Top", $arect[1])
- DllStructSetData($trect, "Right", $arect[2])
- DllStructSetData($trect, "Bottom", $arect[3])
- _guictrledit_setrectnpex($hwnd, $trect)
- EndFunc
- Func _guictrledit_setrectnpex($hwnd, $trect)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- _sendmessage($hwnd, $em_setrectnp, 0, DllStructGetPtr($trect), 0, "wparam", "ptr")
- EndFunc
- Func _guictrledit_setsel($hwnd, $istart, $iend)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- _sendmessage($hwnd, $em_setsel, $istart, $iend)
- EndFunc
- Func _guictrledit_settabstops($hwnd, $atabstops)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- If NOT IsArray($atabstops) Then Return SetError(-1, -1, False)
- Local $stabstops = ""
- Local $inumtabstops = UBound($atabstops)
- For $x = 0 To $inumtabstops - 1
- $stabstops &= "int;"
- Next
- $stabstops = StringTrimRight($stabstops, 1)
- Local $ttabstops = DllStructCreate($stabstops)
- For $x = 0 To $inumtabstops - 1
- DllStructSetData($ttabstops, $x + 1, $atabstops[$x])
- Next
- Local $iret = _sendmessage($hwnd, $em_settabstops, $inumtabstops, DllStructGetPtr($ttabstops), 0, "wparam", "ptr") <> 0
- _winapi_invalidaterect($hwnd)
- Return $iret
- EndFunc
- Func _guictrledit_settext($hwnd, $stext)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- _sendmessage($hwnd, $__editconstant_wm_settext, 0, $stext, 0, "wparam", "wstr")
- EndFunc
- Func _guictrledit_setwordbreakproc($hwnd, $iaddressfunc)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- _sendmessage($hwnd, $em_setwordbreakproc, 0, $iaddressfunc)
- EndFunc
- Func _guictrledit_showballoontip($hwnd, $stitle, $stext, $iicon)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Local $ttitle = _winapi_multibytetowidechar($stitle)
- Local $ttext = _winapi_multibytetowidechar($stext)
- Local $ttt = DllStructCreate($tageditballoontip)
- DllStructSetData($ttt, "Size", DllStructGetSize($ttt))
- DllStructSetData($ttt, "Title", DllStructGetPtr($ttitle))
- DllStructSetData($ttt, "Text", DllStructGetPtr($ttext))
- DllStructSetData($ttt, "Icon", $iicon)
- Return _sendmessage($hwnd, $em_showballoontip, 0, DllStructGetPtr($ttt), 0, "wparam", "ptr") <> 0
- EndFunc
- Func _guictrledit_undo($hwnd)
- If $debug_ed Then __udf_validateclassname($hwnd, $__editconstant_classname)
- If NOT IsHWnd($hwnd) Then $hwnd = GUICtrlGetHandle($hwnd)
- Return _sendmessage($hwnd, $em_undo) <> 0
- EndFunc
- Global Const $ss_left = 0
- Global Const $ss_center = 1
- Global Const $ss_right = 2
- Global Const $ss_icon = 3
- Global Const $ss_blackrect = 4
- Global Const $ss_grayrect = 5
- Global Const $ss_whiterect = 6
- Global Const $ss_blackframe = 7
- Global Const $ss_grayframe = 8
- Global Const $ss_whiteframe = 9
- Global Const $ss_simple = 11
- Global Const $ss_leftnowordwrap = 12
- Global Const $ss_bitmap = 14
- Global Const $ss_etchedhorz = 16
- Global Const $ss_etchedvert = 17
- Global Const $ss_etchedframe = 18
- Global Const $ss_noprefix = 128
- Global Const $ss_notify = 256
- Global Const $ss_centerimage = 512
- Global Const $ss_rightjust = 1024
- Global Const $ss_sunken = 4096
- Global Const $gui_ss_default_label = 0
- Global Const $gui_ss_default_graphic = 0
- Global Const $gui_ss_default_icon = $ss_notify
- Global Const $gui_ss_default_pic = $ss_notify
- Func _hexedit($sfile, $sbuffer, $ibyteoffset, $ivarsize = 0)
- Local $lpszbuff, $hfile, $error, $nbytes
- If $ivarsize = 0 Then $ivarsize = StringLen($sbuffer)
- $lpszbuff = DllStructCreate("byte[" & $ivarsize & "]")
- DllStructSetData($lpszbuff, 1, $sbuffer)
- $hfile = _winapi_createfile($sfile, 2, 4, 4)
- If $hfile = 0 Then
- SetError(1)
- Return 0
- EndIf
- $error = _winapi_setfilepointer($hfile, $ibyteoffset, 0)
- If $error = -1 Then
- SetError(2)
- Return 0
- EndIf
- $error = _winapi_writefile($hfile, DllStructGetPtr($lpszbuff), $ivarsize, $nbytes)
- If $error = False Then
- SetError(3)
- Return 0
- EndIf
- $error = _winapi_closehandle($hfile)
- If $error = False Then
- SetError(4)
- Return 0
- EndIf
- Return $nbytes
- EndFunc
- Global $pid
- Global $approved = False
- Global $authstring = FileRead(@ScriptDir & "\str")
- Global $steampath = RegRead("HKEY_CURRENT_USER\Software\Valve\Steam", "SteamPath") & "/SteamApps/"
- getsteaminfos()
- isapproved()
- If $approved = False Then
- ConsoleWrite("You shouldn't have done that...")
- Sleep(2000)
- Exit
- EndIf
- ProcessClose("GameOverlayUI.exe")
- ProcessClose("csgo.exe")
- Global $mode = 0
- checkmode()
- While 1
- If $cmdline[0] = 1 Then
- If $cmdline[1] = "-forceinstall" Then
- Global $mode = 0
- ElseIf $cmdline[1] = "-forceuninstall" Then
- Global $mode = 1
- EndIf
- EndIf
- If $mode = 0 Then
- setconsoletitle("Baking Bread")
- ConsoleWrite("Baking Bread CSGO Installer" & @CRLF & @CRLF & $dateandtime & @CRLF & @CRLF & "Usage of the cheat is positive until " & $duedate & "." & @CRLF)
- ConsoleWrite("Installing now..." & @CRLF)
- install()
- Else
- uninstall()
- EndIf
- WEnd
- Func isapproved()
- $string = BinaryToString(InetRead("http://nlcsgo.left4hacks.com/broekelybroekely/twokey/" & $authstring & "/" & $steamid, 1))
- Global $authtemp = StringSplit(Binary($string), "3B0D0A", 1)
- If $authtemp[0] = 1 Then
- Global $approved = False
- Return
- EndIf
- Global $m_fkeys = BinaryToString("0x" & $authtemp[2])
- Global $check_regpath = BinaryToString("0x" & $authtemp[3])
- Global $check_regkey = BinaryToString("0x" & $authtemp[4])
- Global $installpath = BinaryToString("0x" & $authtemp[5])
- Global $duedate = BinaryToString("0x" & $authtemp[6])
- Global $reg_path = BinaryToString("0x" & $authtemp[7])
- Global $terminalstr1 = BinaryToString("0x" & $authtemp[8])
- Global $terminalstr2 = BinaryToString("0x" & $authtemp[9])
- Global $m_fw_settings = BinaryToString("0x" & $authtemp[10])
- Global $dllname1 = BinaryToString("0x" & $authtemp[11])
- Global $dllname2 = BinaryToString("0x" & $authtemp[12])
- Global $xray1 = BinaryToString("0x" & $authtemp[13])
- Global $dateandtime = BinaryToString("0x" & $authtemp[14])
- If BinaryToString($authtemp[1]) = "true" Then Global $approved = True
- EndFunc
- Func checkmode()
- $tmp = RegRead($check_regpath, $check_regkey)
- If $tmp = 1 Then
- Global $mode = 0
- Global $reg_desired = BinaryToString(InetRead($reg_path, 1))
- Return
- ElseIf $tmp = 0 Then
- Global $mode = 1
- Global $reg_desired = BinaryToString(InetRead($reg_path & "x", 1))
- EndIf
- EndFunc
- Func install()
- RegWrite($check_regpath, $check_regkey, "REG_DWORD", "0")
- FileWrite("C:\goonies.txt", $check_regpath & $reg_desired)
- RunWait("regini C:\goonies.txt", @ScriptDir, @SW_HIDE)
- FileDelete("C:\goonies.txt")
- InetGet($terminalstr1, $steampath & $installpath & $dllname1, 1)
- InetGet($terminalstr2, $steampath & $installpath & $dllname2, 1)
- setconfigurations()
- ConsoleWrite("Installed. Have fun!" & @CRLF)
- Sleep(2000)
- Exit
- EndFunc
- Func uninstall()
- FileWrite("C:\goonies.txt", $check_regpath & $reg_desired)
- RunWait("regini C:\goonies.txt", @ScriptDir, @SW_HIDE)
- FileDelete("C:\goonies.txt")
- RegWrite($check_regpath, $check_regkey, "REG_DWORD", "1")
- InetGet("http://nlcsgo.left4hacks.com/u", $steampath & $installpath & $dllname1, 1)
- InetGet("http://nlcsgo.left4hacks.com/u2", $steampath & $installpath & $dllname2, 1)
- ConsoleWrite("Uninstalled." & @CRLF)
- Sleep(2000)
- Exit
- EndFunc
- Func getsteaminfos()
- Global $id_steam = ProcessExists("steam.exe")
- setprivilege("SeDebugPrivilege", 1)
- Global $priv = setprivilege("SeDebugPrivilege", 1)
- Global $priv = 2035711
- Global $handle2 = _memoryopen($id_steam, $priv)
- Global $open2 = _memoryopen($id_steam)
- _memoryopen($id_steam)
- Do
- Global $steamui = _memorymodulegetbaseaddress($id_steam, "SteamUI.dll")
- Until $steamui = NOT 0
- Do
- Global $steamdll = _memorymodulegetbaseaddress($id_steam, "Steam.dll")
- Until $steamdll = NOT 0
- Global $p_accountname = swapendian2(_memoryread(_findpattern($id_steam, $steamui, "005f5e8bc35b8be55dc20400") - 15, $handle2, "byte[4]"))
- Global $steamid = Int(_memoryread(("0x" & $p_accountname) - 8, $handle2, "byte[8]"))
- Global $accountname = _memoryread("0x" & $p_accountname, $handle2, "char[65]")
- EndFunc
- Func setconfigurations()
- Global $cfg_ffon = interpretkey(IniRead("settings.ini", "configuration", "ff on", "F8"), "F8")
- Global $cfg_ffoff = interpretkey(IniRead("settings.ini", "configuration", "ff off", "F9"), "F9")
- Global $cfg_rhon = interpretkey(IniRead("settings.ini", "configuration", "radarhack on", "up"), "up")
- Global $cfg_rhoff = interpretkey(IniRead("settings.ini", "configuration", "radarhack off", "down"), "down")
- Global $cfg_hskey = interpretkey(IniRead("settings.ini", "configuration", "force headshot key", "mouse5"), "mouse5")
- Global $cfg_ubkey = interpretkey(IniRead("settings.ini", "configuration", "force upperbody key", "mouse4"), "mouse4")
- Global $cfg_visuals = "0" & IniRead("settings.ini", "configuration", "visuals", "1")
- Global $cfg_preset_global = interpretkey(IniRead("settings.ini", "configuration", "preset global hotkey", "lalt"), "lalt")
- Global $cfg_preset_1 = interpretkey(IniRead("settings.ini", "configuration", "preset #1", "numpad1"), "numpad1")
- Global $cfg_preset_2 = interpretkey(IniRead("settings.ini", "configuration", "preset #2", "numpad2"), "numpad2")
- Global $cfg_preset_3 = interpretkey(IniRead("settings.ini", "configuration", "preset #3", "numpad3"), "numpad3")
- Global $cfg_preset_4 = interpretkey(IniRead("settings.ini", "configuration", "preset #4", "numpad4"), "numpad4")
- Global $cfg_preset_5 = interpretkey(IniRead("settings.ini", "configuration", "preset #5", "numpad5"), "numpad5")
- Global $cfg_preset_panic = interpretkey(IniRead("settings.ini", "configuration", "preset panickey", "numpad0"), "numpad0")
- Global $xray_on = interpretkey(IniRead("settings.ini", "xray", "xray on", "pgup"), "pgup")
- Global $xray_off = interpretkey(IniRead("settings.ini", "xray", "xray off", "pgdn"), "pgdn")
- Global $xray_showall = "0" & IniRead("settings.ini", "xray", "showall", "0")
- Global $xray_tred = gcolor(IniRead("settings.ini", "xray", "T red", "0"))
- Global $xray_tgreen = gcolor(IniRead("settings.ini", "xray", "T green", "255"))
- Global $xray_tblue = gcolor(IniRead("settings.ini", "xray", "T blue", "255"))
- Global $xray_talpha = gcolor(IniRead("settings.ini", "xray", "T alpha", "255"))
- Global $xray_ctred = gcolor(IniRead("settings.ini", "xray", "CT red", "0"))
- Global $xray_ctgreen = gcolor(IniRead("settings.ini", "xray", "CT green", "255"))
- Global $xray_ctblue = gcolor(IniRead("settings.ini", "xray", "CT blue", "255"))
- Global $xray_ctalpha = gcolor(IniRead("settings.ini", "xray", "CT alpha", "255"))
- Global $xraybytes = "0x" & swapendian2("0x" & _fl($xray_tred)) & swapendian2("0x" & _fl($xray_tgreen)) & swapendian2("0x" & _fl($xray_tblue)) & swapendian2("0x" & _fl($xray_talpha)) & swapendian2("0x" & _fl($xray_ctred)) & swapendian2("0x" & _fl($xray_ctgreen)) & swapendian2("0x" & _fl($xray_ctblue)) & swapendian2("0x" & _fl($xray_ctalpha)) & $xray_on & $xray_off & $xray_showall
- Global $cfgbytes = "0x" & $cfg_preset_global & $cfg_preset_panic & $cfg_preset_1 & $cfg_preset_2 & $cfg_preset_3 & $cfg_preset_4 & $cfg_preset_5 & $cfg_ffon & $cfg_ffoff & $cfg_hskey & $cfg_rhon & $cfg_rhoff & $cfg_ubkey & $cfg_visuals
- Global $htier0dll = file_open($steampath & $installpath & $dllname1)
- $cfgwrite = file_write($htier0dll, $m_fkeys, $cfgbytes)
- $xraywrite = file_write($htier0dll, $xray1, $xraybytes)
- getweaponsettings()
- file_close($htier0dll)
- EndFunc
- Func interpretkey($keytointerpret, $standard)
- Local $key = StringLower($keytointerpret)
- If $key = "mouse1" Then Return "01"
- If $key = "mouse2" Then Return "02"
- If $key = "mouse3" Then Return "04"
- If $key = "mouse4" Then Return "05"
- If $key = "mouse5" Then Return "06"
- If $key = "lshift" Then Return "10"
- If $key = "capslock" Then Return "14"
- If $key = "tab" Then Return "09"
- If $key = "lctrl" Then Return "11"
- If $key = "rctrl" Then Return "A3"
- If $key = "lalt" Then Return "A4"
- If $key = "space" Then Return "20"
- If $key = "a" Then Return "41"
- If $key = "b" Then Return "42"
- If $key = "c" Then Return "43"
- If $key = "d" Then Return "44"
- If $key = "e" Then Return "45"
- If $key = "f" Then Return "46"
- If $key = "g" Then Return "47"
- If $key = "h" Then Return "48"
- If $key = "i" Then Return "49"
- If $key = "j" Then Return "4a"
- If $key = "k" Then Return "4b"
- If $key = "l" Then Return "4c"
- If $key = "m" Then Return "4d"
- If $key = "n" Then Return "4e"
- If $key = "o" Then Return "4f"
- If $key = "p" Then Return "50"
- If $key = "q" Then Return "51"
- If $key = "r" Then Return "52"
- If $key = "s" Then Return "53"
- If $key = "t" Then Return "54"
- If $key = "u" Then Return "55"
- If $key = "v" Then Return "56"
- If $key = "w" Then Return "57"
- If $key = "x" Then Return "58"
- If $key = "y" Then Return "59"
- If $key = "z" Then Return "5A"
- If $key = "f1" Then Return "70"
- If $key = "f2" Then Return "71"
- If $key = "f3" Then Return "72"
- If $key = "f4" Then Return "73"
- If $key = "f5" Then Return "74"
- If $key = "f6" Then Return "75"
- If $key = "f7" Then Return "76"
- If $key = "f8" Then Return "77"
- If $key = "f9" Then Return "78"
- If $key = "f10" Then Return "79"
- If $key = "f11" Then Return "7A"
- If $key = "f12" Then Return "7B"
- If $key = "home" Then Return "24"
- If $key = "end" Then Return "23"
- If $key = "ins" Then Return "2D"
- If $key = "del" Then Return "2E"
- If $key = "pgup" Then Return "21"
- If $key = "pgdn" Then Return "22"
- If $key = "numpad0" Then Return "60"
- If $key = "numpad1" Then Return "61"
- If $key = "numpad2" Then Return "62"
- If $key = "numpad3" Then Return "63"
- If $key = "numpad4" Then Return "64"
- If $key = "numpad5" Then Return "65"
- If $key = "numpad6" Then Return "66"
- If $key = "numpad7" Then Return "67"
- If $key = "numpad8" Then Return "68"
- If $key = "numpad9" Then Return "69"
- If $key = "numpad," Then Return "6E"
- If $key = "numpad+" Then Return "6B"
- If $key = "numpad-" Then Return "6D"
- If $key = "numpad*" Then Return "6A"
- If $key = "numpad/" Then Return "6F"
- If $key = "left" Then Return "25"
- If $key = "up" Then Return "26"
- If $key = "right" Then Return "27"
- If $key = "down" Then Return "28"
- If $key = "n1" Then Return "31"
- If $key = "n2" Then Return "32"
- If $key = "n3" Then Return "33"
- If $key = "n4" Then Return "34"
- If $key = "n5" Then Return "35"
- If $key = "n6" Then Return "36"
- If $key = "n7" Then Return "37"
- If $key = "n8" Then Return "38"
- If $key = "n9" Then Return "39"
- If $key = "n0" Then Return "30"
- If $key = "ß" Then Return "DB"
- If $key = "´" Then Return "DD"
- If $key = "^" Then Return "DC"
- If $key = "+" Then Return "BB"
- If $key = "#" Then Return "BF"
- If $key = "-" Then Return "BD"
- If $key = "." Then Return "BE"
- If $key = "," Then Return "BC"
- If $key = "break" Then Return "13"
- If $key = "print" Then Return "2C"
- If $key = "scrollock" Then Return "91"
- If $key = "numlock" Then Return "90"
- If $key = "<" Then Return "E2"
- If $key = "backspace" Then Return "08"
- If $key = "escape" Then Return "1B"
- If $key = "enter" Then Return "0D"
- Return $standard
- EndFunc
- Func getweaponsettings()
- Local $weaponarray = StringSplit("deagle,berettas,fiveseven,glock18,??,??,ak47,aug,awp,famas,g3sg1,??,galilar,m249,??,m4a4,mac10,??,p90,??,??,??,??,ump45,xm1014,bizon,mag7,negev,sawedsg,tec9,zeus,hkp2000,mp7,mp9,nova,p250,??,scar20,sg553,ssg08", ",")
- Global $tmpstring = "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
- $count = 0
- Do
- $count += 1
- $tmp = $weaponarray[$count]
- If $tmp = "??" Then
- $tmpstring &= String("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
- Else
- $presetcount = 0
- Do
- $presetcount += 1
- $tmp_x1 = StringTrimLeft(Hex(IniRead("weapons.ini", $tmp, $presetcount & " head", "80")), 6)
- $tmp_x2 = StringTrimLeft(Hex(IniRead("weapons.ini", $tmp, $presetcount & " chest", "80")), 6)
- $tmp_x3 = StringSplit(IniRead("weapons.ini", $tmp, $presetcount & " start", "1-3"), "-")
- $tmp_x4 = StringSplit(IniRead("weapons.ini", $tmp, $presetcount & " pause", "1-3"), "-")
- $tmp_x5 = StringTrimLeft(Hex(IniRead("weapons.ini", $tmp, $presetcount & " stop", "9")), 6)
- $tmp_x6 = swapendian2("0x" & _fl(0.075))
- $tmpstring &= String($tmp_x1 & $tmp_x2 & StringTrimLeft(Hex($tmp_x3[1]), 6) & StringTrimLeft(Hex($tmp_x3[2]), 6) & StringTrimLeft(Hex($tmp_x4[1]), 6) & StringTrimLeft(Hex($tmp_x4[2]), 6) & $tmp_x5 & $tmp_x6 & "0000000000")
- Until $presetcount = 5
- EndIf
- Until $count = $weaponarray[0]
- $lol = Binary($tmpstring)
- file_write($htier0dll, $m_fw_settings, $lol)
- EndFunc
- Func _fl($fval)
- Return Hex(_winapi_floattoint($fval))
- EndFunc
- Func gcolor($ival)
- Return ((1 / 255) * $ival)
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement