Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Region
- #AutoIt3Wrapper_Version=beta
- #AutoIt3Wrapper_Outfile=..\Binary\SipCore.exe
- #AutoIt3Wrapper_res_requestedExecutionLevel=requireAdministrator
- #AutoIt3Wrapper_Add_Constants=n
- #EndRegion
- 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
- Func _FILECOUNTLINES($SFILEPATH)
- Local $HFILE = FileOpen($SFILEPATH, $FO_READ)
- If $HFILE = -1 Then Return SetError(1, 0, 0)
- Local $SFILECONTENT = StringStripWS(FileRead($HFILE), 2)
- FileClose($HFILE)
- Local $ATMP
- If StringInStr($SFILECONTENT, @LF) Then
- $ATMP = StringSplit(StringStripCR($SFILECONTENT), @LF)
- ElseIf StringInStr($SFILECONTENT, @CR) Then
- $ATMP = StringSplit($SFILECONTENT, @CR)
- Else
- If StringLen($SFILECONTENT) Then
- Return 1
- Else
- Return SetError(2, 0, 0)
- EndIf
- EndIf
- Return $ATMP[0]
- EndFunc
- Func _FILECREATE($SFILEPATH)
- Local $HOPENFILE = FileOpen($SFILEPATH, $FO_OVERWRITE)
- If $HOPENFILE = -1 Then Return SetError(1, 0, 0)
- Local $HWRITEFILE = FileWrite($HOPENFILE, "")
- FileClose($HOPENFILE)
- If $HWRITEFILE = -1 Then Return SetError(2, 0, 0)
- Return 1
- EndFunc
- Func _FILELISTTOARRAY($SPATH, $SFILTER = "*", $IFLAG = 0)
- Local $HSEARCH, $SFILE, $SFILELIST, $SDELIM = "|"
- $SPATH = StringRegExpReplace($SPATH, "[\\/]+\z", "") & "\"
- If Not FileExists($SPATH) Then Return SetError(1, 1, "")
- If StringRegExp($SFILTER, "[\\/:><\|]|(?s)\A\s*\z") Then Return SetError(2, 2, "")
- If NOT ($IFLAG = 0 Or $IFLAG = 1 Or $IFLAG = 2) Then Return SetError(3, 3, "")
- $HSEARCH = FileFindFirstFile($SPATH & $SFILTER)
- If @error Then Return SetError(4, 4, "")
- While 1
- $SFILE = FileFindNextFile($HSEARCH)
- If @error Then ExitLoop
- IF ($IFLAG + @extended = 2) Then ContinueLoop
- $SFILELIST &= $SDELIM & $SFILE
- WEnd
- FileClose($HSEARCH)
- If Not $SFILELIST Then Return SetError(4, 4, "")
- Return StringSplit(StringTrimLeft($SFILELIST, 1), "|")
- EndFunc
- Func _FILEPRINT($S_FILE, $I_SHOW = @SW_HIDE)
- Local $A_RET = DllCall("shell32.dll", "int", "ShellExecuteW", "hwnd", 0, "wstr", "print", "wstr", $S_FILE, "wstr", "", "wstr", "", "int", $I_SHOW)
- If @error Then Return SetError(@error, @extended, 0)
- If $A_RET[0] <= 32 Then Return SetError(10, $A_RET[0], 0)
- Return 1
- EndFunc
- Func _FILEREADTOARRAY($SFILEPATH, ByRef $AARRAY)
- Local $HFILE = FileOpen($SFILEPATH, $FO_READ)
- If $HFILE = -1 Then Return SetError(1, 0, 0)
- Local $AFILE = FileRead($HFILE, FileGetSize($SFILEPATH))
- If StringRight($AFILE, 1) = @LF Then $AFILE = StringTrimRight($AFILE, 1)
- If StringRight($AFILE, 1) = @CR Then $AFILE = StringTrimRight($AFILE, 1)
- FileClose($HFILE)
- If StringInStr($AFILE, @LF) Then
- $AARRAY = StringSplit(StringStripCR($AFILE), @LF)
- ElseIf StringInStr($AFILE, @CR) Then
- $AARRAY = StringSplit($AFILE, @CR)
- Else
- If StringLen($AFILE) Then
- Dim $AARRAY[2] = [1, $AFILE]
- Else
- Return SetError(2, 0, 0)
- EndIf
- EndIf
- Return 1
- EndFunc
- Func _FILEWRITEFROMARRAY($FILE, $A_ARRAY, $I_BASE = 0, $I_UBOUND = 0)
- If Not IsArray($A_ARRAY) Then Return SetError(2, 0, 0)
- Local $LAST = UBound($A_ARRAY) - 1
- If $I_UBOUND < 1 Or $I_UBOUND > $LAST Then $I_UBOUND = $LAST
- If $I_BASE < 0 Or $I_BASE > $LAST Then $I_BASE = 0
- Local $HFILE
- If IsString($FILE) Then
- $HFILE = FileOpen($FILE, $FO_OVERWRITE)
- Else
- $HFILE = $FILE
- EndIf
- If $HFILE = -1 Then Return SetError(1, 0, 0)
- Local $ERRORSAV = 0
- For $X = $I_BASE To $I_UBOUND
- If FileWrite($HFILE, $A_ARRAY[$X] & @CRLF) = 0 Then
- $ERRORSAV = 3
- ExitLoop
- EndIf
- Next
- If IsString($FILE) Then FileClose($HFILE)
- If $ERRORSAV Then Return SetError($ERRORSAV, 0, 0)
- Return 1
- EndFunc
- Func _FILEWRITELOG($SLOGPATH, $SLOGMSG, $IFLAG = -1)
- Local $IOPENMODE = $FO_APPEND
- Local $SDATENOW = @YEAR & "-" & @MON & "-" & @MDAY
- Local $STIMENOW = @HOUR & ":" & @MIN & ":" & @SEC
- Local $SMSG = $SDATENOW & " " & $STIMENOW & " : " & $SLOGMSG
- If $IFLAG <> -1 Then
- $SMSG &= @CRLF & FileRead($SLOGPATH)
- $IOPENMODE = $FO_OVERWRITE
- EndIf
- Local $HOPENFILE = FileOpen($SLOGPATH, $IOPENMODE)
- If $HOPENFILE = -1 Then Return SetError(1, 0, 0)
- Local $IWRITEFILE = FileWriteLine($HOPENFILE, $SMSG)
- Local $IRET = FileClose($HOPENFILE)
- If $IWRITEFILE = -1 Then Return SetError(2, $IRET, 0)
- Return $IRET
- EndFunc
- Func _FILEWRITETOLINE($SFILE, $ILINE, $STEXT, $FOVERWRITE = 0)
- If $ILINE <= 0 Then Return SetError(4, 0, 0)
- If Not IsString($STEXT) Then
- $STEXT = String($STEXT)
- If $STEXT = "" Then Return SetError(6, 0, 0)
- EndIf
- If $FOVERWRITE <> 0 And $FOVERWRITE <> 1 Then Return SetError(5, 0, 0)
- If Not FileExists($SFILE) Then Return SetError(2, 0, 0)
- Local $SREAD_FILE = FileRead($SFILE)
- Local $ASPLIT_FILE = StringSplit(StringStripCR($SREAD_FILE), @LF)
- If UBound($ASPLIT_FILE) < $ILINE Then Return SetError(1, 0, 0)
- Local $HFILE = FileOpen($SFILE, $FO_OVERWRITE)
- If $HFILE = -1 Then Return SetError(3, 0, 0)
- $SREAD_FILE = ""
- For $I = 1 To $ASPLIT_FILE[0]
- If $I = $ILINE Then
- If $FOVERWRITE = 1 Then
- If $STEXT <> "" Then $SREAD_FILE &= $STEXT & @CRLF
- Else
- $SREAD_FILE &= $STEXT & @CRLF & $ASPLIT_FILE[$I] & @CRLF
- EndIf
- ElseIf $I < $ASPLIT_FILE[0] Then
- $SREAD_FILE &= $ASPLIT_FILE[$I] & @CRLF
- ElseIf $I = $ASPLIT_FILE[0] Then
- $SREAD_FILE &= $ASPLIT_FILE[$I]
- EndIf
- Next
- FileWrite($HFILE, $SREAD_FILE)
- FileClose($HFILE)
- Return 1
- EndFunc
- Func _PATHFULL($SRELATIVEPATH, $SBASEPATH = @WorkingDir)
- If Not $SRELATIVEPATH Or $SRELATIVEPATH = "." Then Return $SBASEPATH
- Local $SFULLPATH = StringReplace($SRELATIVEPATH, "/", "\")
- Local Const $SFULLPATHCONST = $SFULLPATH
- Local $SPATH
- Local $BROOTONLY = StringLeft($SFULLPATH, 1) = "\" And StringMid($SFULLPATH, 2, 1) <> "\"
- For $I = 1 To 2
- $SPATH = StringLeft($SFULLPATH, 2)
- If $SPATH = "\\" Then
- $SFULLPATH = StringTrimLeft($SFULLPATH, 2)
- Local $NSERVERLEN = StringInStr($SFULLPATH, "\") - 1
- $SPATH = "\\" & StringLeft($SFULLPATH, $NSERVERLEN)
- $SFULLPATH = StringTrimLeft($SFULLPATH, $NSERVERLEN)
- ExitLoop
- ElseIf StringRight($SPATH, 1) = ":" Then
- $SFULLPATH = StringTrimLeft($SFULLPATH, 2)
- ExitLoop
- Else
- $SFULLPATH = $SBASEPATH & "\" & $SFULLPATH
- EndIf
- Next
- If $I = 3 Then Return ""
- If StringLeft($SFULLPATH, 1) <> "\" Then
- If StringLeft($SFULLPATHCONST, 2) = StringLeft($SBASEPATH, 2) Then
- $SFULLPATH = $SBASEPATH & "\" & $SFULLPATH
- Else
- $SFULLPATH = "\" & $SFULLPATH
- EndIf
- EndIf
- Local $ATEMP = StringSplit($SFULLPATH, "\")
- Local $APATHPARTS[$ATEMP[0]], $J = 0
- For $I = 2 To $ATEMP[0]
- If $ATEMP[$I] = ".." Then
- If $J Then $J -= 1
- ElseIf NOT ($ATEMP[$I] = "" And $I <> $ATEMP[0]) And $ATEMP[$I] <> "." Then
- $APATHPARTS[$J] = $ATEMP[$I]
- $J += 1
- EndIf
- Next
- $SFULLPATH = $SPATH
- If Not $BROOTONLY Then
- For $I = 0 To $J - 1
- $SFULLPATH &= "\" & $APATHPARTS[$I]
- Next
- Else
- $SFULLPATH &= $SFULLPATHCONST
- If StringInStr($SFULLPATH, "..") Then $SFULLPATH = _PATHFULL($SFULLPATH)
- EndIf
- While StringInStr($SFULLPATH, ".\")
- $SFULLPATH = StringReplace($SFULLPATH, ".\", "\")
- WEnd
- Return $SFULLPATH
- EndFunc
- Func _PATHGETRELATIVE($SFROM, $STO)
- If StringRight($SFROM, 1) <> "\" Then $SFROM &= "\"
- If StringRight($STO, 1) <> "\" Then $STO &= "\"
- If $SFROM = $STO Then Return SetError(1, 0, StringTrimRight($STO, 1))
- Local $ASFROM = StringSplit($SFROM, "\")
- Local $ASTO = StringSplit($STO, "\")
- If $ASFROM[1] <> $ASTO[1] Then Return SetError(2, 0, StringTrimRight($STO, 1))
- Local $I = 2
- Local $IDIFF = 1
- While 1
- If $ASFROM[$I] <> $ASTO[$I] Then
- $IDIFF = $I
- ExitLoop
- EndIf
- $I += 1
- WEnd
- $I = 1
- Local $SRELPATH = ""
- For $J = 1 To $ASTO[0]
- If $I >= $IDIFF Then
- $SRELPATH &= "\" & $ASTO[$I]
- EndIf
- $I += 1
- Next
- $SRELPATH = StringTrimLeft($SRELPATH, 1)
- $I = 1
- For $J = 1 To $ASFROM[0]
- If $I > $IDIFF Then
- $SRELPATH = "..\" & $SRELPATH
- EndIf
- $I += 1
- Next
- If StringRight($SRELPATH, 1) == "\" Then $SRELPATH = StringTrimRight($SRELPATH, 1)
- Return $SRELPATH
- EndFunc
- Func _PATHMAKE($SZDRIVE, $SZDIR, $SZFNAME, $SZEXT)
- If StringLen($SZDRIVE) Then
- If NOT (StringLeft($SZDRIVE, 2) = "\\") Then $SZDRIVE = StringLeft($SZDRIVE, 1) & ":"
- EndIf
- If StringLen($SZDIR) Then
- If NOT (StringRight($SZDIR, 1) = "\") And NOT (StringRight($SZDIR, 1) = "/") Then $SZDIR = $SZDIR & "\"
- EndIf
- If StringLen($SZEXT) Then
- If NOT (StringLeft($SZEXT, 1) = ".") Then $SZEXT = "." & $SZEXT
- EndIf
- Return $SZDRIVE & $SZDIR & $SZFNAME & $SZEXT
- EndFunc
- Func _PATHSPLIT($SZPATH, ByRef $SZDRIVE, ByRef $SZDIR, ByRef $SZFNAME, ByRef $SZEXT)
- Local $DRIVE = ""
- Local $DIR = ""
- Local $FNAME = ""
- Local $EXT = ""
- Local $POS
- Local $ARRAY[5]
- $ARRAY[0] = $SZPATH
- If StringMid($SZPATH, 2, 1) = ":" Then
- $DRIVE = StringLeft($SZPATH, 2)
- $SZPATH = StringTrimLeft($SZPATH, 2)
- ElseIf StringLeft($SZPATH, 2) = "\\" Then
- $SZPATH = StringTrimLeft($SZPATH, 2)
- $POS = StringInStr($SZPATH, "\")
- If $POS = 0 Then $POS = StringInStr($SZPATH, "/")
- If $POS = 0 Then
- $DRIVE = "\\" & $SZPATH
- $SZPATH = ""
- Else
- $DRIVE = "\\" & StringLeft($SZPATH, $POS - 1)
- $SZPATH = StringTrimLeft($SZPATH, $POS - 1)
- EndIf
- EndIf
- Local $NPOSFORWARD = StringInStr($SZPATH, "/", 0, -1)
- Local $NPOSBACKWARD = StringInStr($SZPATH, "\", 0, -1)
- If $NPOSFORWARD >= $NPOSBACKWARD Then
- $POS = $NPOSFORWARD
- Else
- $POS = $NPOSBACKWARD
- EndIf
- $DIR = StringLeft($SZPATH, $POS)
- $FNAME = StringRight($SZPATH, StringLen($SZPATH) - $POS)
- If StringLen($DIR) = 0 Then $FNAME = $SZPATH
- $POS = StringInStr($FNAME, ".", 0, -1)
- If $POS Then
- $EXT = StringRight($FNAME, StringLen($FNAME) - ($POS - 1))
- $FNAME = StringLeft($FNAME, $POS - 1)
- EndIf
- $SZDRIVE = $DRIVE
- $SZDIR = $DIR
- $SZFNAME = $FNAME
- $SZEXT = $EXT
- $ARRAY[1] = $DRIVE
- $ARRAY[2] = $DIR
- $ARRAY[3] = $FNAME
- $ARRAY[4] = $EXT
- Return $ARRAY
- EndFunc
- Func _REPLACESTRINGINFILE($SZFILENAME, $SZSEARCHSTRING, $SZREPLACESTRING, $FCASENESS = 0, $FOCCURANCE = 1)
- Local $IRETVAL = 0
- Local $NCOUNT, $SENDSWITH
- If StringInStr(FileGetAttrib($SZFILENAME), "R") Then Return SetError(6, 0, -1)
- Local $HFILE = FileOpen($SZFILENAME, $FO_READ)
- If $HFILE = -1 Then Return SetError(1, 0, -1)
- Local $S_TOTFILE = FileRead($HFILE, FileGetSize($SZFILENAME))
- If StringRight($S_TOTFILE, 2) = @CRLF Then
- $SENDSWITH = @CRLF
- ElseIf StringRight($S_TOTFILE, 1) = @CR Then
- $SENDSWITH = @CR
- ElseIf StringRight($S_TOTFILE, 1) = @LF Then
- $SENDSWITH = @LF
- Else
- $SENDSWITH = ""
- EndIf
- Local $AFILELINES = StringSplit(StringStripCR($S_TOTFILE), @LF)
- FileClose($HFILE)
- Local $HWRITEHANDLE = FileOpen($SZFILENAME, $FO_OVERWRITE)
- If $HWRITEHANDLE = -1 Then Return SetError(2, 0, -1)
- For $NCOUNT = 1 To $AFILELINES[0]
- If StringInStr($AFILELINES[$NCOUNT], $SZSEARCHSTRING, $FCASENESS) Then
- $AFILELINES[$NCOUNT] = StringReplace($AFILELINES[$NCOUNT], $SZSEARCHSTRING, $SZREPLACESTRING, 1 - $FOCCURANCE, $FCASENESS)
- $IRETVAL = $IRETVAL + 1
- If $FOCCURANCE = 0 Then
- $IRETVAL = 1
- ExitLoop
- EndIf
- EndIf
- Next
- For $NCOUNT = 1 To $AFILELINES[0] - 1
- If FileWriteLine($HWRITEHANDLE, $AFILELINES[$NCOUNT]) = 0 Then
- FileClose($HWRITEHANDLE)
- Return SetError(3, 0, -1)
- EndIf
- Next
- If $AFILELINES[$NCOUNT] <> "" Then FileWrite($HWRITEHANDLE, $AFILELINES[$NCOUNT] & $SENDSWITH)
- FileClose($HWRITEHANDLE)
- Return $IRETVAL
- EndFunc
- Func _TEMPFILE($S_DIRECTORYNAME = @TempDir, $S_FILEPREFIX = "~", $S_FILEEXTENSION = ".tmp", $I_RANDOMLENGTH = 7)
- If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @TempDir
- If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @ScriptDir
- If StringRight($S_DIRECTORYNAME, 1) <> "\" Then $S_DIRECTORYNAME = $S_DIRECTORYNAME & "\"
- Local $S_TEMPNAME
- Do
- $S_TEMPNAME = ""
- While StringLen($S_TEMPNAME) < $I_RANDOMLENGTH
- $S_TEMPNAME = $S_TEMPNAME & Chr(Random(97, 122, 1))
- WEnd
- $S_TEMPNAME = $S_DIRECTORYNAME & $S_FILEPREFIX & $S_TEMPNAME & $S_FILEEXTENSION
- Until Not FileExists($S_TEMPNAME)
- Return $S_TEMPNAME
- EndFunc
- Func _HEXTOSTRING($STRHEX)
- If StringLeft($STRHEX, 2) = "0x" Then Return BinaryToString($STRHEX)
- Return BinaryToString("0x" & $STRHEX)
- EndFunc
- Func _STRINGBETWEEN($S_STRING, $S_START, $S_END, $V_CASE = -1)
- Local $S_CASE = ""
- If $V_CASE = Default Or $V_CASE = -1 Then $S_CASE = "(?i)"
- Local $S_PATTERN_ESCAPE = "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)"
- $S_START = StringRegExpReplace($S_START, $S_PATTERN_ESCAPE, "\\$1")
- $S_END = StringRegExpReplace($S_END, $S_PATTERN_ESCAPE, "\\$1")
- If $S_START = "" Then $S_START = "\A"
- If $S_END = "" Then $S_END = "\z"
- Local $A_RET = StringRegExp($S_STRING, "(?s)" & $S_CASE & $S_START & "(.*?)" & $S_END, 3)
- If @error Then Return SetError(1, 0, 0)
- Return $A_RET
- EndFunc
- Func _STRINGENCRYPT($I_ENCRYPT, $S_ENCRYPTTEXT, $S_ENCRYPTPASSWORD, $I_ENCRYPTLEVEL = 1)
- If $I_ENCRYPT <> 0 And $I_ENCRYPT <> 1 Then
- SetError(1, 0, "")
- ElseIf $S_ENCRYPTTEXT = "" Or $S_ENCRYPTPASSWORD = "" Then
- SetError(1, 0, "")
- Else
- If Number($I_ENCRYPTLEVEL) <= 0 Or Int($I_ENCRYPTLEVEL) <> $I_ENCRYPTLEVEL Then $I_ENCRYPTLEVEL = 1
- Local $V_ENCRYPTMODIFIED
- Local $I_ENCRYPTCOUNTH
- Local $I_ENCRYPTCOUNTG
- Local $V_ENCRYPTSWAP
- Local $AV_ENCRYPTBOX[256][2]
- Local $I_ENCRYPTCOUNTA
- Local $I_ENCRYPTCOUNTB
- Local $I_ENCRYPTCOUNTC
- Local $I_ENCRYPTCOUNTD
- Local $I_ENCRYPTCOUNTE
- Local $V_ENCRYPTCIPHER
- Local $V_ENCRYPTCIPHERBY
- If $I_ENCRYPT = 1 Then
- For $I_ENCRYPTCOUNTF = 0 To $I_ENCRYPTLEVEL Step 1
- $I_ENCRYPTCOUNTG = ""
- $I_ENCRYPTCOUNTH = ""
- $V_ENCRYPTMODIFIED = ""
- For $I_ENCRYPTCOUNTG = 1 To StringLen($S_ENCRYPTTEXT)
- If $I_ENCRYPTCOUNTH = StringLen($S_ENCRYPTPASSWORD) Then
- $I_ENCRYPTCOUNTH = 1
- Else
- $I_ENCRYPTCOUNTH += 1
- EndIf
- $V_ENCRYPTMODIFIED = $V_ENCRYPTMODIFIED & Chr(BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTG, 1)), Asc(StringMid($S_ENCRYPTPASSWORD, $I_ENCRYPTCOUNTH, 1)), 255))
- Next
- $S_ENCRYPTTEXT = $V_ENCRYPTMODIFIED
- $I_ENCRYPTCOUNTA = ""
- $I_ENCRYPTCOUNTB = 0
- $I_ENCRYPTCOUNTC = ""
- $I_ENCRYPTCOUNTD = ""
- $I_ENCRYPTCOUNTE = ""
- $V_ENCRYPTCIPHERBY = ""
- $V_ENCRYPTCIPHER = ""
- $V_ENCRYPTSWAP = ""
- $AV_ENCRYPTBOX = ""
- Local $AV_ENCRYPTBOX[256][2]
- For $I_ENCRYPTCOUNTA = 0 To 255
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1] = Asc(StringMid($S_ENCRYPTPASSWORD, Mod($I_ENCRYPTCOUNTA, StringLen($S_ENCRYPTPASSWORD)) + 1, 1))
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $I_ENCRYPTCOUNTA
- Next
- For $I_ENCRYPTCOUNTA = 0 To 255
- $I_ENCRYPTCOUNTB = Mod(($I_ENCRYPTCOUNTB + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]), 256)
- $V_ENCRYPTSWAP = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0] = $V_ENCRYPTSWAP
- Next
- For $I_ENCRYPTCOUNTA = 1 To StringLen($S_ENCRYPTTEXT)
- $I_ENCRYPTCOUNTC = Mod(($I_ENCRYPTCOUNTC + 1), 256)
- $I_ENCRYPTCOUNTD = Mod(($I_ENCRYPTCOUNTD + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]), 256)
- $I_ENCRYPTCOUNTE = $AV_ENCRYPTBOX[Mod(($AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTD][0]), 256)][0]
- $V_ENCRYPTCIPHERBY = BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTA, 1)), $I_ENCRYPTCOUNTE)
- $V_ENCRYPTCIPHER &= Hex($V_ENCRYPTCIPHERBY, 2)
- Next
- $S_ENCRYPTTEXT = $V_ENCRYPTCIPHER
- Next
- Else
- For $I_ENCRYPTCOUNTF = 0 To $I_ENCRYPTLEVEL Step 1
- $I_ENCRYPTCOUNTB = 0
- $I_ENCRYPTCOUNTC = ""
- $I_ENCRYPTCOUNTD = ""
- $I_ENCRYPTCOUNTE = ""
- $V_ENCRYPTCIPHERBY = ""
- $V_ENCRYPTCIPHER = ""
- $V_ENCRYPTSWAP = ""
- $AV_ENCRYPTBOX = ""
- Local $AV_ENCRYPTBOX[256][2]
- For $I_ENCRYPTCOUNTA = 0 To 255
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1] = Asc(StringMid($S_ENCRYPTPASSWORD, Mod($I_ENCRYPTCOUNTA, StringLen($S_ENCRYPTPASSWORD)) + 1, 1))
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $I_ENCRYPTCOUNTA
- Next
- For $I_ENCRYPTCOUNTA = 0 To 255
- $I_ENCRYPTCOUNTB = Mod(($I_ENCRYPTCOUNTB + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]), 256)
- $V_ENCRYPTSWAP = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]
- $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0] = $V_ENCRYPTSWAP
- Next
- For $I_ENCRYPTCOUNTA = 1 To StringLen($S_ENCRYPTTEXT) Step 2
- $I_ENCRYPTCOUNTC = Mod(($I_ENCRYPTCOUNTC + 1), 256)
- $I_ENCRYPTCOUNTD = Mod(($I_ENCRYPTCOUNTD + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]), 256)
- $I_ENCRYPTCOUNTE = $AV_ENCRYPTBOX[Mod(($AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTD][0]), 256)][0]
- $V_ENCRYPTCIPHERBY = BitXOR(Dec(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTA, 2)), $I_ENCRYPTCOUNTE)
- $V_ENCRYPTCIPHER = $V_ENCRYPTCIPHER & Chr($V_ENCRYPTCIPHERBY)
- Next
- $S_ENCRYPTTEXT = $V_ENCRYPTCIPHER
- $I_ENCRYPTCOUNTG = ""
- $I_ENCRYPTCOUNTH = ""
- $V_ENCRYPTMODIFIED = ""
- For $I_ENCRYPTCOUNTG = 1 To StringLen($S_ENCRYPTTEXT)
- If $I_ENCRYPTCOUNTH = StringLen($S_ENCRYPTPASSWORD) Then
- $I_ENCRYPTCOUNTH = 1
- Else
- $I_ENCRYPTCOUNTH += 1
- EndIf
- $V_ENCRYPTMODIFIED &= Chr(BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTG, 1)), Asc(StringMid($S_ENCRYPTPASSWORD, $I_ENCRYPTCOUNTH, 1)), 255))
- Next
- $S_ENCRYPTTEXT = $V_ENCRYPTMODIFIED
- Next
- EndIf
- Return $S_ENCRYPTTEXT
- EndIf
- EndFunc
- Func _STRINGEXPLODE($SSTRING, $SDELIMITER, $ILIMIT = 0)
- If $ILIMIT > 0 Then
- $SSTRING = StringReplace($SSTRING, $SDELIMITER, Chr(0), $ILIMIT)
- $SDELIMITER = Chr(0)
- ElseIf $ILIMIT < 0 Then
- Local $IINDEX = StringInStr($SSTRING, $SDELIMITER, 0, $ILIMIT)
- If $IINDEX Then
- $SSTRING = StringLeft($SSTRING, $IINDEX - 1)
- EndIf
- EndIf
- Return StringSplit($SSTRING, $SDELIMITER, 3)
- EndFunc
- Func _STRINGINSERT($S_STRING, $S_INSERTSTRING, $I_POSITION)
- Local $I_LENGTH, $S_START, $S_END
- If $S_STRING = "" OR (Not IsString($S_STRING)) Then
- Return SetError(1, 0, $S_STRING)
- ElseIf $S_INSERTSTRING = "" OR (Not IsString($S_STRING)) Then
- Return SetError(2, 0, $S_STRING)
- Else
- $I_LENGTH = StringLen($S_STRING)
- IF (Abs($I_POSITION) > $I_LENGTH) OR (Not IsInt($I_POSITION)) Then
- Return SetError(3, 0, $S_STRING)
- EndIf
- EndIf
- If $I_POSITION = 0 Then
- Return $S_INSERTSTRING & $S_STRING
- ElseIf $I_POSITION > 0 Then
- $S_START = StringLeft($S_STRING, $I_POSITION)
- $S_END = StringRight($S_STRING, $I_LENGTH - $I_POSITION)
- Return $S_START & $S_INSERTSTRING & $S_END
- ElseIf $I_POSITION < 0 Then
- $S_START = StringLeft($S_STRING, Abs($I_LENGTH + $I_POSITION))
- $S_END = StringRight($S_STRING, Abs($I_POSITION))
- Return $S_START & $S_INSERTSTRING & $S_END
- EndIf
- EndFunc
- Func _STRINGPROPER($S_STRING)
- Local $IX = 0
- Local $CAPNEXT = 1
- Local $S_NSTR = ""
- Local $S_CURCHAR
- For $IX = 1 To StringLen($S_STRING)
- $S_CURCHAR = StringMid($S_STRING, $IX, 1)
- Select
- Case $CAPNEXT = 1
- If StringRegExp($S_CURCHAR, "[a-zA-ZÀ-ÿšœžŸ]") Then
- $S_CURCHAR = StringUpper($S_CURCHAR)
- $CAPNEXT = 0
- EndIf
- Case Not StringRegExp($S_CURCHAR, "[a-zA-ZÀ-ÿšœžŸ]")
- $CAPNEXT = 1
- Case Else
- $S_CURCHAR = StringLower($S_CURCHAR)
- EndSelect
- $S_NSTR &= $S_CURCHAR
- Next
- Return $S_NSTR
- EndFunc
- Func _STRINGREPEAT($SSTRING, $IREPEATCOUNT)
- Local $SRESULT
- Select
- Case Not StringIsInt($IREPEATCOUNT)
- SetError(1)
- Return ""
- Case StringLen($SSTRING) < 1
- SetError(1)
- Return ""
- Case $IREPEATCOUNT <= 0
- SetError(1)
- Return ""
- Case Else
- For $ICOUNT = 1 To $IREPEATCOUNT
- $SRESULT &= $SSTRING
- Next
- Return $SRESULT
- EndSelect
- EndFunc
- Func _STRINGREVERSE($S_STRING)
- Local $I_LEN = StringLen($S_STRING)
- If $I_LEN < 1 Then Return SetError(1, 0, "")
- Local $T_CHARS = DllStructCreate("char[" & $I_LEN + 1 & "]")
- DllStructSetData($T_CHARS, 1, $S_STRING)
- Local $A_REV = DllCall("msvcrt.dll", "ptr:cdecl", "_strrev", "ptr", DllStructGetPtr($T_CHARS))
- If @error Or $A_REV[0] = 0 Then Return SetError(2, 0, "")
- Return DllStructGetData($T_CHARS, 1)
- EndFunc
- Func _STRINGTOHEX($STRCHAR)
- Return Hex(StringToBinary($STRCHAR))
- EndFunc
- 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 $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]"
- 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
- 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 $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 $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 _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 $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
- Const $PIXELLOBBYCHECKSUM = 1555213581
- Const $PIXELCHATCHECKSUM = 1649782125
- Const $PIXELGAMECHECKSUM = 2125173826
- Const $PIXELLOADCHECKSUM = 1930887169
- Const $PIXELSTARTCHECKSUM = 1882569945
- Const $PIXELSELECTCHECKSUM = 1988211704
- Const $PIXELBNETLOGINCHECKSUM = 371230022
- Const $NPCSCREENCHECKSUM = 2787122889
- Const $PIXELA1CHECKSUM = 3374657687
- Const $PIXELA2CHECKSUM = 1987662535
- Const $PIXELA3CHECKSUM = 1066095595
- Const $PIXELA4CHECKSUM = 192177123
- Const $PIXELA5CHECKSUM = 2113352287
- Const $PIXELPINDLEPOSSUM1 = 3674943118
- Const $PIXELPINDLEPOSSUM2 = 2211873678
- Const $PIXELPINDLEPOSSUM3 = 1118240787
- $INLOBBY = 0
- $INGAME = 0
- $SELECTSCREEN = 0
- $BNETLOGIN = 0
- $CURRENTPOS = 0
- $WANTEDPOSITION = 0
- $DIABLOOPEN = 0
- $CURRENTIP = 0
- $CURRENTACTCHECKSUM = 0
- $NPCSCREEN = 0
- $CURRENTACT = 0
- $GAMENAMEADD = 1
- $REDPORCOORDS = 0
- $BLUEPORCOORDS = 0
- Global $PAUSED
- $COUNTDOWN = 0
- Global $GAMENAMEFINAL = 0
- Global $TIMELEFT = 0
- $WARMNESS = "Cold"
- $OOGMSG = ""
- $CURRENTPOS = 0
- $COUNTIP = 0
- $CURRENTVERSION = 1.3
- Global $NEWDIABLOTITLE
- Global $D2HANDLE
- Global $PID
- Const $COMMAND = 'netstat -n | find "4000"'
- Global Const $D2CLIENT_OFFSET = 1873477632
- Global Const $D2LAUNCH_OFFSET = 1873018880
- Global Const $D2MULTI_OFFSET = 1872560128
- Global $OLDPTR1, $OLDPTR2, $OLDMSG, $LASTCHATMSG1
- Const $DIABLOTITLE = IniRead(@ScriptDir & "\Settings.ini", "CONFIG", "DiabloTitle", "Diablo II")
- $DIABLOPATH = IniRead(@ScriptDir & "\Settings.ini", "CONFIG", "DiabloPath", "NotFound")
- If $DIABLOPATH = "" Then
- MsgBox(0, "SIPBot Error!", "Please type in diablopath correctly. Exiting.")
- Exit
- EndIf
- $ACCOUNT = IniRead(@ScriptDir & "\Settings.ini", "CONFIG", "Account", "NotFound")
- $PASS = IniRead(@ScriptDir & "\Settings.ini", "CONFIG", "Password", "NotFound")
- $CHARLOCATION = IniRead(@ScriptDir & "\Settings.ini", "CONFIG", "Charspot", "NotFound")
- $CHATMSG = IniRead(@ScriptDir & "\Settings.ini", "CONFIG", "MsgSettings", "1")
- $ALLOWMEMORYREAD = IniRead(@ScriptDir & "\Settings.ini", "CONFIG", "ReadMemory", "No")
- $ENABLELOGGING = IniRead(@ScriptDir & "\Settings.ini", "CONFIG", "EnableLogging", "Yes")
- $MINIMIZED = IniRead(@ScriptDir & "\Settings.ini", "CONFIG", "Minimized", "No")
- $DEBUG_ENABLED = IniRead(@ScriptDir & "\Settings.ini", "CONFIG", "DebugEnabled", "No")
- $QUESTBUTTON = IniRead(@ScriptDir & "\Settings.ini", "CHARSETTINGS", "Questbutton", "NotFound")
- $TELESKILL = IniRead(@ScriptDir & "\Settings.ini", "CHARSETTINGS", "Teleskill", "NotFound")
- $TPSKILL = IniRead(@ScriptDir & "\Settings.ini", "CHARSETTINGS", "TPSkill", "NotFound")
- $VIGORKEY = IniRead(@ScriptDir & "\Settings.ini", "CHARSETTINGS", "Vigorskill", "NotFound")
- Const $MINGAMETIME = IniRead(@ScriptDir & "\Settings.ini", "GAMESETTINGS", "MinGameTime", "NotFound")
- Const $MINIWAITTIME = IniRead(@ScriptDir & "\Settings.ini", "GAMESETTINGS", "MiniWaitTime", "5000")
- Const $GAMENAME = IniRead(@ScriptDir & "\Settings.ini", "GAMESETTINGS", "Gamename", "NotFound")
- Const $RUN = IniRead(@ScriptDir & "\Settings.ini", "GAMESETTINGS", "Ingamescript", "NotFound")
- $GAMEPASS = IniRead(@ScriptDir & "\Settings.ini", "GAMESETTINGS", "Gamepass", "NotFound")
- $DIFFICULTY = IniRead(@ScriptDir & "\Settings.ini", "GAMESETTINGS", "Difficulty", "NotFound")
- $WAITONHOTIP = IniRead(@ScriptDir & "\Settings.ini", "IPSCRIPTOPTIONS", "WaitOnHotIp", "6000")
- $WANTEDIP1 = IniRead(@ScriptDir & "\Settings.ini", "IPSCRIPTOPTIONS", "Wantedip1", "1")
- $WANTEDIP2 = IniRead(@ScriptDir & "\Settings.ini", "IPSCRIPTOPTIONS", "Wantedip2", "1")
- $WANTEDIP3 = IniRead(@ScriptDir & "\Settings.ini", "IPSCRIPTOPTIONS", "Wantedip3", "1")
- $WANTEDIP4 = IniRead(@ScriptDir & "\Settings.ini", "IPSCRIPTOPTIONS", "Wantedip4", "1")
- Func _DETECTLOBBY()
- If $ALLOWMEMORYREAD = "Yes" Then
- DEBUG(7, "Locations.au3", "Detecting lobby, by reading memory.")
- $VALUE = DETECTLOBBY($PID)
- If $VALUE <> 0 Then
- $INLOBBY = True
- Else
- $INLOBBY = False
- EndIf
- DEBUG(15, "Locations.au3", "Result of lobby detection: " & $INLOBBY & ".")
- EndIf
- If $ALLOWMEMORYREAD = "No" And $MINIMIZED = "No" Then
- DEBUG(18, "Locations.au3", "Detecting lobby, by checking pixel 794,417.")
- ACTIVATED2()
- Opt("PixelCoordMode", 2)
- MouseMove(400, 300, 0)
- If PixelGetColor(794, 417) = 526344 Then
- $INLOBBY = True
- Else
- $INLOBBY = False
- EndIf
- DEBUG(27, "Locations.au3", "Result of lobby detection: " & $INLOBBY & ".")
- EndIf
- If $ALLOWMEMORYREAD = "No" And $MINIMIZED = "Yes" Then
- $INLOBBY = ""
- EndIf
- Return $INLOBBY
- EndFunc
- Func _DETECTDIABLO()
- DEBUG(36, "Locations.au3", "Detecting whether diablo is opened.")
- $D2NAME = WinGetTitle("[TITLE:" & $DIABLOTITLE & "; CLASS:Diablo II]")
- If WinExists($D2NAME) = 1 Then
- $DIABLOOPEN = True
- Else
- $DIABLOOPEN = False
- EndIf
- DEBUG(42, "Locations.au3", "Result of Diablo detection: " & $DIABLOOPEN & ".")
- Return $DIABLOOPEN
- EndFunc
- Func _DETECTINGAME()
- Local $TEMPIP
- Select
- Case $ALLOWMEMORYREAD = "Yes"
- DEBUG(50, "Locations.au3", "Detecting ingame by getting fps of the game.")
- $PING = GETGAMEFPS($PID)
- If $PING > 0 Then
- $INGAME = True
- Else
- $INGAME = False
- EndIf
- DEBUG(58, "Locations.au3", "Fps was: " & $PING & ". InGame: " & $INGAME & ".")
- Case $ALLOWMEMORYREAD = "No"
- DEBUG(60, "Locations.au3", "Detecting ingame by checking if the game has an ip.")
- Local $FOO = Run(@ComSpec & " /c " & $COMMAND, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
- Local $LINE = ""
- For $N = 1 To 3 Step 0
- $LINE = StdoutRead($FOO)
- If @error Then
- ExitLoop
- EndIf
- If Not $LINE = "" Then
- $TEMPIP = $LINE
- EndIf
- Next
- If StringInStr($TEMPIP, "4000") > 0 Then
- $INGAME = True
- Else
- $INGAME = False
- EndIf
- DEBUG(77, "Locations.au3", "Result of ingame detection: " & $INGAME & ".")
- EndSelect
- Return $INGAME
- EndFunc
- Func _DETECTNPCSCREEN()
- ACTIVATED2()
- Opt("PixelCoordMode", 2)
- If $NPCSCREENCHECKSUM = PixelChecksum(84, 445, 122, 477) Then
- $NPCSCREEN = True
- ElseIf $NPCSCREENCHECKSUM <> PixelChecksum(84, 445, 122, 477) Then
- $NPCSCREEN = False
- EndIf
- Return $NPCSCREEN
- EndFunc
- Func _DETECTSELECT()
- If $ALLOWMEMORYREAD = "Yes" Then
- DEBUG(95, "Locations.au3", "Detecting Select Char Screen by reading memory.")
- If DETECTSELECTCHARSCREEN($PID) = 1 Then
- $SELECTSCREEN = True
- Else
- $SELECTSCREEN = False
- EndIf
- DEBUG(102, "Locations.au3", "Result of previous detection: " & $SELECTSCREEN & ".")
- EndIf
- If $ALLOWMEMORYREAD = "No" Then
- DEBUG(105, "Locations.au3", "Detecting Select Char Screen by checking pixel 719,329.")
- ACTIVATED2()
- Opt("PixelCoordMode", 2)
- If PixelGetColor(719, 329) = 16569436 Then
- $SELECTSCREEN = True
- Else
- $SELECTSCREEN = False
- EndIf
- DEBUG(113, "Locations.au3", "Result of previous detection: " & $SELECTSCREEN & ".")
- EndIf
- Return $SELECTSCREEN
- EndFunc
- Func _DETECTBNETLOGIN()
- If $ALLOWMEMORYREAD = "No" And $MINIMIZED = "No" Then
- DEBUG(120, "Locations.au3", "Detecting B.Net Login by checking pixel 705,347.")
- ACTIVATED2()
- Opt("PixelCoordMode", 2)
- If PixelGetColor(705, 347) = 10516544 Then
- $BNETLOGIN = True
- Else
- $BNETLOGIN = False
- EndIf
- DEBUG(128, "Locations.au3", "Result of previous detection: " & $BNETLOGIN & ".")
- EndIf
- Return $BNETLOGIN
- EndFunc
- Func _DETECTACT()
- ACTIVATED2()
- Opt("PixelCoordMode", 2)
- _SENDMINIMIZED($DIABLOTITLE, $QUESTBUTTON)
- Sleep(200)
- $CURRENTACTCHECKSUM = PixelChecksum(90, 65, 390, 90)
- Sleep(500)
- _SENDMINIMIZED($DIABLOTITLE, $QUESTBUTTON)
- If $PIXELA1CHECKSUM = $CURRENTACTCHECKSUM Then
- $CURRENTACT = 1
- ElseIf $PIXELA2CHECKSUM = $CURRENTACTCHECKSUM Then
- $CURRENTACT = 2
- ElseIf $PIXELA3CHECKSUM = $CURRENTACTCHECKSUM Then
- $CURRENTACT = 3
- ElseIf $PIXELA4CHECKSUM = $CURRENTACTCHECKSUM Then
- $CURRENTACT = 4
- ElseIf $PIXELA5CHECKSUM = $CURRENTACTCHECKSUM Then
- $CURRENTACT = 5
- Else
- $CURRENTACT = 0
- _FILEWRITELOG(@ScriptDir & "\Errors.log", "Couldn't detect act - probably not ingame, stopping bot.")
- EndIf
- Return $CURRENTACT
- EndFunc
- Func _WHEREAMI()
- DEBUG(11, "Functions.au3", "Detecting location (_WhereAmI()).")
- Select
- Case _DETECTBNETLOGIN() =True
- $CURRENTPOS = 1
- Case _DETECTSELECT() =True
- $CURRENTPOS = 2
- Case _DETECTLOBBY() =True
- $CURRENTPOS = 3
- Case _DETECTINGAME() =True
- $CURRENTPOS = 4
- Case _DETECTDIABLO() =False
- $CURRENTPOS = 0
- Case Else
- $CURRENTPOS = 5
- _FILEWRITELOG(@ScriptDir & "\Errors.log", "Couldn't detect location, stopping bot.")
- EndSelect
- Return $CURRENTPOS
- EndFunc
- Func OPEND2()
- DEBUG(6, "Navigations.au3", "Opening Diablo...")
- Run($DIABLOPATH)
- $D2HANDLE = WinWait("[TITLE:" & $DIABLOTITLE & "; CLASS:Diablo II]", "")
- $PID = ProcessExists("game.exe")
- WinActivate($D2HANDLE)
- $NEWDIABLOTITLE = RENAMED2()
- $CURRENTPOS = 1
- If $MINIMIZED = "Yes" Then
- WinSetState($NEWDIABLOTITLE, "", @SW_MINIMIZE)
- DEBUG(15, "Navigations.au3", "Diablo opened and minimized.")
- EndIf
- Return $PID
- EndFunc
- Func _AUTOLOGIN()
- _ZLEEP(1000, $MINIWAITTIME / 2)
- DEBUG(23, "Navigations.au3", "Logging in.")
- WinActivate($D2HANDLE)
- Opt("PixelCoordMode", 2)
- _WHEREAMI()
- If $CURRENTPOS <> 1 Then
- _NAVIGATETO(1)
- _AUTOLOGIN()
- Else
- MouseClickDrag("left", 480, 340, 320, 340, 5)
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, $ACCOUNT)
- Sleep(100)
- _SENDMINIMIZED($D2HANDLE, "{TAB}")
- Sleep(200)
- _SENDMINIMIZED($D2HANDLE, $PASS)
- Sleep(200)
- _SENDMINIMIZED($D2HANDLE, "{ENTER}")
- EndIf
- EndFunc
- Func _AUTOLOGINMINI()
- _ZLEEP(2000, $MINIWAITTIME / 2)
- DEBUG(46, "Navigations.au3", "Logging in.")
- If $ALLOWMEMORYREAD = "Yes" Then
- $TIME1 = TimerInit()
- While DETECTNOTIFYBOX($PID) = 1
- Sleep(200)
- If Round(TimerDiff($TIME1), 1) > 10000 Then
- $OOGMSG = "Login timed out... Quitting."
- _FILEWRITELOG(@ScriptDir & "\Errors.log", "Login timed out, stopping bot.")
- DEBUG(54, "Navigations.au3", "Login timed out.")
- Exit
- EndIf
- WEnd
- $CURRENTPOS = 1
- _MOUSECLICKMINIMIZED($D2HANDLE, "Left", 470, 339)
- Sleep(400)
- For $I = 0 To 17 Step 1
- _SENDMINIMIZED($D2HANDLE, "{bs}")
- Next
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, $ACCOUNT)
- Sleep(200)
- _SENDMINIMIZED($D2HANDLE, "{TAB}")
- Sleep(200)
- _SENDMINIMIZED($D2HANDLE, $PASS)
- Sleep(200)
- _SENDMINIMIZED($D2HANDLE, "{ENTER}")
- ElseIf $ALLOWMEMORYREAD = "No" Then
- Sleep($MINIWAITTIME / 2)
- $CURRENTPOS = 1
- Sleep($MINIWAITTIME / 2)
- _MOUSECLICKMINIMIZED($D2HANDLE, "Left", 470, 339)
- Sleep(400)
- For $I = 0 To 17 Step 1
- _SENDMINIMIZED($D2HANDLE, "{bs}")
- Next
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, $ACCOUNT)
- Sleep(200)
- _SENDMINIMIZED($D2HANDLE, "{TAB}")
- Sleep(200)
- _SENDMINIMIZED($D2HANDLE, $PASS)
- Sleep(200)
- _SENDMINIMIZED($D2HANDLE, "{ENTER}")
- Sleep($MINIWAITTIME / 2)
- EndIf
- EndFunc
- Func _SELECTCHAR()
- _ZLEEP(2000, $MINIWAITTIME / 2)
- DEBUG(96, "Navigations.au3", "Selecting char.")
- WinActivate($D2HANDLE)
- Opt("PixelCoordMode", 2)
- _WHEREAMI()
- If $CURRENTPOS <> 2 Then
- _NAVIGATETO(2)
- _SELECTCHAR()
- Else
- Select
- Case $CHARLOCATION = 1
- _SENDMINIMIZED($D2HANDLE, "{ENTER}")
- Case $CHARLOCATION = 2
- _SENDMINIMIZED($D2HANDLE, "{RIGHT}{ENTER}")
- Case $CHARLOCATION = 3
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{ENTER}")
- Case $CHARLOCATION = 4
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{RIGHT}{ENTER}")
- Case $CHARLOCATION = 5
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{DOWN}{ENTER}")
- Case $CHARLOCATION = 6
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{DOWN}{RIGHT}{ENTER}")
- Case $CHARLOCATION = 7
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{DOWN}{DOWN}{ENTER}")
- Case $CHARLOCATION = 8
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{DOWN}{DOWN}{RIGHT}{ENTER}")
- EndSelect
- EndIf
- EndFunc
- Func _SELECTCHARMINI()
- _ZLEEP(2000, $MINIWAITTIME / 2)
- If $ALLOWMEMORYREAD = "Yes" Then
- DEBUG(129, "Navigations.au3", "Detecting Select Char Screen")
- If DETECTSELECTCHARSCREEN($PID) = 0 Then
- DEBUG(131, "Navigations.au3", "It wasnt up, waiting for 'Please Wait'...")
- DEBUG(132, "Navigations.au3", "Select Char screen not up, detecting Notifybox and waiting to its gone...")
- $TIME1 = TimerInit()
- While DETECTNOTIFYBOX($PID) = 1
- If Round(TimerDiff($TIME1), 1) > 10000 Then
- $OOGMSG = "Wrong account/pass... Quitting."
- _FILEWRITELOG(@ScriptDir & "\Errors.log", "Wrong account name or password, stopping bot.")
- DEBUG(138, "Navigations.au3", "Wrong account name or password")
- Exit
- EndIf
- Sleep(200)
- WEnd
- EndIf
- $CURRENTPOS = 2
- ElseIf $ALLOWMEMORYREAD = "No" Then
- Sleep($MINIWAITTIME / 2)
- $CURRENTPOS = 2
- Sleep($MINIWAITTIME / 2)
- EndIf
- DEBUG(150, "Navigations.au3", "Selecting character.")
- Select
- Case $CHARLOCATION = 1
- _SENDMINIMIZED($D2HANDLE, "{ENTER}")
- Case $CHARLOCATION = 2
- _SENDMINIMIZED($D2HANDLE, "{RIGHT}{ENTER}")
- Case $CHARLOCATION = 3
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{ENTER}")
- Case $CHARLOCATION = 4
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{RIGHT}{ENTER}")
- Case $CHARLOCATION = 5
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{DOWN}{ENTER}")
- Case $CHARLOCATION = 6
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{DOWN}{RIGHT}{ENTER}")
- Case $CHARLOCATION = 7
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{DOWN}{DOWN}{ENTER}")
- Case $CHARLOCATION = 8
- _SENDMINIMIZED($D2HANDLE, "{DOWN}{DOWN}{DOWN}{RIGHT}{ENTER}")
- EndSelect
- EndFunc
- Func _CREATEGAME()
- _ZLEEP(2000, $MINIWAITTIME / 2)
- Select
- Case $ALLOWMEMORYREAD = "Yes"
- For $RETRIES = 1 To 5 Step 1
- _DETECTLOBBY()
- If $INLOBBY = True Then
- $CURRENTPOS = 3
- DEBUG(181, "Navigations.au3", "Detected lobby after reading memory " & $RETRIES & " times.")
- _MAKEGAME()
- ExitLoop
- EndIf
- Sleep(750)
- Next
- If $INLOBBY = False Then
- DEBUG(188, "Navigations.au3", "Failed to detect lobby, detecting current position.")
- _WHEREAMI()
- If $CURRENTPOS <> 3 Then
- _NAVIGATETO(3)
- _MAKEGAME()
- ElseIf $CURRENTPOS = 3 Then
- _MAKEGAME()
- EndIf
- EndIf
- Case $MINIMIZED = "Yes" And $ALLOWMEMORYREAD = "No"
- $CURRENTPOS = 3
- Sleep(2000)
- _MAKEGAME()
- Case $MINIMIZED = "No"
- ACTIVATED2()
- Opt("PixelCoordMode", 2)
- _WHEREAMI()
- If $CURRENTPOS <> 3 Then
- _NAVIGATETO(3)
- _CREATEGAME()
- ElseIf $CURRENTPOS = 3 Then
- _MAKEGAME()
- EndIf
- EndSelect
- EndFunc
- Func _MAKEGAME()
- DEBUG(219, "Navigations.au3", "Creating a game.")
- _MOUSECLICKMINIMIZED($D2HANDLE, "Left", 712, 461, 1)
- Sleep(300)
- _MOUSECLICKMINIMIZED($D2HANDLE, "Left", 593, 459, 1)
- Sleep(200)
- $CURRENTPOS = 8
- If $GAMENAME = "Rnd" Then
- $GAMENAMEFINAL = Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1))
- Else
- $GAMENAMEFINAL = $GAMENAME & $GAMENAMEADD
- $GAMENAMEADD = $GAMENAMEADD + 1
- EndIf
- If $GAMENAME = "" Then
- $GAMENAMEFINAL = Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1)) & Chr(64 + Random(1, 26, 1))
- EndIf
- If $GAMEPASS = "" Then
- $GAMEPASS = "x"
- EndIf
- _SENDMINIMIZED($D2HANDLE, $GAMENAMEFINAL)
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, "{TAB}")
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, $GAMEPASS)
- Sleep(400)
- If $DIFFICULTY = 1 Then
- _MOUSECLICKMINIMIZED($D2HANDLE, "Left", 439, 375, 1)
- ElseIf $DIFFICULTY = 2 Then
- _MOUSECLICKMINIMIZED($D2HANDLE, "Left", 565, 375, 1)
- ElseIf $DIFFICULTY = 3 Then
- _MOUSECLICKMINIMIZED($D2HANDLE, "Left", 707, 375, 1)
- EndIf
- Sleep(1000)
- _SENDMINIMIZED($D2HANDLE, "{Enter}")
- $CURRENTPOS = 6
- _ZLEEP(1000, 2000)
- EndFunc
- Func TERMINATE()
- DEBUG(277, "Functions.au3", "Killing " & $NEWDIABLOTITLE & " and core.exe")
- If WinExists("[TITLE:" & $NEWDIABLOTITLE & "; CLASS:Diablo II]") = 1 Then
- WinClose("[TITLE:" & $NEWDIABLOTITLE & "; CLASS:Diablo II]")
- WinWaitClose("[TITLE:" & $NEWDIABLOTITLE & "; CLASS:Diablo II]")
- EndIf
- IniWrite(@ScriptDir & "\Com", "OOGUPDATE", "POSITION", "0")
- IniWrite(@ScriptDir & "\Com", "OOGUPDATE", "CURRENTIP", "N/A")
- IniWrite(@ScriptDir & "\Com", "OOGUPDATE", "WARMNESS", "N/A")
- IniWrite(@ScriptDir & "\Com", "OOGUPDATE", "OOGMSG", "")
- Exit
- EndFunc
- Func _NAVIGATETO($WANTEDPOS)
- DEBUG(62, "Functions.au3", "Navigating to position " & $WANTEDPOS & ". Current position is " & $CURRENTPOS & ".")
- If $CURRENTPOS <> $WANTEDPOS Then
- If $ALLOWMEMORYREAD = "No" Then
- Opt("PixelCoordMode", 2)
- Select
- Case $CURRENTPOS = 0 And $WANTEDPOS = 1
- OPEND2()
- Case $CURRENTPOS = 0 And $WANTEDPOS = 2
- OPEND2()
- _AUTOLOGIN()
- Case $CURRENTPOS = 0 And $WANTEDPOS = 3
- OPEND2()
- _AUTOLOGIN()
- _SELECTCHAR()
- Case $CURRENTPOS = 0 And $WANTEDPOS = 4
- OPEND2()
- _AUTOLOGIN()
- _SELECTCHAR()
- _CREATEGAME()
- Case $CURRENTPOS = 1 And $WANTEDPOS = 2
- _AUTOLOGIN()
- Case $CURRENTPOS = 1 And $WANTEDPOS = 3
- _AUTOLOGIN()
- _SELECTCHAR()
- Case $CURRENTPOS = 1 And $WANTEDPOS = 4
- _AUTOLOGIN()
- _SELECTCHAR()
- _CREATEGAME()
- Case $CURRENTPOS = 2 And $WANTEDPOS = 3
- _SELECTCHAR()
- Case $CURRENTPOS = 2 And $WANTEDPOS = 4
- _SELECTCHAR()
- _CREATEGAME()
- Case $CURRENTPOS = 3 And $WANTEDPOS = 4
- _CREATEGAME()
- Case $CURRENTPOS = 4 And $WANTEDPOS = 3
- _EXITGAME()
- Case $CURRENTPOS = 4 And $WANTEDPOS = 2
- _EXITGAME()
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, "{ESC}")
- Sleep(400)
- Case $CURRENTPOS = 4 And $WANTEDPOS = 1
- _EXITGAME()
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, "{ESC}")
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, "{Esc}")
- Sleep(400)
- Case $CURRENTPOS = 3 And $WANTEDPOS = 2
- _SENDMINIMIZED($D2HANDLE, "{Esc}")
- Sleep(400)
- Case $CURRENTPOS = 3 And $WANTEDPOS = 1
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, "{ESC}")
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, "{Esc}")
- Sleep(400)
- Case $CURRENTPOS = 2 And $WANTEDPOS = 1
- _SENDMINIMIZED($D2HANDLE, "{Esc}")
- Sleep(400)
- Case Else
- _FILEWRITELOG(@ScriptDir & "\Errors.log", "Dont know where to go, stopping bot.")
- Exit
- EndSelect
- ElseIf $ALLOWMEMORYREAD = "Yes" Then
- Select
- Case $CURRENTPOS = 0 And $WANTEDPOS = 1
- OPEND2()
- Case $CURRENTPOS = 0 And $WANTEDPOS = 2
- OPEND2()
- _AUTOLOGINMINI()
- Case $CURRENTPOS = 0 And $WANTEDPOS = 3
- OPEND2()
- _AUTOLOGINMINI()
- _SELECTCHARMINI()
- Case $CURRENTPOS = 0 And $WANTEDPOS = 4
- OPEND2()
- _AUTOLOGINMINI()
- _SELECTCHARMINI()
- _CREATEGAME()
- Case $CURRENTPOS = 1 And $WANTEDPOS = 2
- _AUTOLOGINMINI()
- Case $CURRENTPOS = 1 And $WANTEDPOS = 3
- _AUTOLOGINMINI()
- _SELECTCHARMINI()
- Case $CURRENTPOS = 1 And $WANTEDPOS = 4
- _AUTOLOGINMINI()
- _SELECTCHARMINI()
- _CREATEGAME()
- Case $CURRENTPOS = 2 And $WANTEDPOS = 3
- _SELECTCHARMINI()
- Case $CURRENTPOS = 2 And $WANTEDPOS = 4
- _SELECTCHARMINI()
- _CREATEGAME()
- Case $CURRENTPOS = 3 And $WANTEDPOS = 4
- _CREATEGAME()
- Case $CURRENTPOS = 4 And $WANTEDPOS = 3
- _EXITGAME()
- Case $CURRENTPOS = 4 And $WANTEDPOS = 2
- _EXITGAME()
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, "{ESC}")
- Sleep(400)
- Case $CURRENTPOS = 4 And $WANTEDPOS = 1
- _EXITGAME()
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, "{ESC}")
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, "{Esc}")
- Sleep(400)
- Case $CURRENTPOS = 3 And $WANTEDPOS = 2
- _SENDMINIMIZED($D2HANDLE, "{Esc}")
- Sleep(400)
- Case $CURRENTPOS = 3 And $WANTEDPOS = 1
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, "{ESC}")
- Sleep(400)
- _SENDMINIMIZED($D2HANDLE, "{Esc}")
- Sleep(400)
- Case $CURRENTPOS = 2 And $WANTEDPOS = 1
- _SENDMINIMIZED($D2HANDLE, "{Esc}")
- Sleep(400)
- Case Else
- _FILEWRITELOG(@ScriptDir & "\Errors.log", "Dont know where to go, stopping bot.")
- Exit
- EndSelect
- EndIf
- EndIf
- EndFunc
- Func _ZLEEP($TIMEMIN, $TIMEMAX)
- Sleep(Random($TIMEMIN, $TIMEMAX))
- EndFunc
- Func PAUSEEXECUTION()
- DEBUG(484, "Functions.au3", "Pausing execution.")
- $PAUSED = Not $PAUSED
- While $PAUSED
- Sleep(100)
- $OOGMSG = 'Pausing bot... Press "Pause" to continue.'
- WEnd
- $OOGMSG = ""
- EndFunc
- Func COUNTER()
- If $COUNTDOWN = $MINGAMETIME Then
- Else
- $COUNTDOWN = $COUNTDOWN + 1
- EndIf
- EndFunc
- Func COUNTER2()
- If $COUNTIP = $WAITONHOTIP Then
- Else
- $COUNTIP = $COUNTIP + 1
- EndIf
- EndFunc
- Func DEBUG($SCRIPTLINE, $SCRIPT, $MSG)
- If $DEBUG_ENABLED = "Yes" Then
- Local $HEDIT
- Local $SDATENOW = @YEAR & "-" & @MON & "-" & @MDAY
- Local $STIMENOW = @HOUR & ":" & @MIN & ":" & @SEC & ":" & @MSEC
- $DEBUG_MSG = @CRLF & $SDATENOW & " " & $STIMENOW & @CRLF & "Script: " & $SCRIPT & " | Scriptline: " & $SCRIPTLINE & "." & @CRLF & "-> " & $MSG & @CRLF & @CRLF
- $HEDIT = ControlGetHandle("SIP-Bot Debuglog", "", "Edit1")
- If @error = 1 Then
- $DEBUG_ENABLED = "No"
- _FILEWRITELOG(@ScriptDir & "\Errors.log", "Debugging has been disabled because Debuglog doesn't exist.")
- Else
- _GUICTRLEDIT_APPENDTEXT($HEDIT, $DEBUG_MSG)
- EndIf
- ConsoleWrite($DEBUG_MSG)
- EndIf
- EndFunc
- Func _UPDATEOOG()
- IniWrite(@ScriptDir & "\Com", "OOGUPDATE", "POSITION", $CURRENTPOS)
- IniWrite(@ScriptDir & "\Com", "OOGUPDATE", "CURRENTIP", $CURRENTIP)
- IniWrite(@ScriptDir & "\Com", "OOGUPDATE", "WARMNESS", $WARMNESS)
- IniWrite(@ScriptDir & "\Com", "OOGUPDATE", "OOGMSG", $OOGMSG)
- EndFunc
- Func D2INFO()
- $PID = WinGetProcess($NEWDIABLOTITLE)
- $D2HANDLE = WinGetHandle($NEWDIABLOTITLE)
- EndFunc
- Func ACTIVATED2()
- WinActivate($D2HANDLE)
- EndFunc
- Func RENAMED2()
- $NEWDIABLOTITLE = $DIABLOTITLE & " - SIP loaded."
- WinSetTitle($DIABLOTITLE, "", $NEWDIABLOTITLE)
- Return $NEWDIABLOTITLE
- EndFunc
- Func _BO()
- WinActivate($D2HANDLE)
- _ZLEEP(300, 350)
- $LEFTPRIMSKILL = PixelChecksum(121, 557, 165, 597)
- Do
- Send("w")
- _ZLEEP(100, 200)
- Until PixelChecksum(121, 557, 165, 597) <> $LEFTPRIMSKILL
- _ZLEEP(100, 200)
- Send("{F8}")
- _ZLEEP(500, 600)
- MouseClick("secondary", 400, 300, 1, 0)
- _ZLEEP(500, 600)
- Send("{F7}")
- _ZLEEP(500, 600)
- MouseClick("secondary", 400, 300, 1, 0)
- _ZLEEP(500, 600)
- Send("a")
- _ZLEEP(500, 600)
- MouseClick("secondary", 400, 300, 1, 0)
- _ZLEEP(500, 600)
- $LEFTSECSKILL = PixelChecksum(121, 557, 165, 597)
- Do
- Send("w")
- _ZLEEP(100, 200)
- Until PixelChecksum(121, 557, 165, 597) <> $LEFTSECSKILL
- EndFunc
- Func _ENTERPORTAL($PORTALCOLOR)
- Opt("PixelCoordMode", 2)
- If $PORTALCOLOR = "Red" Then
- $REDPORCOORDS = PixelSearch(147, 70, 621, 364, 16777215, 4)
- _ZLEEP(50, 100)
- $REDPORCOORDS[1] = $REDPORCOORDS[1] + 40
- MouseClick("Primary", $REDPORCOORDS[0], $REDPORCOORDS[1], 1, 0)
- EndIf
- If $PORTALCOLOR = "Blue" Then
- $BLUEPORCOORDS = PixelSearch(147, 70, 621, 364, 10526972, 4)
- _ZLEEP(50, 100)
- $BLUEPORCOORDS[1] = $BLUEPORCOORDS[1] + 40
- MouseClick("Primary", $BLUEPORCOORDS[0], $BLUEPORCOORDS[1], 1, 0)
- EndIf
- EndFunc
- Func _REPAIR()
- Opt("PixelCoordMode", 2)
- MouseClick("Primary", 154, 526, 1, 1)
- Sleep(2000)
- MouseClick("Primary", 786, 451, 1, 1)
- Sleep(2000)
- MouseClick("Primary", 482, 475, 1, 1)
- Sleep(2000)
- $LARZUK = PixelSearch(300, 125, 800, 433, 2887688)
- If @error = 1 Then
- $LARZUK = PixelSearch(300, 125, 800, 433, 4199436)
- EndIf
- MouseClick("Right", $LARZUK[0], $LARZUK[1], 1, 0)
- Sleep(1000)
- Send("{DOWN}{Enter}")
- Sleep(500)
- _DETECTNPCSCREEN()
- If $NPCSCREEN = True Then
- MouseClick("Primary", 368, 465, 1, 0)
- _ZLEEP(200, 300)
- Send("{Esc}")
- _EXITGAME()
- Else
- MsgBox(0, "", $NPCSCREEN)
- Exit
- EndIf
- EndFunc
- Func _GETGAMEIP()
- DEBUG(97, "InGameFunctions.au3", "Retrieving game ip.")
- $WANTEDIP1 = IniRead(@ScriptDir & "\Settings.ini", "IPSCRIPTOPTIONS", "Wantedip1", "")
- $WANTEDIP2 = IniRead(@ScriptDir & "\Settings.ini", "IPSCRIPTOPTIONS", "Wantedip2", "")
- $WANTEDIP3 = IniRead(@ScriptDir & "\Settings.ini", "IPSCRIPTOPTIONS", "Wantedip3", "")
- $WANTEDIP4 = IniRead(@ScriptDir & "\Settings.ini", "IPSCRIPTOPTIONS", "Wantedip4", "")
- If $ALLOWMEMORYREAD = "Yes" Then
- $TEMPIP = GETSERVERIP1($PID)
- $IPLENGTH = StringLen($TEMPIP)
- If $IPLENGTH = 14 Then
- $CURRENTIP = StringMid($TEMPIP, 13, 2)
- _FILEWRITELOG(@ScriptDir & "\Ip's.log", "Ip of game: " & $GAMENAMEFINAL & " was ." & $CURRENTIP & ". Configured Ip's are: " & $WANTEDIP1 & ", " & $WANTEDIP2 & ", " & $WANTEDIP3 & " and " & $WANTEDIP4 & ".")
- ElseIf $IPLENGTH = 15 Then
- $CURRENTIP = StringMid($TEMPIP, 13, 3)
- _FILEWRITELOG(@ScriptDir & "\Ip's.log", "Ip of game: " & $GAMENAMEFINAL & " was ." & $CURRENTIP & ". Configured Ip's are: " & $WANTEDIP1 & ", " & $WANTEDIP2 & ", " & $WANTEDIP3 & " and " & $WANTEDIP4 & ".")
- EndIf
- EndIf
- If $ALLOWMEMORYREAD = "No" Then
- Local $FOO = Run(@ComSpec & " /c " & $COMMAND, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
- Local $LINE = ""
- For $N = 1 To 3 Step 0
- $LINE = StdoutRead($FOO)
- If @error Then
- ExitLoop
- EndIf
- If Not $LINE = "" Then
- $TEMPIP = $LINE
- $TEMPIP2 = StringTrimRight($TEMPIP, 13)
- $TEMPIP3 = StringTrimLeft($TEMPIP2, 30)
- $TEMPIP4 = StringStripWS($TEMPIP3, 3)
- $IPLENGTH = StringLen($TEMPIP4)
- If $IPLENGTH = 19 Then
- $CURRENTIP = StringMid($TEMPIP4, 13, 2)
- _FILEWRITELOG(@ScriptDir & "\Ip's.log", "Ip of game: " & $GAMENAMEFINAL & " was ." & $CURRENTIP & ". Configured Ip's are: " & $WANTEDIP1 & ", " & $WANTEDIP2 & ", " & $WANTEDIP3 & " and " & $WANTEDIP4 & ".")
- ElseIf $IPLENGTH = 20 Then
- $CURRENTIP = StringMid($TEMPIP4, 13, 3)
- _FILEWRITELOG(@ScriptDir & "\Ip's.log", "Ip of game: " & $GAMENAMEFINAL & " was ." & $CURRENTIP & ". Configured Ip's are: " & $WANTEDIP1 & ", " & $WANTEDIP2 & ", " & $WANTEDIP3 & " and " & $WANTEDIP4 & ".")
- EndIf
- ExitLoop
- EndIf
- Next
- EndIf
- Return $CURRENTIP
- EndFunc
- Func _IDLEINGAME()
- DEBUG(484, "Functions.au3", "Idling ingame.")
- Do
- $TIMELEFT = $WAITONHOTIP - $COUNTIP
- $OOGMSG = "Waiting on hot server - " & $TIMELEFT & " seconds left."
- If $ALLOWMEMORYREAD = "Yes" Then
- $LASTCHATMSG = GETLASTCHATMSG($PID)
- If $LASTCHATMSG <> $LASTCHATMSG1 Then
- $LASTCHATMSG1 = $LASTCHATMSG
- If $LASTCHATMSG1 <> "0" Then
- TrayTip("SIP-Bot: Message Detected", $LASTCHATMSG1, 5)
- If $ENABLELOGGING = "Yes" Then
- _FILEWRITELOG(@ScriptDir & "\Messages.log", $GAMENAMEFINAL & " - " & $LASTCHATMSG1)
- EndIf
- EndIf
- EndIf
- EndIf
- Sleep(200)
- Until $COUNTIP >= $WAITONHOTIP
- EndFunc
- Func _READD2MEMORY($PID, $ADDRESS, $FORMAT = "dword", $READ = 0, $DEBUGENABLED = False)
- $AHANDLE = OPENSECUREPROCESS($PID)
- Local $V_BUFFER = DllStructCreate($FORMAT)
- $RESULT = _WINAPI_READPROCESSMEMORY($AHANDLE, $ADDRESS, DllStructGetPtr($V_BUFFER), DllStructGetSize($V_BUFFER), $READ)
- $TEMP = DllStructGetData($V_BUFFER, 1)
- _WINAPI_CLOSEHANDLE($AHANDLE)
- If $DEBUGENABLED = True Then
- ConsoleWrite(@CRLF & $PID & " <--- pid of process." & @CRLF)
- ConsoleWrite($AHANDLE & " <--- Handle to process." & @CRLF)
- ConsoleWrite(DllStructGetData($V_BUFFER, 1) & " <--- DllStruct of format." & @CRLF)
- ConsoleWrite($RESULT & " <--- Result of ReadprocessMemory (1 = success, 0 = failure)." & @CRLF)
- ConsoleWrite($TEMP & " <--- Memory Read." & @CRLF)
- EndIf
- Return $TEMP
- EndFunc
- Func OPENSECUREPROCESS($WNDPID, $RIGHTS = 2035711)
- $SE_KERNEL_OBJECT = 6
- $DACL_SECURITY_INFORMATION = 4
- $ERROR_SUCCESS = 0
- $WRITE_DAC = 262144
- $UNPROTECTED_DACL_SECURITY_INFORMATION = 536870912
- Local $PID = $WNDPID
- Local $WINDOW
- Local $PROCESS
- Local $DACL = DllStructCreate("ptr")
- Local $SECDESC = DllStructCreate("ptr")
- $PROCESS = _WINAPI_OPENPROCESS($RIGHTS, 0, $PID)
- IF ($PROCESS <> 0) Then
- Return $PROCESS
- EndIf
- IF (GETSECURITYINFO(_WINAPI_GETCURRENTPROCESS(), $SE_KERNEL_OBJECT, $DACL_SECURITY_INFORMATION, 0, 0, DllStructGetPtr($DACL, 1), 0, DllStructGetPtr($SECDESC, 1)) <> $ERROR_SUCCESS) Then
- Return 0
- EndIf
- $PROCESS = _WINAPI_OPENPROCESS($WRITE_DAC, 0, $PID)
- IF ($PROCESS == 0) Then
- _WINAPI_LOCALFREE($SECDESC)
- Return 0
- EndIf
- IF (SETSECURITYINFO($PROCESS, $SE_KERNEL_OBJECT, BitOR($DACL_SECURITY_INFORMATION, $UNPROTECTED_DACL_SECURITY_INFORMATION), 0, 0, DllStructGetData($DACL, 1), 0) <> $ERROR_SUCCESS) Then
- _WINAPI_LOCALFREE($SECDESC)
- Return 0
- EndIf
- _WINAPI_CLOSEHANDLE($PROCESS)
- _WINAPI_LOCALFREE($SECDESC)
- $PROCESS = _WINAPI_OPENPROCESS($RIGHTS, 0, $PID)
- IF ($PROCESS == 0) Then
- Return 0
- EndIf
- Return $PROCESS
- EndFunc
- Func GETSECURITYINFO($HANDLE, $OBJECTTYPE, $SECURITYINFO, $PPSIDOWNER, $PPSIDGROUP, $PPDACL, $PPSACL, $PPSECURITYDESCRIPTOR)
- $CALL = DllCall("Advapi32.dll", "long", "GetSecurityInfo", "ptr", $HANDLE, "int", $OBJECTTYPE, "dword", $SECURITYINFO, "ptr", $PPSIDOWNER, "ptr", $PPSIDGROUP, "ptr", $PPDACL, "ptr", $PPSACL, "ptr", $PPSECURITYDESCRIPTOR)
- Return $CALL[0]
- EndFunc
- Func SETSECURITYINFO($HANDLE, $OBJECTTYPE, $SECURITYINFO, $PSIDOWNER, $PSIDGROUP, $PDACL, $PSACL)
- $CALL = DllCall("Advapi32.dll", "long", "SetSecurityInfo", "ptr", $HANDLE, "int", $OBJECTTYPE, "dword", $SECURITYINFO, "ptr", $PSIDOWNER, "ptr", $PSIDGROUP, "ptr", $PDACL, "ptr", $PSACL)
- Return $CALL[0]
- EndFunc
- Func _MEMORYREADWIDESTRING($IV_ADDRESS, $AH_HANDLE, $SV_TYPE = "ushort[10]")
- Local $V_BUFFER = DllStructCreate($SV_TYPE)
- If @error Then
- SetError(@error + 1)
- Return 0
- EndIf
- $READ = 0
- _WINAPI_READPROCESSMEMORY($AH_HANDLE, $IV_ADDRESS, DllStructGetPtr($V_BUFFER), DllStructGetSize($V_BUFFER), $READ)
- If Not @error Then
- $TMPSTRING = ""
- For $CHAR = 1 To 255
- $V_VALUE = DllStructGetData($V_BUFFER, 1, $CHAR)
- If $V_VALUE = 0 Then ExitLoop
- $TMPSTRING = $TMPSTRING & Chr($V_VALUE)
- Next
- Return $TMPSTRING
- Else
- SetError(6)
- Return 0
- EndIf
- EndFunc
- Func _SETPRIVILEGE($PRIVILEGE, $ENABLE)
- Local $HTOKEN = _SECURITY__OPENTHREADTOKENEX(BitOR($TOKEN_ADJUST_PRIVILEGES, $TOKEN_QUERY))
- If @error Then Return SetError(@error, @extended, 0)
- _SECURITY__SETPRIVILEGE($HTOKEN, $PRIVILEGE, $ENABLE)
- EndFunc
- Func GETLASTCHATMSG($PID)
- $TEMP = GETLASTMSG($PID)
- $RESULT = StringInStr($TEMP, "ÿc")
- Select
- Case $RESULT = 0
- $LASTMSG = $TEMP
- Case $RESULT > 0
- $MSGARRAY = StringSplit($TEMP, "ÿc", 1)
- $MSGARRAY1 = StringTrimLeft($MSGARRAY[2], 1)
- $MSGARRAY2 = StringTrimLeft($MSGARRAY[3], 1)
- $LASTMSG = $MSGARRAY1 & $MSGARRAY2
- EndSelect
- If $CHATMSG = 1 Then
- Return $LASTMSG
- ElseIf $CHATMSG = 0 Then
- If StringInStr($LASTMSG, "p Majorblood") = 0 Then
- Return "s"
- Else
- $TEMP = StringTrimLeft($LASTMSG, 25)
- Return $TEMP
- EndIf
- EndIf
- EndFunc
- Func DETECTNOTIFYBOX($PID)
- Local $TEMP
- $TEMP = _READD2MEMORY($PID, $D2LAUNCH_OFFSET + 152512, "dword")
- If $TEMP <> 0 Then
- Return 1
- ElseIf $TEMP = 0 Then
- Return 0
- EndIf
- EndFunc
- Func DETECTLOBBY($PID)
- Local $TEMP
- $TEMP = _READD2MEMORY($PID, $D2MULTI_OFFSET + 233812, "dword")
- If $TEMP <> 0 Then
- Return 1
- ElseIf $TEMP = 0 Then
- Return 0
- EndIf
- EndFunc
- Func DETECTSELECTCHARSCREEN($PID)
- Local $TEMP
- $TEMP = _READD2MEMORY($PID, $D2LAUNCH_OFFSET + 152347, "dword")
- If $TEMP <> 0 Then
- Return 1
- ElseIf $TEMP = 0 Then
- Return 0
- EndIf
- EndFunc
- Func GETCURRENTHP($PID)
- Local $TEMP
- $TEMP = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1157013, "ushort")
- Return $TEMP
- EndFunc
- Func GETLASTMSG($PID)
- Local $PTR
- Local $PTR2
- $PTR = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1129136, "dword")
- $PTR2 = _READD2MEMORY($PID, $PTR, "dword")
- $HANDLE = OPENSECUREPROCESS($PID)
- $TEMP = _MEMORYREADWIDESTRING($PTR2, $HANDLE, "ushort[396]")
- _WINAPI_CLOSEHANDLE($HANDLE)
- Return $TEMP
- EndFunc
- Func GETREALM($PID)
- Local $TEMP
- Local $PTR
- $PTR = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1161600, "dword")
- $TEMP = _READD2MEMORY($PID, $PTR + 209, "char[15]")
- Return $TEMP
- EndFunc
- Func GETCHARNAME($PID)
- Local $TEMP
- Local $PTR
- $PTR = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1161600, "dword")
- $TEMP = _READD2MEMORY($PID, $PTR + 185, "char[15]")
- Return $TEMP
- EndFunc
- Func GETGAMENAME($PID)
- Local $TEMP
- Local $PTR
- $PTR = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1161600, "dword")
- $TEMP = _READD2MEMORY($PID, $PTR + 27, "char[15]")
- Return $TEMP
- EndFunc
- Func GETMOUSECOORDS($PID)
- Local $TEMP
- Dim $TEMP[2]
- $TEMP[0] = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1161256, "dword")
- $TEMP[1] = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1161252, "dword")
- Return $TEMP
- EndFunc
- Func GETGAMEPING($PID)
- Local $TEMP
- $TEMP = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1153028, "dword")
- Return $TEMP
- EndFunc
- Func GETSERVERIP1($PID)
- Local $TEMP
- Local $PTR
- $PTR = _READD2MEMORY($PID, 1874639232, "dword")
- $TEMP = _READD2MEMORY($PID, $PTR + 51, "char[18]")
- Return $TEMP
- EndFunc
- Func GETSERVERIP2($PID)
- Local $TEMP
- $TEMP = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1000224, "char[18]")
- Return $TEMP
- EndFunc
- Func GETSERVERIP3($PID)
- Local $TEMP
- $TEMP = _READD2MEMORY($PID, 1872933368, "char[18]")
- Return $TEMP
- EndFunc
- Func GETGAMEFPS($PID)
- Local $TEMP
- $TEMP = _READD2MEMORY($PID, 1874641580, "dword")
- Return $TEMP
- EndFunc
- Func GETAUTOMAPTOGGLED($PID)
- Local $TEMP
- $TEMP = _READD2MEMORY($PID, 1874505128, "dword")
- Return $TEMP
- EndFunc
- Func GETRUNTOGGLED($PID)
- Local $TEMP
- $TEMP = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1164268, "dword")
- Return $TEMP
- EndFunc
- Func GETAREA($PID)
- Local $TEMP
- Local $TEMP2
- Dim $TEMP3[2]
- $TEMP = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1193136, "byte")
- Select
- Case $TEMP = 0
- $TEMP2 = "NONE"
- Case $TEMP = 1
- $TEMP2 = "ROGUE_ENCAMPMENT"
- Case $TEMP = 2
- $TEMP2 = "BLOOD_MOOR"
- Case $TEMP = 3
- $TEMP2 = "COLD_PLAINS"
- Case $TEMP = 4
- $TEMP2 = "STONY_FIELD"
- Case $TEMP = 5
- $TEMP2 = "DARK_WOOD"
- Case $TEMP = 6
- $TEMP2 = "BLACK_MARSH"
- Case $TEMP = 7
- $TEMP2 = "TAMOE_HIGHLAND"
- Case $TEMP = 8
- $TEMP2 = "DEN_OF_EVIL"
- Case $TEMP = 9
- $TEMP2 = "CAVE_LEVEL_1"
- Case $TEMP = 10
- $TEMP2 = "UNDERGROUND_PASSAGE_LEVEL_1"
- Case $TEMP = 11
- $TEMP2 = "HOLE_LEVEL_1"
- Case $TEMP = 12
- $TEMP2 = "PIT_LEVEL_1"
- Case $TEMP = 13
- $TEMP2 = "CAVE_LEVEL_2"
- Case $TEMP = 14
- $TEMP2 = "UNDERGROUND_PASSAGE_LEVEL_2"
- Case $TEMP = 15
- $TEMP2 = "HOLE_LEVEL_2"
- Case $TEMP = 16
- $TEMP2 = "PIT_LEVEL_2"
- Case $TEMP = 17
- $TEMP2 = "BURIAL_GROUNDS"
- Case $TEMP = 18
- $TEMP2 = "CRYPT"
- Case $TEMP = 19
- $TEMP2 = "MAUSOLEUM"
- Case $TEMP = 20
- $TEMP2 = "FORGOTTEN_TOWER"
- Case $TEMP = 21
- $TEMP2 = "TOWER_CELLAR_LEVEL_1"
- Case $TEMP = 22
- $TEMP2 = "TOWER_CELLAR_LEVEL_2"
- Case $TEMP = 23
- $TEMP2 = "TOWER_CELLAR_LEVEL_3"
- Case $TEMP = 24
- $TEMP2 = "TOWER_CELLAR_LEVEL_4"
- Case $TEMP = 25
- $TEMP2 = "TOWER_CELLAR_LEVEL_5"
- Case $TEMP = 26
- $TEMP2 = "MONASTERY_GATE"
- Case $TEMP = 27
- $TEMP2 = "OUTER_CLOISTER"
- Case $TEMP = 28
- $TEMP2 = "BARRACKS"
- Case $TEMP = 29
- $TEMP2 = "JAIL_LEVEL_1"
- Case $TEMP = 30
- $TEMP2 = "JAIL_LEVEL_2"
- Case $TEMP = 31
- $TEMP2 = "JAIL_LEVEL_3"
- Case $TEMP = 32
- $TEMP2 = "INNER_CLOISTER"
- Case $TEMP = 33
- $TEMP2 = "CATHEDRAL"
- Case $TEMP = 34
- $TEMP2 = "CATACOMBS_LEVEL_1"
- Case $TEMP = 35
- $TEMP2 = "CATACOMBS_LEVEL_2"
- Case $TEMP = 36
- $TEMP2 = "CATACOMBS_LEVEL_3"
- Case $TEMP = 37
- $TEMP2 = "CATACOMBS_LEVEL_4"
- Case $TEMP = 38
- $TEMP2 = "TRISTRAM"
- Case $TEMP = 39
- $TEMP2 = "MOO_MOO_FARM"
- Case $TEMP = 40
- $TEMP2 = "LUT_GHOLEIN"
- Case $TEMP = 41
- $TEMP2 = "ROCKY_WASTE"
- Case $TEMP = 42
- $TEMP2 = "DRY_HILLS"
- Case $TEMP = 43
- $TEMP2 = "FAR_OASIS"
- Case $TEMP = 44
- $TEMP2 = "LOST_CITY"
- Case $TEMP = 45
- $TEMP2 = "VALLEY_OF_SNAKES"
- Case $TEMP = 46
- $TEMP2 = "CANYON_OF_THE_MAGI"
- Case $TEMP = 47
- $TEMP2 = "SEWERS_LEVEL_1"
- Case $TEMP = 48
- $TEMP2 = "SEWERS_LEVEL_2"
- Case $TEMP = 49
- $TEMP2 = "SEWERS_LEVEL_3"
- Case $TEMP = 50
- $TEMP2 = "HAREM_LEVEL_1"
- Case $TEMP = 51
- $TEMP2 = "HAREM_LEVEL_2"
- Case $TEMP = 52
- $TEMP2 = "PALACE_CELLAR_LEVEL_1"
- Case $TEMP = 53
- $TEMP2 = "PALACE_CELLAR_LEVEL_2"
- Case $TEMP = 54
- $TEMP2 = "PALACE_CELLAR_LEVEL_3"
- Case $TEMP = 55
- $TEMP2 = "STONY_TOMB_LEVEL_1"
- Case $TEMP = 56
- $TEMP2 = "HALLS_OF_THE_DEAD_LEVEL_1"
- Case $TEMP = 57
- $TEMP2 = "HALLS_OF_THE_DEAD_LEVEL_2"
- Case $TEMP = 58
- $TEMP2 = "CLAW_VIPER_TEMPLE_LEVEL_1"
- Case $TEMP = 59
- $TEMP2 = "STONY_TOMB_LEVEL_2"
- Case $TEMP = 60
- $TEMP2 = "HALLS_OF_THE_DEAD_LEVEL_3"
- Case $TEMP = 61
- $TEMP2 = "CLAW_VIPER_TEMPLE_LEVEL_2"
- Case $TEMP = 62
- $TEMP2 = "MAGGOT_LAIR_LEVEL_1"
- Case $TEMP = 63
- $TEMP2 = "MAGGOT_LAIR_LEVEL_2"
- Case $TEMP = 64
- $TEMP2 = "MAGGOT_LAIR_LEVEL_3"
- Case $TEMP = 65
- $TEMP2 = "ANCIENT_TUNNELS"
- Case $TEMP = 66
- $TEMP2 = "TAL_RASHAS_TOMB1"
- Case $TEMP = 67
- $TEMP2 = "TAL_RASHAS_TOMB2"
- Case $TEMP = 68
- $TEMP2 = "TAL_RASHAS_TOMB3"
- Case $TEMP = 69
- $TEMP2 = "TAL_RASHAS_TOMB4"
- Case $TEMP = 70
- $TEMP2 = "TAL_RASHAS_TOMB5"
- Case $TEMP = 71
- $TEMP2 = "TAL_RASHAS_TOMB6"
- Case $TEMP = 72
- $TEMP2 = "TAL_RASHAS_TOMB7"
- Case $TEMP = 73
- $TEMP2 = "DURIELS_LAIR"
- Case $TEMP = 74
- $TEMP2 = "ARCANE_SANCTUARY"
- Case $TEMP = 75
- $TEMP2 = "KURAST_DOCKTOWN"
- Case $TEMP = 76
- $TEMP2 = "SPIDER_FOREST"
- Case $TEMP = 77
- $TEMP2 = "GREAT_MARSH"
- Case $TEMP = 78
- $TEMP2 = "FLAYER_JUNGLE"
- Case $TEMP = 79
- $TEMP2 = "LOWER_KURAST"
- Case $TEMP = 80
- $TEMP2 = "KURAST_BAZAAR"
- Case $TEMP = 81
- $TEMP2 = "UPPER_KURAST"
- Case $TEMP = 82
- $TEMP2 = "KURAST_CAUSEWAY"
- Case $TEMP = 83
- $TEMP2 = "TRAVINCAL"
- Case $TEMP = 84
- $TEMP2 = "SPIDER_CAVE"
- Case $TEMP = 85
- $TEMP2 = "SPIDER_CAVERN"
- Case $TEMP = 86
- $TEMP2 = "SWAMPY_PIT_LEVEL_1"
- Case $TEMP = 87
- $TEMP2 = "SWAMPY_PIT_LEVEL_2"
- Case $TEMP = 88
- $TEMP2 = "FLAYER_DUNGEON_LEVEL_1"
- Case $TEMP = 89
- $TEMP2 = "FLAYER_DUNGEON_LEVEL_2"
- Case $TEMP = 90
- $TEMP2 = "SWAMPY_PIT_LEVEL_3"
- Case $TEMP = 91
- $TEMP2 = "FLAYER_DUNGEON_LEVEL_3"
- Case $TEMP = 92
- $TEMP2 = "SEWERS_LEVEL_1"
- Case $TEMP = 93
- $TEMP2 = "SEWERS_LEVEL_2"
- Case $TEMP = 94
- $TEMP2 = "RUINED_TEMPLE"
- Case $TEMP = 95
- $TEMP2 = "DISUSED_FANE"
- Case $TEMP = 96
- $TEMP2 = "FORGOTTEN_RELIQUARY"
- Case $TEMP = 97
- $TEMP2 = "FORGOTTEN_TEMPLE"
- Case $TEMP = 98
- $TEMP2 = "RUINED_FANE"
- Case $TEMP = 99
- $TEMP2 = "DISUSED_RELIQUARY"
- Case $TEMP = 100
- $TEMP2 = "DURANCE_OF_HATE_LEVEL_1"
- Case $TEMP = 101
- $TEMP2 = "DURANCE_OF_HATE_LEVEL_2"
- Case $TEMP = 102
- $TEMP2 = "DURANCE_OF_HATE_LEVEL_3"
- Case $TEMP = 103
- $TEMP2 = "THE_PANDEMONIUM_FORTRESS"
- Case $TEMP = 104
- $TEMP2 = "OUTER_STEPPES"
- Case $TEMP = 105
- $TEMP2 = "PLAINS_OF_DESPAIR"
- Case $TEMP = 106
- $TEMP2 = "CITY_OF_THE_DAMNED"
- Case $TEMP = 107
- $TEMP2 = "RIVER_OF_FLAME"
- Case $TEMP = 108
- $TEMP2 = "CHAOS_SANCTUM"
- Case $TEMP = 109
- $TEMP2 = "HARROGATH"
- Case $TEMP = 110
- $TEMP2 = "BLOODY_FOOTHILLS"
- Case $TEMP = 111
- $TEMP2 = "FRIGID_HIGHLANDS"
- Case $TEMP = 112
- $TEMP2 = "ARREAT_PLATEAU"
- Case $TEMP = 113
- $TEMP2 = "CRYSTALLINE_PASSAGE"
- Case $TEMP = 114
- $TEMP2 = "FROZEN_RIVER"
- Case $TEMP = 115
- $TEMP2 = "GLACIAL_TRAIL"
- Case $TEMP = 116
- $TEMP2 = "ECHO_CHAMBER"
- Case $TEMP = 117
- $TEMP2 = "FROZEN_TUNDRA"
- Case $TEMP = 118
- $TEMP2 = "ANCIENTS_WAY"
- Case $TEMP = 119
- $TEMP2 = "GLACIAL_CAVES_LEVEL_2"
- Case $TEMP = 120
- $TEMP2 = "ROCKY_SUMMIT"
- Case $TEMP = 121
- $TEMP2 = "NIHLATHAKS_TEMPLE"
- Case $TEMP = 122
- $TEMP2 = "HALLS_OF_ANGUISH"
- Case $TEMP = 123
- $TEMP2 = "HALLS_OF_PAIN"
- Case $TEMP = 124
- $TEMP2 = "HALLS_OF_VAUGHT"
- Case $TEMP = 125
- $TEMP2 = "HELL1"
- Case $TEMP = 126
- $TEMP2 = "HELL2"
- Case $TEMP = 127
- $TEMP2 = "HELL3"
- Case $TEMP = 128
- $TEMP2 = "THE_WORLDSTONE_KEEP_LEVEL_1"
- Case $TEMP = 129
- $TEMP2 = "THE_WORLDSTONE_KEEP_LEVEL_2"
- Case $TEMP = 130
- $TEMP2 = "THE_WORLDSTONE_KEEP_LEVEL_3"
- Case $TEMP = 131
- $TEMP2 = "THRONE_OF_DESTRUCTION"
- Case $TEMP = 132
- $TEMP2 = "THE_WORLDSTONE_CHAMBER"
- EndSelect
- $TEMP3[0] = $TEMP
- $TEMP3[1] = $TEMP2
- Return $TEMP3
- EndFunc
- Func GETCHARCOORDS($PID)
- Local $TEMP
- Dim $TEMP[2]
- $TEMP[0] = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1193169, "short")
- $TEMP[1] = _READD2MEMORY($PID, $D2CLIENT_OFFSET + 1193171, "short")
- Return $TEMP
- EndFunc
- Func DETECTWPSCREEN($PID)
- Local $TEMP
- Local $TEMP2
- $TEMP = GETCHARCOORDS($PID)
- If $TEMP[0] = 2 And $TEMP[1] = 0 Then
- Return True
- Else
- Return False
- EndIf
- EndFunc
- Func GETSTARTACT($PID)
- Local $TEMP
- Local $TEMP2
- $TEMP = GETAREA($PID)
- Select
- Case $TEMP[0] = 1
- $TEMP2 = 1
- Case $TEMP[0] = 40
- $TEMP2 = 2
- Case $TEMP[0] = 75
- $TEMP2 = 3
- Case $TEMP[0] = 103
- $TEMP2 = 4
- Case $TEMP[0] = 109
- $TEMP2 = 5
- Case Else
- $TEMP2 = 0
- EndSelect
- Return $TEMP2
- EndFunc
- Func DETECTINTOWN($PID)
- Local $TEMP
- Local $TEMP2
- $TEMP = GETAREA($PID)
- Select
- Case $TEMP[0] = 1
- $TEMP2 = True
- Case $TEMP[0] = 40
- $TEMP2 = True
- Case $TEMP[0] = 75
- $TEMP2 = True
- Case $TEMP[0] = 103
- $TEMP2 = True
- Case $TEMP[0] = 109
- $TEMP2 = True
- Case Else
- $TEMP2 = False
- EndSelect
- Return $TEMP2
- EndFunc
- Func _MOUSECLICKMINIMIZED($HANDLE, $BUTTON = "left", $X = "", $Y = "", $CLICKS = 1)
- Local $MK_LBUTTON = 1
- Local $WM_LBUTTONDOWN = 513
- Local $WM_LBUTTONUP = 514
- Local $MK_RBUTTON = 2
- Local $WM_RBUTTONDOWN = 516
- Local $WM_RBUTTONUP = 517
- Local $WM_MOUSEMOVE = 512
- Local $I = 0
- Select
- Case $BUTTON = "right"
- $BUTTON = $MK_RBUTTON
- $BUTTONDOWN = $WM_RBUTTONDOWN
- $BUTTONUP = $WM_RBUTTONUP
- Case $BUTTON = "left"
- $BUTTON = $MK_LBUTTON
- $BUTTONDOWN = $WM_LBUTTONDOWN
- $BUTTONUP = $WM_LBUTTONUP
- Case Else
- Exit
- EndSelect
- If $X = "" Or $Y = "" Then
- Exit
- EndIf
- For $I = 1 To $CLICKS
- DllCall("user32.dll", "int", "SendMessage", "hwnd", $HANDLE, "int", $WM_MOUSEMOVE, "int", 0, "long", _MAKELONG($X, $Y))
- DllCall("user32.dll", "int", "SendMessage", "hwnd", $HANDLE, "int", $BUTTONDOWN, "int", $BUTTON, "long", _MAKELONG($X, $Y))
- DllCall("user32.dll", "int", "SendMessage", "hwnd", $HANDLE, "int", $BUTTONUP, "int", $BUTTON, "long", _MAKELONG($X, $Y))
- Next
- EndFunc
- Func _MOUSEMOVEMINIMIZED($HANDLE, $X = "", $Y = "")
- Local $WM_MOUSEMOVE = 512
- Local $I = 0
- If $X = "" Or $Y = "" Then
- Exit
- EndIf
- DllCall("user32.dll", "int", "SendMessage", "hwnd", $HANDLE, "int", $WM_MOUSEMOVE, "int", 0, "long", _MAKELONG($X, $Y))
- EndFunc
- Func _SENDMINIMIZED($HANDLE, $KEYS)
- ControlSend($HANDLE, "", "", $KEYS)
- EndFunc
- Func _MAKELONG($LOWORD, $HIWORD)
- Return BitOR($HIWORD * 65536, BitAND($LOWORD, 65535))
- EndFunc
- Func _INGAMESCRIPTS($RUN)
- Sleep(500)
- $TIME = TimerInit()
- While $CURRENTPOS <> 4
- _DETECTINGAME()
- If $INGAME = True Then
- ExitLoop
- EndIf
- Sleep(800)
- If Round(TimerDiff($TIME), 1) > 35000 Then
- _WHEREAMI()
- If $CURRENTPOS <> 4 Then
- _NAVIGATETO(4)
- _INGAMESCRIPTS($RUN)
- EndIf
- ExitLoop
- EndIf
- WEnd
- $CURRENTPOS = 4
- Select
- Case $RUN = "IpScript"
- If $MINIMIZED = "Yes" Then
- $CURRENTPOS = 4
- EndIf
- $WAITONHOTIP = IniRead(@ScriptDir & "\Settings.ini", "IPSCRIPTOPTIONS", "WaitOnHotIp", "6000")
- _GETGAMEIP()
- If $CURRENTIP = $WANTEDIP1 Then
- TrayTip("SIPBot", $GAMENAMEFINAL & " had the ip: " & $CURRENTIP & " (Hot)", 5, 1)
- $WARMNESS = "Hot"
- _ZLEEP(2000, 5000)
- TrayTip("", "", 5, 1)
- _IDLEINGAME()
- _EXITGAME()
- ElseIf $CURRENTIP = $WANTEDIP2 Then
- TrayTip("SIPBot", $GAMENAMEFINAL & " had the ip: " & $CURRENTIP & " (Hot)", 5, 1)
- $WARMNESS = "Hot"
- _ZLEEP(2000, 5000)
- TrayTip("", "", 5, 1)
- _IDLEINGAME()
- _EXITGAME()
- ElseIf $CURRENTIP = $WANTEDIP3 Then
- TrayTip("SIPBot", $GAMENAMEFINAL & " had the ip: " & $CURRENTIP & " (Hot)", 5, 1)
- $WARMNESS = "Hot"
- _ZLEEP(2000, 5000)
- TrayTip("", "", 5, 1)
- _IDLEINGAME()
- _EXITGAME()
- ElseIf $CURRENTIP = $WANTEDIP4 Then
- TrayTip("SIPBot", $GAMENAMEFINAL & " had the ip: " & $CURRENTIP & " (Hot)", 5, 1)
- $WARMNESS = "Hot"
- _ZLEEP(2000, 5000)
- TrayTip("", "", 5, 1)
- _IDLEINGAME()
- _EXITGAME()
- Else
- TrayTip("SIPBot", $GAMENAMEFINAL & " had the ip: " & $CURRENTIP & " (Cold)", 5, 1)
- $WARMNESS = "Cold"
- _ZLEEP(2000, 5000)
- TrayTip("", "", 5, 1)
- _EXITGAME()
- EndIf
- EndSelect
- EndFunc
- $PID = OPEND2()
- _AUTOLOGINMINI()
- _SELECTCHARMINI()
- _CREATEGAME()
- While 1
- $MSG = GETLASTCHATMSG($PID)
- If $MSG = "s" Then
- Sleep(100)
- Else
- JOINGAME1()
- $KEY = IniRead("joiner.ini", "global", "games", "0")
- IniWrite("joiner.ini", "global", "games", $KEY + 1)
- EndIf
- Sleep(100)
- WEnd
- Func JOINGAME1()
- Sleep(5000)
- $GAME = GETLASTCHATMSG($PID)
- $TITLE1 = "Diablo II"
- ControlSend($TITLE1, "", "", "5")
- Sleep(5000)
- ControlClick($TITLE1, "", "", "left", "1", "716", "460")
- Sleep(200)
- ControlSend($TITLE1, "", "", $GAME)
- Sleep(300)
- ControlSend($TITLE1, "", "", "{TAB}")
- Sleep(300)
- ControlSend($TITLE1, "", "", "okm")
- Sleep(300)
- ControlSend($TITLE1, "", "", "{ENTER}")
- EndFunc
- Func _EXITGAME()
- $TITLE1 = "Diablo II"
- DEBUG(259, "Navigations.au3", "Exiting game.")
- _SENDMINIMIZED($TITLE1, "{Esc}")
- _ZLEEP(500, 600)
- _SENDMINIMIZED($TITLE1, "{up}")
- _ZLEEP(500, 600)
- _SENDMINIMIZED($TITLE1, "{ENTER}")
- Sleep($MINIWAITTIME / 3)
- For $RETRIES = 1 To 20 Step 1
- _DETECTLOBBY()
- If $INLOBBY = True Then
- $CURRENTPOS = 3
- ExitLoop
- Else
- Sleep(500)
- EndIf
- Next
- EndFunc
- ; DeTokenise by myAut2Exe >The Open Source AutoIT/AutoHotKey script decompiler< 2.9 build(146)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement