Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

Afford Bot Genesis


Afford
 Compartilhar

Posts Recomendados

tem ele na comunidade ! so nao edito pq algum moderador deu ban nesse conta.

 

algum modera poderia tirar o ban da minha outra conta Nome: Afford

 

Caro amigo, me admira voce dizer não saber o motivo de sua conta ser banida, então vamos la, o seu afford bot 1.0 veio com "Trojan.Win32.Spy.KeyLogger.NMB!A2" de presente conforme segue o scan abaixo, alem de que o seu scan postado na época é falso, não sei porque o moderador ainda não removeu o link dele. e nem vem dizer que é preciso pra o bot funcionar pois bot nenhum funciona com keylogger, vendo que esse seu bot é uma recompilação do propethbot o qual eu ja postei um tutorial de como o usuario pode ele mesmo compilar o propeth.. então amigo ..ta ai o motivo.. seu afford bot 1.0 tem 5 virus dentre eles um KEYLOGGER, sem mais pelo momento a declarar

 

É necessário se cadastrar para acessar o conteúdo.

Link para o comentário
Compartilhar em outros sites

Caro amigo, me admira voce dizer não saber o motivo de sua conta ser banida, então vamos la, o seu afford bot 1.0 veio com "Trojan.Win32.Spy.KeyLogger.NMB!A2" de presente conforme segue o scan abaixo, alem de que o seu scan postado na época é falso, não sei porque o moderador ainda não removeu o link dele. e nem vem dizer que é preciso pra o bot funcionar pois bot nenhum funciona com keylogger, vendo que esse seu bot é uma recompilação do propethbot o qual eu ja postei um tutorial de como o usuario pode ele mesmo compilar o propeth.. então amigo ..ta ai o motivo.. seu afford bot 1.0 tem 5 virus dentre eles um KEYLOGGER, sem mais pelo momento a declarar

 

É necessário se cadastrar para acessar o conteúdo.

 

se vc soubesse oque é um bot saberia que ele vai capturar sua tecla F11 F10 pra adicionar os mobs por isso da um falso positivo no virus total!

Link para o comentário
Compartilhar em outros sites

se vc soubesse oque é um bot saberia que ele vai capturar sua tecla F11 F10 pra adicionar os mobs por isso da um falso positivo no virus total!

realmente tanto é que não sei que eu ja li todo o codigo do Propeth enfim para capturar as teclas não se usa keylogger e sim procedures de input e get enfim, quem quiser tirar as duvidas sobre "falsos positivos" é facil pega o original "propeth" e manda pra o vt, pode ver qeu tera monte de falsos positivos mas nunca KEYLOGGER . várias compilações (dentre elas a do msfox) que USA o F11 e F10 para capturar os mobs que TAMBEM é COMPILAÇÃO do PROPETH que nem o SEU, e não acusaram KEYLOGGER . enfim se realmente é tão bom disponibiliza o .AU3 para os porprios usuários RECOMPILAREM. é mais simples já que o Código é livre, voce apenas mudou as cores e o nome.

 

ps.: posso não entender de bot, mas .. BASIC, DBASE, FoxBASE, CLIPPER, DELPHI, ORACLE, C++ entendo , enfim jamais fale dos outros que voce não conhece.. isso no seu bot versão 1.0 não é e nunca foi falso positivo ok..

 

ps2.: Se for pra dizer que as teclas f10 e f11 dão falso positivo então pela logica o OFICIAL tambem deveria dar correto? então segue abaixo o scan do propeth oficial e tirem suas duvidas voces mesmo

 

É necessário se cadastrar para acessar o conteúdo.

É necessário se cadastrar para acessar o conteúdo.

Nenhum acusou Keylogger como "Falso positivo" e como o seu afford é recompilação do Propeth, como explica ? deveria no minimo dar 1 ou 2 virus conforme mostrado acima ou seja. é considerado falso scan do porpeth apenas o "Trojan.Spy.Gen.b" e o "Trojan.Agent/Gen-Goo" conforme qualquer pessoa pode constatar ao baixar e enviar do SITE OFICIAL . ja o seu tem ao todo 5 e entre eles um KEYLOGGER..

 

Bem em relação ao 1.5.2

É necessário se cadastrar para acessar o conteúdo.

 

explica o por que ele não tem o "keylogger" que voce mesmo diz ser falso scan, ja que ambos foram recompilados acredito eu do mesmo codigo fonte.. se voce ler postagens antigas minhas neste mesmo topico vera que ao 1.5.2 eu nem falei contra

 

enfim...

BAIXA QUEM QUER , USE POR CONTA PRÓPRIA

Link para o comentário
Compartilhar em outros sites

é so decompilar:inocente: poir eu nao packiei ele

 

Tudo bem aceitei o desafio e fiz engenharia reversa no seu .exe e na mesma hora recompilei enviando para o VT o qual me deu o seguinte resultado

É necessário se cadastrar para acessar o conteúdo.

pode notar que somente os 2 virus de senpre , ou seja o falso scan, "Trojan.Spy.Gen.b" e o " Trojan.Agent/Gen-Goo", nada de Keylogger conforme supracitado

 

Agora vou lhe dizer uma coisa a respeito da DESCOMPILAÇÃO do autoit, ele simplismente converte para .AU3 apenas os codigos dele, no caso quando se ingeta um KL ele vai no adress do .exe e coloca o codigo especifico, e na descompilação esse adress não é copiado. no caso não é só descompilar conforme voce citou, pois para constatar que o ,exe esta infectado teria que usar o ollydbg e abrir os 2 .exe e ir comparando adress por adress , visto que o KL usado não foi o ardamax, e ver qual adress esta modificado. enfim tenho mais coisa importante pra fazer qeu ficar brincando de engenharia reversa em um codigo .exe que foi provado ser KL,

 

enfim apenas respondi o uqe voce indagou , o seu 1.5.2 até que prove oa contrario esta limpo, mas o 1.0 com certeza nao.. enfim encerro aqui ..

 

codigo descompilado do afford 1.0

 

#RequireAdmin

#region

#AutoIt3Wrapper_icon=icon.ico

#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

 

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 $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 $TAGGDIPEN*****PARAM = "byte GUID[16];dword Count;dword Type;ptr Values"

Global Const $TAGGDIPEN*****PARAMS = "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 $TAGGDIPPEN*****PARAMS = "dword Count;byte Params[0]"

Global Const $TAGHDITEM = "uint Mask;int XY;ptr Text;handle hBMP;int TextMax;int Fmt;lparam Param;int Image;int Order;uint Type;ptr pFilter;uint State"

Global Const $TAGNMHDDISPINFO = $TAGNMHDR & ";int Item;uint Mask;ptr Text;int TextMax;int Image;lparam lParam"

Global Const $TAGNMHDFILTERBTNCLICK = $TAGNMHDR & ";int Item;" & $TAGRECT

Global Const $TAGNMHEADER = $TAGNMHDR & ";int Item;int Button;ptr pItem"

Global Const $TAGGETIPADDRESS = "byte Field4;byte Field3;byte Field2;byte Field1"

Global Const $TAGNMIPADDRESS = $TAGNMHDR & ";int Field;int Value"

Global Const $TAGLVFINDINFO = "uint Flags;ptr Text;lparam Param;" & $TAGPOINT & ";uint Direction"

Global Const $TAGLVHITTESTINFO = $TAGPOINT & ";uint Flags;int Item;int SubItem"

Global Const $TAGLVITEM = "uint Mask;int Item;int SubItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;lparam Param;" & "int Indent;int GroupID;uint Columns;ptr pColumns"

Global Const $TAGNMLISTVIEW = $TAGNMHDR & ";int Item;int SubItem;uint NewState;uint OldState;uint Changed;" & "long ActionX;long ActionY;lparam Param"

Global Const $TAGNMLVCUSTOMDRAW = $TAGNMHDR & ";dword dwDrawStage;handle hdc;long Left;long Top;long Right;long Bottom;" & "dword_ptr dwItemSpec;uint uItemState;lparam lItemlParam" & ";dword clrText;dword clrTextBk;int iSubItem;dword dwItemType;dword clrFace;int iIconEffect;" & "int iIconPhase;int iPartId;int iStateId;long TextLeft;long TextTop;long TextRight;long TextBottom;uint uAlign"

Global Const $TAGNMLVDISPINFO = $TAGNMHDR & ";" & $TAGLVITEM

Global Const $TAGNMLVFINDITEM = $TAGNMHDR & ";" & $TAGLVFINDINFO

Global Const $TAGNMLVGETINFOTIP = $TAGNMHDR & ";dword Flags;ptr Text;int TextMax;int Item;int SubItem;lparam lParam"

Global Const $TAGNMITEMACTIVATE = $TAGNMHDR & ";int Index;int SubItem;uint NewState;uint OldState;uint Changed;" & $TAGPOINT & ";lparam lParam;uint KeyFlags"

Global Const $TAGNMLVKEYDOWN = $TAGNMHDR & ";align 1;word VKey;uint Flags"

Global Const $TAGNMLVSCROLL = $TAGNMHDR & ";int DX;int DY"

Global Const $TAGMCHITTESTINFO = "uint Size;" & $TAGPOINT & ";uint Hit;" & $TAGSYSTEMTIME

Global Const $TAGMCMONTHRANGE = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short Span"

Global Const $TAGMCRANGE = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short MinSet;short MaxSet"

Global Const $TAGMCSELRANGE = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds"

Global Const $TAGNMDAYSTATE = $TAGNMHDR & ";" & $TAGSYSTEMTIME & ";int DayState;ptr pDayState"

Global Const $TAGNMSELCHANGE = $TAGNMHDR & ";word BegYear;word BegMonth;word BegDOW;word BegDay;" & "word BegHour;word BegMinute;word BegSecond;word BegMSeconds;word EndYear;word EndMonth;word EndDOW;" & "word EndDay;word EndHour;word EndMinute;word EndSecond;word EndMSeconds"

Global Const $TAGNMOBJECTNOTIFY = $TAGNMHDR & ";int Item;ptr piid;ptr pObject;long Result"

Global Const $TAGNMTCKEYDOWN = $TAGNMHDR & ";word VKey;uint Flags"

Global Const $TAGTVITEM = "uint Mask;handle hItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;int SelectedImage;" & "int Children;lparam Param"

Global Const $TAGTVITEMEX = $TAGTVITEM & ";int Integral"

Global Const $TAGNMTREEVIEW = $TAGNMHDR & ";uint Action;uint OldMask;handle OldhItem;uint OldState;uint OldStateMask;" & "ptr OldText;int OldTextMax;int OldImage;int OldSelectedImage;int OldChildren;lparam OldParam;uint NewMask;handle NewhItem;" & "uint NewState;uint NewStateMask;ptr NewText;int NewTextMax;int NewImage;int NewSelectedImage;int NewChildren;" & "lparam NewParam;long PointX;long PointY"

Global Const $TAGNMTVCUSTOMDRAW = $TAGNMHDR & ";dword DrawStage;handle HDC;long Left;long Top;long Right;long Bottom;" & "dword_ptr ItemSpec;uint ItemState;lparam ItemParam;dword ClrText;dword ClrTextBk;int Level"

Global Const $TAGNMTVDISPINFO = $TAGNMHDR & ";" & $TAGTVITEM

Global Const $TAGNMTVGETINFOTIP = $TAGNMHDR & ";ptr Text;int TextMax;handle hItem;lparam lParam"

Global Const $TAGTVHITTESTINFO = $TAGPOINT & ";uint Flags;handle Item"

Global Const $TAGNMTVKEYDOWN = $TAGNMHDR & ";word VKey;uint Flags"

Global Const $TAGNMMOUSE = $TAGNMHDR & ";dword_ptr ItemSpec;dword_ptr ItemData;" & $TAGPOINT & ";lparam HitInfo"

Global Const $TAGTOKEN_PRIVILEGES = "dword Count;int64 LUID;dword Attributes"

Global Const $TAGIMAGEINFO = "handle hBitmap;handle hMask;int Unused1;int Unused2;" & $TAGRECT

Global Const $TAGMENUINFO = "dword Size;INT Mask;dword Style;uint YMax;handle hBack;dword ContextHelpID;ulong_ptr MenuData"

Global Const $TAGMENUITEMINFO = "uint Size;uint Mask;uint Type;uint State;uint ID;handle SubMenu;handle BmpChecked;handle BmpUnchecked;" & "ulong_ptr ItemData;ptr TypeData;uint CCH;handle BmpItem"

Global Const $TAGREBARBANDINFO = "uint cbSize;uint fMask;uint fStyle;dword clrFore;dword clrBack;ptr lpText;uint cch;" & "int iImage;hwnd hwndChild;uint cxMinChild;uint cyMinChild;uint cx;handle hbmBack;uint wID;uint cyChild;uint cyMaxChild;" & "uint cyIntegral;uint cxIdeal;lparam lParam;uint cxHeader"

Global Const $TAGNMREBARAUTOBREAK = $TAGNMHDR & ";uint uBand;uint wID;lparam lParam;uint uMsg;uint fStyleCurrent;bool fAutoBreak"

Global Const $TAGNMRBAUTOSIZE = $TAGNMHDR & ";bool fChanged;long TargetLeft;long TargetTop;long TargetRight;long TargetBottom;" & "long ActualLeft;long ActualTop;long ActualRight;long ActualBottom"

Global Const $TAGNMREBAR = $TAGNMHDR & ";dword dwMask;uint uBand;uint fStyle;uint wID;laram lParam"

Global Const $TAGNMREBARCHEVRON = $TAGNMHDR & ";uint uBand;uint wID;lparam lParam;" & $TAGRECT & ";lparam lParamNM"

Global Const $TAGNMREBARCHILDSIZE = $TAGNMHDR & ";uint uBand;uint wID;long CLeft;long CTop;long CRight;long CBottom;" & "long BLeft;long BTop;long BRight;long BBottom"

Global Const $TAGCOLORSCHEME = "dword Size;dword BtnHighlight;dword BtnShadow"

Global Const $TAGNMTOOLBAR = $TAGNMHDR & ";int iItem;" & "int iBitmap;int idCommand;byte fsState;byte fsStyle;align;dword_ptr dwData;int_ptr iString" & ";int cchText;ptr pszText;" & $TAGRECT

Global Const $TAGNMTBHOTITEM = $TAGNMHDR & ";int idOld;int idNew;dword dwFlags"

Global Const $TAGTBBUTTON = "int Bitmap;int Command;byte State;byte Style;align;dword_ptr Param;int_ptr String"

Global Const $TAGTBBUTTONINFO = "uint Size;dword Mask;int Command;int Image;byte State;byte Style;word CX;dword_ptr Param;ptr Text;int TextMax"

Global Const $TAGNETRESOURCE = "dword Scope;dword Type;dword DisplayType;dword Usage;ptr LocalName;ptr RemoteName;ptr Comment;ptr Provider"

Global Const $TAGOVERLAPPED = "ulong_ptr Internal;ulong_ptr InternalHigh;dword Offset;dword OffsetHigh;handle hEvent"

Global Const $TAGOPENFILENAME = "dword StructSize;hwnd hwndOwner;handle hInstance;ptr lpstrFilter;ptr lpstrCustomFilter;" & "dword nMaxCustFilter;dword nFilterIndex;ptr lpstrFile;dword nMaxFile;ptr lpstrFileTitle;dword nMaxFileTitle;" & "ptr lpstrInitialDir;ptr lpstrTitle;dword Flags;word nFileOffset;word nFileExtension;ptr lpstrDefExt;lparam lCustData;" & "ptr lpfnHook;ptr lpTemplateName;ptr pvReserved;dword dwReserved;dword FlagsEx"

Global Const $TAGBITMAPINFO = "dword Size;long Width;long Height;word Planes;word BitCount;dword Compression;dword SizeImage;" & "long XPelsPerMeter;long YPelsPerMeter;dword ClrUsed;dword ClrImportant;dword RGBQuad"

Global Const $TAGBLENDFUNCTION = "byte Op;byte Flags;byte Alpha;byte Format"

Global Const $TAGGUID = "dword Data1;word Data2;word Data3;byte Data4[8]"

Global Const $TAGWINDOWPLACEMENT = "uint length; uint flags;uint showCmd;long ptMinPosition[2];long ptMaxPosition[2];long rcNormalPosition[4]"

Global Const $TAGWINDOWPOS = "hwnd hWnd;hwnd InsertAfter;int X;int Y;int CX;int CY;uint Flags"

Global Const $TAGSCROLLINFO = "uint cbSize;uint fMask;int nMin;int nMax;uint nPage;int nPos;int nTrackPos"

Global Const $TAGSCROLLBARINFO = "dword cbSize;" & $TAGRECT & ";int dxyLineButton;int xyThumbTop;" & "int xyThumbBottom;int reserved;dword rgstate[6]"

Global Const $TAGLOGFONT = "long Height;long Width;long Escapement;long Orientation;long Weight;byte Italic;byte Underline;" & "byte Strikeout;byte CharSet;byte OutPrecision;byte ClipPrecision;byte Quality;byte PitchAndFamily;wchar FaceName[32]"

Global Const $TAGKBDLLHOOKSTRUCT = "dword vkCode;dword scanCode;dword flags;dword time;ulong_ptr dwExtraInfo"

Global Const $TAGPROCESS_INFORMATION = "handle hProcess;handle hThread;dword ProcessID;dword ThreadID"

Global Const $TAGSTARTUPINFO = "dword Size;ptr Reserved1;ptr Desktop;ptr Title;dword X;dword Y;dword XSize;dword YSize;dword XCountChars;" & "dword YCountChars;dword FillAttribute;dword Flags;word ShowWindow;word Reserved2;ptr Reserved3;handle StdInput;" & "handle StdOutput;handle StdError"

Global Const $TAGSECURITY_ATTRIBUTES = "dword Length;ptr Descriptor;bool InheritHandle"

Global Const $TAGWIN32_FIND_DATA = "dword dwFileAttributes; dword ftCreationTime[2]; dword ftLastAccessTime[2]; dword ftLastWriteTime[2]; dword nFileSizeHigh; dword nFileSizeLow; dword dwReserved0; dword dwReserved1; wchar cFileName[260]; wchar cAlternateFileName[14]"

Global Const $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 $ERROR_NO_TOKEN = 1008

Global Const $SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege"

Global Const $SE_AUDIT_NAME = "SeAuditPrivilege"

Global Const $SE_BACKUP_NAME = "SeBackupPrivilege"

Global Const $SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege"

Global Const $SE_CREATE_GLOBAL_NAME = "SeCreateGlobalPrivilege"

Global Const $SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege"

Global Const $SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege"

Global Const $SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege"

Global Const $SE_DEBUG_NAME = "SeDebugPrivilege"

Global Const $SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege"

Global Const $SE_IMPERSONATE_NAME = "SeImpersonatePrivilege"

Global Const $SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege"

Global Const $SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege"

Global Const $SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege"

Global Const $SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege"

Global Const $SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege"

Global Const $SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege"

Global Const $SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege"

Global Const $SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege"

Global Const $SE_RESTORE_NAME = "SeRestorePrivilege"

Global Const $SE_SECURITY_NAME = "SeSecurityPrivilege"

Global Const $SE_SHUTDOWN_NAME = "SeShutdownPrivilege"

Global Const $SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege"

Global Const $SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege"

Global Const $SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege"

Global Const $SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege"

Global Const $SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege"

Global Const $SE_TCB_NAME = "SeTcbPrivilege"

Global Const $SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege"

Global Const $SE_UNDOCK_NAME = "SeUndockPrivilege"

Global Const $SE_PRIVILEGE_ENABLED_BY_DEFAULT = 1

Global Const $SE_PRIVILEGE_ENABLED = 2

Global Const $SE_PRIVILEGE_REMOVED = 4

Global Const $SE_PRIVILEGE_USED_FOR_ACCESS = -2147483648

Global Const $TOKENUSER = 1

Global Const $TOKENGROUPS = 2

Global Const $TOKENPRIVILEGES = 3

Global Const $TOKENOWNER = 4

Global Const $TOKENPRIMARYGROUP = 5

Global Const $TOKENDEFAULTDACL = 6

Global Const $TOKENSOURCE = 7

Global Const $TOKENTYPE = 8

Global Const $TOKENIMPERSONATIONLEVEL = 9

Global Const $TOKENSTATISTICS = 10

Global Const $TOKENRESTRICTEDSIDS = 11

Global Const $TOKENSESSIONID = 12

Global Const $TOKENGROUPSANDPRIVILEGES = 13

Global Const $TOKENSESSIONREFERENCE = 14

Global Const $TOKENSANDBOXINERT = 15

Global Const $TOKENAUDITPOLICY = 16

Global Const $TOKENORIGIN = 17

Global Const $TOKENELEVATIONTYPE = 18

Global Const $TOKENLINKEDTOKEN = 19

Global Const $TOKENELEVATION = 20

Global Const $TOKENHASRESTRICTIONS = 21

Global Const $TOKENACCESSINFORMATION = 22

Global Const $TOKENVIRTUALIZATIONALLOWED = 23

Global Const $TOKENVIRTUALIZATIONENABLED = 24

Global Const $TOKENINTEGRITYLEVEL = 25

Global Const $TOKENUIACCESS = 26

Global Const $TOKENMANDATORYPOLICY = 27

Global Const $TOKENLOGONSID = 28

Global Const $TOKEN_ASSIGN_PRIMARY = 1

Global Const $TOKEN_DUPLICATE = 2

Global Const $TOKEN_IMPERSONATE = 4

Global Const $TOKEN_QUERY = 8

Global Const $TOKEN_QUERY_SOURCE = 16

Global Const $TOKEN_ADJUST_PRIVILEGES = 32

Global Const $TOKEN_ADJUST_GROUPS = 64

Global Const $TOKEN_ADJUST_DEFAULT = 128

Global Const $TOKEN_ADJUST_SESSIONID = 256

 

Func _WINAPI_GETLASTERROR($CURERR = @error, $CUREXT = @extended)

Local $ARESULT = DllCall("kernel32.dll", "dword", "GetLastError")

Return SetError($CURERR, $CUREXT, $ARESULT[0])

EndFunc

 

 

Func _WINAPI_SETLASTERROR($IERRCODE, $CURERR = @error, $CUREXT = @extended)

DllCall("kernel32.dll", "none", "SetLastError", "dword", $IERRCODE)

Return SetError($CURERR, $CUREXT)

EndFunc

 

 

Func _SECURITY__ADJUSTTOKENPRIVILEGES($HTOKEN, $FDISABLEALL, $PNEWSTATE, $IBUFFERLEN, $PPREVSTATE = 0, $PREQUIRED = 0)

Local $ARESULT = DllCall("advapi32.dll", "bool", "AdjustTokenPrivileges", "handle", $HTOKEN, "bool", $FDISABLEALL, "ptr", $PNEWSTATE, "dword", $IBUFFERLEN, "ptr", $PPREVSTATE, "ptr", $PREQUIRED)

If @error Then Return SetError(@error, @extended, False)

Return $ARESULT[0]

EndFunc

 

 

Func _SECURITY__GETACCOUNTSID($SACCOUNT, $SSYSTEM = "")

Local $AACCT = _SECURITY__LOOKUPACCOUNTNAME($SACCOUNT, $SSYSTEM)

If @error Then Return SetError(@error, 0, 0)

Return _SECURITY__STRINGSIDTOSID($AACCT[0])

EndFunc

 

 

Func _SECURITY__GETLENGTHSID($PSID)

If Not _SECURITY__ISVALIDSID($PSID) Then Return SetError(-1, 0, 0)

Local $ARESULT = DllCall("advapi32.dll", "dword", "GetLengthSid", "ptr", $PSID)

If @error Then Return SetError(@error, @extended, 0)

Return $ARESULT[0]

EndFunc

 

 

Func _SECURITY__GETTOKENINFORMATION($HTOKEN, $ICLASS)

Local $ARESULT = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $HTOKEN, "int", $ICLASS, "ptr", 0, "dword", 0, "dword*", 0)

If @error Then Return SetError(@error, @extended, 0)

If Not $ARESULT[0] Then Return 0

Local $TBUFFER = DllStructCreate("byte[" & $ARESULT[5] & "]")

Local $PBUFFER = DllStructGetPtr($TBUFFER)

$ARESULT = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $HTOKEN, "int", $ICLASS, "ptr", $PBUFFER, "dword", $ARESULT[5], "dword*", 0)

If @error Then Return SetError(@error, @extended, 0)

If Not $ARESULT[0] Then Return 0

Return $TBUFFER

EndFunc

 

 

Func _SECURITY__IMPERSONATESELF($ILEVEL = 2)

Local $ARESULT = DllCall("advapi32.dll", "bool", "ImpersonateSelf", "int", $ILEVEL)

If @error Then Return SetError(@error, @extended, False)

Return $ARESULT[0]

EndFunc

 

 

Func _SECURITY__ISVALIDSID($PSID)

Local $ARESULT = DllCall("advapi32.dll", "bool", "IsValidSid", "ptr", $PSID)

If @error Then Return SetError(@error, @extended, False)

Return $ARESULT[0]

EndFunc

 

 

Func _SECURITY__LOOKUPACCOUNTNAME($SACCOUNT, $SSYSTEM = "")

Local $TDATA = DllStructCreate("byte SID[256]")

Local $PSID = DllStructGetPtr($TDATA, "SID")

Local $ARESULT = DllCall("advapi32.dll", "bool", "LookupAccountNameW", "wstr", $SSYSTEM, "wstr", $SACCOUNT, "ptr", $PSID, "dword*", 256, "wstr", "", "dword*", 256, "int*", 0)

If @error Then Return SetError(@error, @extended, 0)

If Not $ARESULT[0] Then Return 0

Local $AACCT[3]

$AACCT[0] = _SECURITY__SIDTOSTRINGSID($PSID)

$AACCT[1] = $ARESULT[5]

$AACCT[2] = $ARESULT[7]

Return $AACCT

EndFunc

 

 

Func _SECURITY__LOOKUPACCOUNTSID($VSID)

Local $PSID, $AACCT[3]

If IsString($VSID) Then

Local $TSID = _SECURITY__STRINGSIDTOSID($VSID)

$PSID = DllStructGetPtr($TSID)

Else

$PSID = $VSID

EndIf

If Not _SECURITY__ISVALIDSID($PSID) Then Return SetError(-1, 0, 0)

Local $ARESULT = DllCall("advapi32.dll", "bool", "LookupAccountSidW", "ptr", 0, "ptr", $PSID, "wstr", "", "dword*", 256, "wstr", "", "dword*", 256, "int*", 0)

If @error Then Return SetError(@error, @extended, 0)

If Not $ARESULT[0] Then Return 0

Local $AACCT[3]

$AACCT[0] = $ARESULT[3]

$AACCT[1] = $ARESULT[5]

$AACCT[2] = $ARESULT[7]

Return $AACCT

EndFunc

 

 

Func _SECURITY__LOOKUPPRIVILEGEVALUE($SSYSTEM, $SNAME)

Local $ARESULT = DllCall("advapi32.dll", "int", "LookupPrivilegeValueW", "wstr", $SSYSTEM, "wstr", $SNAME, "int64*", 0)

If @error Then Return SetError(@error, @extended, 0)

Return SetError(0, $ARESULT[0], $ARESULT[3])

EndFunc

 

 

Func _SECURITY__OPENPROCESSTOKEN($HPROCESS, $IACCESS)

Local $ARESULT = DllCall("advapi32.dll", "int", "OpenProcessToken", "handle", $HPROCESS, "dword", $IACCESS, "ptr", 0)

If @error Then Return SetError(@error, @extended, 0)

Return SetError(0, $ARESULT[0], $ARESULT[3])

EndFunc

 

 

Func _SECURITY__OPENTHREADTOKEN($IACCESS, $HTHREAD = 0, $FOPENASSELF = False)

If $HTHREAD = 0 Then $HTHREAD = DllCall("kernel32.dll", "handle", "GetCurrentThread")

If @error Then Return SetError(@error, @extended, 0)

Local $ARESULT = DllCall("advapi32.dll", "bool", "OpenThreadToken", "handle", $HTHREAD[0], "dword", $IACCESS, "int", $FOPENASSELF, "ptr*", 0)

If @error Then Return SetError(@error, @extended, 0)

Return SetError(0, $ARESULT[0], $ARESULT[4])

EndFunc

 

 

Func _SECURITY__OPENTHREADTOKENEX($IACCESS, $HTHREAD = 0, $FOPENASSELF = False)

Local $HTOKEN = _SECURITY__OPENTHREADTOKEN($IACCESS, $HTHREAD, $FOPENASSELF)

If $HTOKEN = 0 Then

If _WINAPI_GETLASTERROR() <> $ERROR_NO_TOKEN Then Return SetError(-3, _WINAPI_GETLASTERROR(), 0)

If Not _SECURITY__IMPERSONATESELF() Then Return SetError(-1, _WINAPI_GETLASTERROR(), 0)

$HTOKEN = _SECURITY__OPENTHREADTOKEN($IACCESS, $HTHREAD, $FOPENASSELF)

If $HTOKEN = 0 Then Return SetError(-2, _WINAPI_GETLASTERROR(), 0)

EndIf

Return $HTOKEN

EndFunc

 

 

Func _SECURITY__SETPRIVILEGE($HTOKEN, $SPRIVILEGE, $FENABLE)

Local $ILUID = _SECURITY__LOOKUPPRIVILEGEVALUE("", $SPRIVILEGE)

If $ILUID = 0 Then Return SetError(-1, 0, False)

Local $TCURRSTATE = DllStructCreate($TAGTOKEN_PRIVILEGES)

Local $PCURRSTATE = DllStructGetPtr($TCURRSTATE)

Local $ICURRSTATE = DllStructGetSize($TCURRSTATE)

Local $TPREVSTATE = DllStructCreate($TAGTOKEN_PRIVILEGES)

Local $PPREVSTATE = DllStructGetPtr($TPREVSTATE)

Local $IPREVSTATE = DllStructGetSize($TPREVSTATE)

Local $TREQUIRED = DllStructCreate("int Data")

Local $PREQUIRED = DllStructGetPtr($TREQUIRED)

DllStructSetData($TCURRSTATE, "Count", 1)

DllStructSetData($TCURRSTATE, "LUID", $ILUID)

If Not _SECURITY__ADJUSTTOKENPRIVILEGES($HTOKEN, False, $PCURRSTATE, $ICURRSTATE, $PPREVSTATE, $PREQUIRED) Then Return SetError(-2, @error, False)

DllStructSetData($TPREVSTATE, "Count", 1)

DllStructSetData($TPREVSTATE, "LUID", $ILUID)

Local $IATTRIBUTES = DllStructGetData($TPREVSTATE, "Attributes")

If $FENABLE Then

$IATTRIBUTES = BitOR($IATTRIBUTES, $SE_PRIVILEGE_ENABLED)

Else

$IATTRIBUTES = BitAND($IATTRIBUTES, BitNOT($SE_PRIVILEGE_ENABLED))

EndIf

DllStructSetData($TPREVSTATE, "Attributes", $IATTRIBUTES)

If Not _SECURITY__ADJUSTTOKENPRIVILEGES($HTOKEN, False, $PPREVSTATE, $IPREVSTATE, $PCURRSTATE, $PREQUIRED) Then Return SetError(-3, @error, False)

Return True

EndFunc

 

 

Func _SECURITY__SIDTOSTRINGSID($PSID)

If Not _SECURITY__ISVALIDSID($PSID) Then Return SetError(-1, 0, "")

Local $ARESULT = DllCall("advapi32.dll", "int", "ConvertSidToStringSidW", "ptr", $PSID, "ptr*", 0)

If @error Then Return SetError(@error, @extended, "")

If Not $ARESULT[0] Then Return ""

Local $TBUFFER = DllStructCreate("wchar Text[256]", $ARESULT[2])

Local $SSID = DllStructGetData($TBUFFER, "Text")

DllCall("Kernel32.dll", "ptr", "LocalFree", "ptr", $ARESULT[2])

Return $SSID

EndFunc

 

 

Func _SECURITY__SIDTYPESTR($ITYPE)

Switch $ITYPE

Case 1

Return "User"

Case 2

Return "Group"

Case 3

Return "Domain"

Case 4

Return "Alias"

Case 5

Return "Well Known Group"

Case 6

Return "Deleted Account"

Case 7

Return "Invalid"

Case 8

Return "Invalid"

Case 9

Return "Computer"

Case Else

Return "Unknown SID Type"

EndSwitch

EndFunc

 

 

Func _SECURITY__STRINGSIDTOSID($SSID)

Local $ARESULT = DllCall("advapi32.dll", "bool", "ConvertStringSidToSidW", "wstr", $SSID, "ptr*", 0)

If @error Then Return SetError(@error, @extended, 0)

If Not $ARESULT[0] Then Return 0

Local $ISIZE = _SECURITY__GETLENGTHSID($ARESULT[2])

Local $TBUFFER = DllStructCreate("byte Data[" & $ISIZE & "]", $ARESULT[2])

Local $TSID = DllStructCreate("byte Data[" & $ISIZE & "]")

DllStructSetData($TSID, "Data", DllStructGetData($TBUFFER, "Data"))

DllCall("kernel32.dll", "ptr", "LocalFree", "ptr", $ARESULT[2])

Return $TSID

EndFunc

 

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

 

 

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 $_UDF_GLOBALIDS_OFFSET = 2

Global Const $_UDF_GLOBALID_MAX_WIN = 16

Global Const $_UDF_STARTID = 10000

Global Const $_UDF_GLOBALID_MAX_IDS = 55535

Global Const $__UDFGUICONSTANT_WS_VISIBLE = 268435456

Global Const $__UDFGUICONSTANT_WS_CHILD = 1073741824

Global $_UDF_GLOBALIDS_USED[$_UDF_GLOBALID_MAX_WIN][$_UDF_GLOBALID_MAX_IDS + $_UDF_GLOBALIDS_OFFSET + 1]

 

Func __UDF_GETNEXTGLOBALID($HWND)

Local $NCTRLID, $IUSEDINDEX = -1, $FALLUSED = True

If Not WinExists($HWND) Then Return SetError(-1, -1, 0)

For $IINDEX = 0 To $_UDF_GLOBALID_MAX_WIN - 1

If $_UDF_GLOBALIDS_USED[$IINDEX][0] <> 0 Then

If Not WinExists($_UDF_GLOBALIDS_USED[$IINDEX][0]) Then

For $X = 0 To UBound($_UDF_GLOBALIDS_USED, 2) - 1

$_UDF_GLOBALIDS_USED[$IINDEX][$X] = 0

Next

$_UDF_GLOBALIDS_USED[$IINDEX][1] = $_UDF_STARTID

$FALLUSED = False

EndIf

EndIf

Next

For $IINDEX = 0 To $_UDF_GLOBALID_MAX_WIN - 1

If $_UDF_GLOBALIDS_USED[$IINDEX][0] = $HWND Then

$IUSEDINDEX = $IINDEX

ExitLoop

EndIf

Next

If $IUSEDINDEX = -1 Then

For $IINDEX = 0 To $_UDF_GLOBALID_MAX_WIN - 1

If $_UDF_GLOBALIDS_USED[$IINDEX][0] = 0 Then

$_UDF_GLOBALIDS_USED[$IINDEX][0] = $HWND

$_UDF_GLOBALIDS_USED[$IINDEX][1] = $_UDF_STARTID

$FALLUSED = False

$IUSEDINDEX = $IINDEX

ExitLoop

EndIf

Next

EndIf

If $IUSEDINDEX = -1 And $FALLUSED Then Return SetError(16, 0, 0)

If $_UDF_GLOBALIDS_USED[$IUSEDINDEX][1] = $_UDF_STARTID + $_UDF_GLOBALID_MAX_IDS Then

For $IIDINDEX = $_UDF_GLOBALIDS_OFFSET To UBound($_UDF_GLOBALIDS_USED, 2) - 1

If $_UDF_GLOBALIDS_USED[$IUSEDINDEX][$IIDINDEX] = 0 Then

$NCTRLID = ($IIDINDEX - $_UDF_GLOBALIDS_OFFSET) + 10000

$_UDF_GLOBALIDS_USED[$IUSEDINDEX][$IIDINDEX] = $NCTRLID

Return $NCTRLID

EndIf

Next

Return SetError(-1, $_UDF_GLOBALID_MAX_IDS, 0)

EndIf

$NCTRLID = $_UDF_GLOBALIDS_USED[$IUSEDINDEX][1]

$_UDF_GLOBALIDS_USED[$IUSEDINDEX][1] += 1

$_UDF_GLOBALIDS_USED[$IUSEDINDEX][($NCTRLID - 10000) + $_UDF_GLOBALIDS_OFFSET] = $NCTRLID

Return $NCTRLID

EndFunc

 

 

Func __UDF_FREEGLOBALID($HWND, $IGLOBALID)

If $IGLOBALID - $_UDF_STARTID < 0 Or $IGLOBALID - $_UDF_STARTID > $_UDF_GLOBALID_MAX_IDS Then Return SetError(-1, 0, False)

For $IINDEX = 0 To $_UDF_GLOBALID_MAX_WIN - 1

If $_UDF_GLOBALIDS_USED[$IINDEX][0] = $HWND Then

For $X = $_UDF_GLOBALIDS_OFFSET To UBound($_UDF_GLOBALIDS_USED, 2) - 1

If $_UDF_GLOBALIDS_USED[$IINDEX][$X] = $IGLOBALID Then

$_UDF_GLOBALIDS_USED[$IINDEX][$X] = 0

Return True

EndIf

Next

Return SetError(-3, 0, False)

EndIf

Next

Return SetError(-2, 0, False)

EndFunc

 

 

Func __UDF_DEBUGPRINT($STEXT, $ILINE = @ScriptLineNumber, $ERR = @error, $EXT = @extended)

ConsoleWrite("!===========================================================" & @CRLF & "+======================================================" & @CRLF & "-->Line(" & StringFormat("%04d", $ILINE) & "):" & @TAB & $STEXT & @CRLF & "+======================================================" & @CRLF)

Return SetError($ERR, $EXT, 1)

EndFunc

 

 

Func __UDF_VALIDATECLASSNAME($HWND, $SCLASSNAMES)

__UDF_DEBUGPRINT("This is for debugging only, set the debug variable to false before submitting")

If _WINAPI_ISCLASSNAME($HWND, $SCLASSNAMES) Then Return True

Local $SSEPARATOR = Opt("GUIDataSeparatorChar")

$SCLASSNAMES = StringReplace($SCLASSNAMES, $SSEPARATOR, ",")

__UDF_DEBUGPRINT("Invalid Class Type(s):" & @LF & @TAB & "Expecting Type(s): " & $SCLASSNAMES & @LF & @TAB & "Received Type : " & _WINAPI_GETCLASSNAME($HWND))

Exit

EndFunc

 

Global $__GHSBLASTWND

Global $DEBUG_SB = False

Global Const $__STATUSBARCONSTANT_CLASSNAME = "msctls_statusbar32"

Global Const $__STATUSBARCONSTANT_WM_SIZE = 5

Global Const $__STATUSBARCONSTANT_CLR_DEFAULT = -16777216

Global Const $TAGBORDERS = "int BX;int BY;int RX"

 

Func _GUICTRLSTATUSBAR_CREATE($HWND, $VPARTEDGE = -1, $VPARTTEXT = "", $ISTYLES = -1, $IEXSTYLES = -1)

If Not IsHWnd($HWND) Then Return SetError(1, 0, 0)

Local $ISTYLE = BitOR($__UDFGUICONSTANT_WS_CHILD, $__UDFGUICONSTANT_WS_VISIBLE)

If $ISTYLES = -1 Then $ISTYLES = 0

If $IEXSTYLES = -1 Then $IEXSTYLES = 0

Local $APARTWIDTH[1], $APARTTEXT[1]

If @NumParams > 1 Then

If IsArray($VPARTEDGE) Then

$APARTWIDTH = $VPARTEDGE

Else

$APARTWIDTH[0] = $VPARTEDGE

EndIf

If @NumParams = 2 Then

ReDim $APARTTEXT[uBound($APARTWIDTH)]

Else

If IsArray($VPARTTEXT) Then

$APARTTEXT = $VPARTTEXT

Else

$APARTTEXT[0] = $VPARTTEXT

EndIf

If UBound($APARTWIDTH) <> UBound($APARTTEXT) Then

Local $ILAST

If UBound($APARTWIDTH) > UBound($APARTTEXT) Then

$ILAST = UBound($APARTTEXT)

ReDim $APARTTEXT[uBound($APARTWIDTH)]

For $X = $ILAST To UBound($APARTTEXT) - 1

$APARTWIDTH[$X] = ""

Next

Else

$ILAST = UBound($APARTWIDTH)

ReDim $APARTWIDTH[uBound($APARTTEXT)]

For $X = $ILAST To UBound($APARTWIDTH) - 1

$APARTWIDTH[$X] = $APARTWIDTH[$X - 1] + 75

Next

$APARTWIDTH[uBound($APARTTEXT) - 1] = -1

EndIf

EndIf

EndIf

If Not IsHWnd($HWND) Then $HWND = HWnd($HWND)

If @NumParams > 3 Then $ISTYLE = BitOR($ISTYLE, $ISTYLES)

EndIf

Local $NCTRLID = __UDF_GETNEXTGLOBALID($HWND)

If @error Then Return SetError(@error, @extended, 0)

Local $HWNDSBAR = _WINAPI_CREATEWINDOWEX($IEXSTYLES, $__STATUSBARCONSTANT_CLASSNAME, "", $ISTYLE, 0, 0, 0, 0, $HWND, $NCTRLID)

If @error Then Return SetError(@error, @extended, 0)

If @NumParams > 1 Then

_GUICTRLSTATUSBAR_SETPARTS($HWNDSBAR, UBound($APARTWIDTH), $APARTWIDTH)

For $X = 0 To UBound($APARTTEXT) - 1

_GUICTRLSTATUSBAR_SETTEXT($HWNDSBAR, $APARTTEXT[$X], $X)

Next

EndIf

Return $HWNDSBAR

EndFunc

 

 

Func _GUICTRLSTATUSBAR_DESTROY(ByRef $HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

If Not _WINAPI_ISCLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME) Then Return SetError(2, 2, False)

Local $DESTROYED = 0

If IsHWnd($HWND) Then

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

Local $NCTRLID = _WINAPI_GETDLGCTRLID($HWND)

Local $HPARENT = _WINAPI_GETPARENT($HWND)

$DESTROYED = _WINAPI_DESTROYWINDOW($HWND)

Local $IRET = __UDF_FREEGLOBALID($HPARENT, $NCTRLID)

If Not $IRET Then

EndIf

Else

Return SetError(1, 1, False)

EndIf

EndIf

If $DESTROYED Then $HWND = 0

Return $DESTROYED <> 0

EndFunc

 

 

Func _GUICTRLSTATUSBAR_EMBEDCONTROL($HWND, $IPART, $HCONTROL, $IFIT = 4)

Local $ARECT = _GUICTRLSTATUSBAR_GETRECT($HWND, $IPART)

Local $IBARX = $ARECT[0]

Local $IBARY = $ARECT[1]

Local $IBARW = $ARECT[2] - $IBARX

Local $IBARH = $ARECT[3] - $IBARY

Local $ICONX = $IBARX

Local $ICONY = $IBARY

Local $ICONW = _WINAPI_GETWINDOWWIDTH($HCONTROL)

Local $ICONH = _WINAPI_GETWINDOWHEIGHT($HCONTROL)

If $ICONW > $IBARW Then $ICONW = $IBARW

If $ICONH > $IBARH Then $ICONH = $IBARH

Local $IPADX = ($IBARW - $ICONW) / 2

Local $IPADY = ($IBARH - $ICONH) / 2

If $IPADX < 0 Then $IPADX = 0

If $IPADY < 0 Then $IPADY = 0

If BitAND($IFIT, 1) = 1 Then $ICONX = $IBARX + $IPADX

If BitAND($IFIT, 2) = 2 Then $ICONY = $IBARY + $IPADY

If BitAND($IFIT, 4) = 4 Then

$IPADX = _GUICTRLSTATUSBAR_GETBORDERSRECT($HWND)

$IPADY = _GUICTRLSTATUSBAR_GETBORDERSVERT($HWND)

$ICONX = $IBARX

If _GUICTRLSTATUSBAR_ISSIMPLE($HWND) Then $ICONX += $IPADX

$ICONY = $IBARY + $IPADY

$ICONW = $IBARW - ($IPADX * 2)

$ICONH = $IBARH - ($IPADY * 2)

EndIf

_WINAPI_SETPARENT($HCONTROL, $HWND)

_WINAPI_MOVEWINDOW($HCONTROL, $ICONX, $ICONY, $ICONW, $ICONH)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETBORDERS($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $TBORDERS = DllStructCreate($TAGBORDERS)

Local $PBORDERS = DllStructGetPtr($TBORDERS)

Local $IRET

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $SB_GETBORDERS, 0, $PBORDERS, 0, "wparam", "ptr")

Else

Local $ISIZE = DllStructGetSize($TBORDERS)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ISIZE, $TMEMMAP)

$IRET = _SENDMESSAGE($HWND, $SB_GETBORDERS, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PBORDERS, $ISIZE)

_MEMFREE($TMEMMAP)

EndIf

Local $ABORDERS[3]

If $IRET = 0 Then Return SetError(-1, -1, $ABORDERS)

$ABORDERS[0] = DllStructGetData($TBORDERS, "BX")

$ABORDERS[1] = DllStructGetData($TBORDERS, "BY")

$ABORDERS[2] = DllStructGetData($TBORDERS, "RX")

Return $ABORDERS

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETBORDERSHORZ($HWND)

Local $ABORDERS = _GUICTRLSTATUSBAR_GETBORDERS($HWND)

Return SetError(@error, @extended, $ABORDERS[0])

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETBORDERSRECT($HWND)

Local $ABORDERS = _GUICTRLSTATUSBAR_GETBORDERS($HWND)

Return SetError(@error, @extended, $ABORDERS[2])

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETBORDERSVERT($HWND)

Local $ABORDERS = _GUICTRLSTATUSBAR_GETBORDERS($HWND)

Return SetError(@error, @extended, $ABORDERS[1])

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETCOUNT($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $SB_GETPARTS)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETHEIGHT($HWND)

Local $TRECT = _GUICTRLSTATUSBAR_GETRECTEX($HWND, 0)

Return DllStructGetData($TRECT, "Bottom") - DllStructGetData($TRECT, "Top") - (_GUICTRLSTATUSBAR_GETBORDERSVERT($HWND) * 2)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETICON($HWND, $IINDEX = 0)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $SB_GETICON, $IINDEX, 0, 0, "wparam", "lparam", "hwnd")

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETPARTS($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $ICOUNT = _GUICTRLSTATUSBAR_GETCOUNT($HWND)

Local $TPARTS = DllStructCreate("int[" & $ICOUNT & "]")

Local $PPARTS = DllStructGetPtr($TPARTS)

Local $APARTS[$ICOUNT + 1]

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

$APARTS[0] = _SENDMESSAGE($HWND, $SB_GETPARTS, $ICOUNT, $PPARTS, 0, "wparam", "ptr")

Else

Local $IPARTS = DllStructGetSize($TPARTS)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IPARTS, $TMEMMAP)

$APARTS[0] = _SENDMESSAGE($HWND, $SB_GETPARTS, $ICOUNT, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PPARTS, $IPARTS)

_MEMFREE($TMEMMAP)

EndIf

For $II = 1 To $ICOUNT

$APARTS[$II] = DllStructGetData($TPARTS, 1, $II)

Next

Return $APARTS

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETRECT($HWND, $IPART)

Local $TRECT = _GUICTRLSTATUSBAR_GETRECTEX($HWND, $IPART)

If @error Then Return SetError(@error, 0, 0)

Local $ARECT[4]

$ARECT[0] = DllStructGetData($TRECT, "Left")

$ARECT[1] = DllStructGetData($TRECT, "Top")

$ARECT[2] = DllStructGetData($TRECT, "Right")

$ARECT[3] = DllStructGetData($TRECT, "Bottom")

Return $ARECT

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETRECTEX($HWND, $IPART)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $TRECT = DllStructCreate($TAGRECT)

Local $PRECT = DllStructGetPtr($TRECT)

Local $IRET

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $SB_GETRECT, $IPART, $PRECT, 0, "wparam", "ptr")

Else

Local $IRECT = DllStructGetSize($TRECT)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IRECT, $TMEMMAP)

$IRET = _SENDMESSAGE($HWND, $SB_GETRECT, $IPART, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PRECT, $IRECT)

_MEMFREE($TMEMMAP)

EndIf

Return SetError($IRET = 0, 0, $TRECT)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETTEXT($HWND, $IPART)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER = _GUICTRLSTATUSBAR_GETTEXTLENGTH($HWND, $IPART)

If $IBUFFER = 0 Then Return SetError(1, 0, "")

Local $TBUFFER

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TBUFFER = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TBUFFER)

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

_SENDMESSAGE($HWND, $SB_GETTEXTW, $IPART, $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

If $FUNICODE Then

_SENDMESSAGE($HWND, $SB_GETTEXTW, $IPART, $PMEMORY, 0, "wparam", "ptr")

Else

_SENDMESSAGE($HWND, $SB_GETTEXT, $IPART, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMREAD($TMEMMAP, $PMEMORY, $PBUFFER, $IBUFFER)

_MEMFREE($TMEMMAP)

EndIf

Return DllStructGetData($TBUFFER, "Text")

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETTEXTFLAGS($HWND, $IPART)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

If _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND) Then

Return _SENDMESSAGE($HWND, $SB_GETTEXTLENGTHW, $IPART)

Else

Return _SENDMESSAGE($HWND, $SB_GETTEXTLENGTH, $IPART)

EndIf

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETTEXTLENGTH($HWND, $IPART)

Return _WINAPI_LOWORD(_GUICTRLSTATUSBAR_GETTEXTFLAGS($HWND, $IPART))

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETTEXTLENGTHEX($HWND, $IPART)

Return _WINAPI_HIWORD(_GUICTRLSTATUSBAR_GETTEXTFLAGS($HWND, $IPART))

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETTIPTEXT($HWND, $IPART)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND)

Local $TBUFFER

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[4096]")

Else

$TBUFFER = DllStructCreate("char Text[4096]")

EndIf

Local $PBUFFER = DllStructGetPtr($TBUFFER)

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

_SENDMESSAGE($HWND, $SB_GETTIPTEXTW, _WINAPI_MAKELONG($IPART, 4096), $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, 4096, $TMEMMAP)

If $FUNICODE Then

_SENDMESSAGE($HWND, $SB_GETTIPTEXTW, _WINAPI_MAKELONG($IPART, 4096), $PMEMORY, 0, "wparam", "ptr")

Else

_SENDMESSAGE($HWND, $SB_GETTIPTEXTA, _WINAPI_MAKELONG($IPART, 4096), $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMREAD($TMEMMAP, $PMEMORY, $PBUFFER, 4096)

_MEMFREE($TMEMMAP)

EndIf

Return DllStructGetData($TBUFFER, "Text")

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $SB_GETUNICODEFORMAT) <> 0

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETWIDTH($HWND, $IPART)

Local $TRECT = _GUICTRLSTATUSBAR_GETRECTEX($HWND, $IPART)

Return DllStructGetData($TRECT, "Right") - DllStructGetData($TRECT, "Left") - (_GUICTRLSTATUSBAR_GETBORDERSHORZ($HWND) * 2)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_ISSIMPLE($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $SB_ISSIMPLE) <> 0

EndFunc

 

 

Func _GUICTRLSTATUSBAR_RESIZE($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

_SENDMESSAGE($HWND, $__STATUSBARCONSTANT_WM_SIZE)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETBKCOLOR($HWND, $ICOLOR)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

$ICOLOR = _SENDMESSAGE($HWND, $SB_SETBKCOLOR, 0, $ICOLOR)

If $ICOLOR = $__STATUSBARCONSTANT_CLR_DEFAULT Then Return "0x" & Hex($__STATUSBARCONSTANT_CLR_DEFAULT)

Return $ICOLOR

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETICON($HWND, $IPART, $HICON = -1, $SICONFILE = "")

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

If $HICON = -1 Then Return _SENDMESSAGE($HWND, $SB_SETICON, $IPART, $HICON, 0, "wparam", "handle") <> 0

If StringLen($SICONFILE) <= 0 Then Return _SENDMESSAGE($HWND, $SB_SETICON, $IPART, $HICON) <> 0

Local $TICON = DllStructCreate("handle")

Local $VRESULT = DllCall("shell32.dll", "uint", "ExtractIconExW", "wstr", $SICONFILE, "int", $HICON, "ptr", 0, "ptr", DllStructGetPtr($TICON), "uint", 1)

If @error Then Return SetError(@error, @extended, False)

$VRESULT = $VRESULT[0]

If $VRESULT > 0 Then $VRESULT = _SENDMESSAGE($HWND, $SB_SETICON, $IPART, DllStructGetData($TICON, 1), 0, "wparam", "handle")

DllCall("user32.dll", "bool", "DestroyIcon", "handle", DllStructGetData($TICON, 1))

Return $VRESULT

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETMINHEIGHT($HWND, $IMINHEIGHT)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

_SENDMESSAGE($HWND, $SB_SETMINHEIGHT, $IMINHEIGHT)

_GUICTRLSTATUSBAR_RESIZE($HWND)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETPARTS($HWND, $IAPARTS = -1, $IAPARTWIDTH = 25)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $TPARTS, $IPARTS = 1

If IsArray($IAPARTS) <> 0 Then

$IAPARTS[uBound($IAPARTS) - 1] = -1

$IPARTS = UBound($IAPARTS)

$TPARTS = DllStructCreate("int[" & $IPARTS & "]")

For $X = 0 To $IPARTS - 2

DllStructSetData($TPARTS, 1, $IAPARTS[$X], $X + 1)

Next

DllStructSetData($TPARTS, 1, -1, $IPARTS)

ElseIf IsArray($IAPARTWIDTH) <> 0 Then

$IPARTS = UBound($IAPARTWIDTH)

$TPARTS = DllStructCreate("int[" & $IPARTS & "]")

For $X = 0 To $IPARTS - 2

DllStructSetData($TPARTS, 1, $IAPARTWIDTH[$X], $X + 1)

Next

DllStructSetData($TPARTS, 1, -1, $IPARTS)

ElseIf $IAPARTS > 1 Then

$IPARTS = $IAPARTS

$TPARTS = DllStructCreate("int[" & $IPARTS & "]")

For $X = 1 To $IPARTS - 1

DllStructSetData($TPARTS, 1, $IAPARTWIDTH * $X, $X)

Next

DllStructSetData($TPARTS, 1, -1, $IPARTS)

Else

$TPARTS = DllStructCreate("int")

DllStructSetData($TPARTS, $IPARTS, -1)

EndIf

Local $PPARTS = DllStructGetPtr($TPARTS)

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

_SENDMESSAGE($HWND, $SB_SETPARTS, $IPARTS, $PPARTS, 0, "wparam", "ptr")

Else

Local $ISIZE = DllStructGetSize($TPARTS)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ISIZE, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PPARTS)

_SENDMESSAGE($HWND, $SB_SETPARTS, $IPARTS, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

_GUICTRLSTATUSBAR_RESIZE($HWND)

Return True

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETSIMPLE($HWND, $FSIMPLE = True)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

_SENDMESSAGE($HWND, $SB_SIMPLE, $FSIMPLE)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETTEXT($HWND, $STEXT = "", $IPART = 0, $IUFLAG = 0)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER = StringLen($STEXT) + 1

Local $TTEXT

If $FUNICODE Then

$TTEXT = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TTEXT = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TTEXT)

DllStructSetData($TTEXT, "Text", $STEXT)

If _GUICTRLSTATUSBAR_ISSIMPLE($HWND) Then $IPART = $SB_SIMPLEID

Local $IRET

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $SB_SETTEXTW, BitOR($IPART, $IUFLAG), $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUFFER)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $SB_SETTEXTW, BitOR($IPART, $IUFLAG), $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $SB_SETTEXT, BitOR($IPART, $IUFLAG), $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMFREE($TMEMMAP)

EndIf

Return $IRET <> 0

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETTIPTEXT($HWND, $IPART, $STEXT)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER = StringLen($STEXT) + 1

Local $TTEXT

If $FUNICODE Then

$TTEXT = DllStructCreate("wchar TipText[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TTEXT = DllStructCreate("char TipText[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TTEXT)

DllStructSetData($TTEXT, "TipText", $STEXT)

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

_SENDMESSAGE($HWND, $SB_SETTIPTEXTW, $IPART, $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUFFER, $PMEMORY, $IBUFFER)

If $FUNICODE Then

_SENDMESSAGE($HWND, $SB_SETTIPTEXTW, $IPART, $PMEMORY, 0, "wparam", "ptr")

Else

_SENDMESSAGE($HWND, $SB_SETTIPTEXTA, $IPART, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMFREE($TMEMMAP)

EndIf

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETUNICODEFORMAT($HWND, $FUNICODE = True)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $SB_SETUNICODEFORMAT, $FUNICODE)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SHOWHIDE($HWND, $ISTATE)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

If $ISTATE <> @SW_HIDE And $ISTATE <> @SW_SHOW Then Return SetError(1, 1, False)

Return _WINAPI_SHOWWINDOW($HWND, $ISTATE)

EndFunc

 

Global $_GHEDITLASTWND

Global $DEBUG_ED = False

Global Const $__EDITCONSTANT_CLASSNAME = "Edit"

Global Const $__EDITCONSTANT_GUI_CHECKED = 1

Global Const $__EDITCONSTANT_GUI_HIDE = 32

Global Const $__EDITCONSTANT_GUI_EVENT_CLOSE = -3

Global Const $__EDITCONSTANT_GUI_ENABLE = 64

Global Const $__EDITCONSTANT_GUI_DISABLE = 128

Global Const $__EDITCONSTANT_SS_CENTER = 1

Global Const $__EDITCONSTANT_WM_SETREDRAW = 11

Global Const $__EDITCONSTANT_WS_CAPTION = 12582912

Global Const $__EDITCONSTANT_WS_POPUP = -2147483648

Global Const $__EDITCONSTANT_WS_TABSTOP = 65536

Global Const $__EDITCONSTANT_WS_SYSMENU = 524288

Global Const $__EDITCONSTANT_WS_MINIMIZEBOX = 131072

Global Const $__EDITCONSTANT_DEFAULT_GUI_FONT = 17

Global Const $__EDITCONSTANT_WM_SETFONT = 48

Global Const $__EDITCONSTANT_WM_GETTEXTLENGTH = 14

Global Const $__EDITCONSTANT_WM_GETTEXT = 13

Global Const $__EDITCONSTANT_WM_SETTEXT = 12

Global Const $__EDITCONSTANT_SB_LINEUP = 0

Global Const $__EDITCONSTANT_SB_LINEDOWN = 1

Global Const $__EDITCONSTANT_SB_PAGEDOWN = 3

Global Const $__EDITCONSTANT_SB_PAGEUP = 2

Global Const $__EDITCONSTANT_SB_SCROLLCARET = 4

Global Const $TAGEDITBALLOONTIP = "dword Size;ptr Title;ptr Text;int Icon"

 

Func _GUICTRLEDIT_APPENDTEXT($HWND, $STEXT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ILENGTH = _GUICTRLEDIT_GETTEXTLEN($HWND)

_GUICTRLEDIT_SETSEL($HWND, $ILENGTH, $ILENGTH)

_SENDMESSAGE($HWND, $EM_REPLACESEL, True, $STEXT, 0, "wparam", "wstr")

EndFunc

 

 

Func _GUICTRLEDIT_BEGINUPDATE($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $__EDITCONSTANT_WM_SETREDRAW) = 0

EndFunc

 

 

Func _GUICTRLEDIT_CANUNDO($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_CANUNDO) <> 0

EndFunc

 

 

Func _GUICTRLEDIT_CHARFROMPOS($HWND, $IX, $IY)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ARETURN[2]

Local $IRET = _SENDMESSAGE($HWND, $EM_CHARFROMPOS, 0, _WINAPI_MAKELONG($IX, $IY))

$ARETURN[0] = _WINAPI_LOWORD($IRET)

$ARETURN[1] = _WINAPI_HIWORD($IRET)

Return $ARETURN

EndFunc

 

 

Func _GUICTRLEDIT_CREATE($HWND, $STEXT, $IX, $IY, $IWIDTH = 150, $IHEIGHT = 150, $ISTYLE = 3150020, $IEXSTYLE = 512)

If Not IsHWnd($HWND) Then Return SetError(1, 0, 0)

If Not IsString($STEXT) Then Return SetError(2, 0, 0)

If $IWIDTH = -1 Then $IWIDTH = 150

If $IHEIGHT = -1 Then $IHEIGHT = 150

If $ISTYLE = -1 Then $ISTYLE = 3150020

If $IEXSTYLE = -1 Then $IEXSTYLE = 512

If BitAND($ISTYLE, $ES_READONLY) = $ES_READONLY Then

$ISTYLE = BitOR($__UDFGUICONSTANT_WS_CHILD, $__UDFGUICONSTANT_WS_VISIBLE, $ISTYLE)

Else

$ISTYLE = BitOR($__UDFGUICONSTANT_WS_CHILD, $__UDFGUICONSTANT_WS_VISIBLE, $__EDITCONSTANT_WS_TABSTOP, $ISTYLE)

EndIf

Local $NCTRLID = __UDF_GETNEXTGLOBALID($HWND)

If @error Then Return SetError(@error, @extended, 0)

Local $HEDIT = _WINAPI_CREATEWINDOWEX($IEXSTYLE, $__EDITCONSTANT_CLASSNAME, "", $ISTYLE, $IX, $IY, $IWIDTH, $IHEIGHT, $HWND, $NCTRLID)

_SENDMESSAGE($HEDIT, $__EDITCONSTANT_WM_SETFONT, _WINAPI_GETSTOCKOBJECT($__EDITCONSTANT_DEFAULT_GUI_FONT), True)

_GUICTRLEDIT_SETTEXT($HEDIT, $STEXT)

_GUICTRLEDIT_SETLIMITTEXT($HEDIT, 0)

Return $HEDIT

EndFunc

 

 

Func _GUICTRLEDIT_DESTROY(ByRef $HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not _WINAPI_ISCLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME) Then Return SetError(2, 2, False)

Local $DESTROYED = 0

If IsHWnd($HWND) Then

If _WINAPI_INPROCESS($HWND, $_GHEDITLASTWND) Then

Local $NCTRLID = _WINAPI_GETDLGCTRLID($HWND)

Local $HPARENT = _WINAPI_GETPARENT($HWND)

$DESTROYED = _WINAPI_DESTROYWINDOW($HWND)

Local $IRET = __UDF_FREEGLOBALID($HPARENT, $NCTRLID)

If Not $IRET Then

EndIf

Else

Return SetError(1, 1, False)

EndIf

Else

$DESTROYED = GUICtrlDelete($HWND)

EndIf

If $DESTROYED Then $HWND = 0

Return $DESTROYED <> 0

EndFunc

 

 

Func _GUICTRLEDIT_EMPTYUNDOBUFFER($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_EMPTYUNDOBUFFER)

EndFunc

 

 

Func _GUICTRLEDIT_ENDUPDATE($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $__EDITCONSTANT_WM_SETREDRAW, 1) = 0

EndFunc

 

 

Func _GUICTRLEDIT_FMTLINES($HWND, $FSOFTBREAK = False)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_FMTLINES, $FSOFTBREAK)

EndFunc

 

 

Func _GUICTRLEDIT_FIND($HWND, $FREPLACE = False)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $IPOS = 0, $ICASE, $IOCCURANCE = 0, $IREPLACEMENTS = 0

Local $APARTSRIGHTEDGE[3] = [125, 225, -1]

Local $OLDMODE = Opt("GUIOnEventMode", 0)

Local $ASEL = _GUICTRLEDIT_GETSEL($HWND)

Local $STEXT = _GUICTRLEDIT_GETTEXT($HWND)

Local $GUISEARCH = GUICreate("Find", 349, 177, -1, -1, BitOR($__UDFGUICONSTANT_WS_CHILD, $__EDITCONSTANT_WS_MINIMIZEBOX, $__EDITCONSTANT_WS_CAPTION, $__EDITCONSTANT_WS_POPUP, $__EDITCONSTANT_WS_SYSMENU))

Local $STATUSBAR1 = _GUICTRLSTATUSBAR_CREATE($GUISEARCH, $APARTSRIGHTEDGE)

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Find: ")

GUISetIcon(@SystemDir & "\shell32.dll", 22, $GUISEARCH)

GUICtrlCreateLabel("Find what:", 9, 10, 53, 16, $__EDITCONSTANT_SS_CENTER)

Local $INPUTSEARCH = GUICtrlCreateInput("", 80, 8, 257, 21)

Local $LBLREPLACE = GUICtrlCreateLabel("Replace with:", 9, 42, 69, 17, $__EDITCONSTANT_SS_CENTER)

Local $INPUTREPLACE = GUICtrlCreateInput("", 80, 40, 257, 21)

Local $CHKWHOLEONLY = GUICtrlCreateCheckbox("Match whole word only", 9, 72, 145, 17)

Local $CHKMATCHCASE = GUICtrlCreateCheckbox("Match case", 9, 96, 145, 17)

Local $BTNFINDNEXT = GUICtrlCreateButton("Find Next", 168, 72, 161, 21, 0)

Local $BTNREPLACE = GUICtrlCreateButton("Replace", 168, 96, 161, 21, 0)

Local $BTNCLOSE = GUICtrlCreateButton("Close", 104, 130, 161, 21, 0)

If (IsArray($ASEL) And $ASEL <> $EC_ERR) Then

GUICtrlSetData($INPUTSEARCH, StringMid($STEXT, $ASEL[0] + 1, $ASEL[1] - $ASEL[0]))

If $ASEL[0] <> $ASEL[1] Then

$IPOS = $ASEL[0]

If BitAND(GUICtrlRead($CHKMATCHCASE), $__EDITCONSTANT_GUI_CHECKED) = $__EDITCONSTANT_GUI_CHECKED Then $ICASE = 1

$IOCCURANCE = 1

Local $ITPOSE

While 1

$ITPOSE = StringInStr($STEXT, GUICtrlRead($INPUTSEARCH), $ICASE, $IOCCURANCE)

If Not $ITPOSE Then

$IOCCURANCE = 0

ExitLoop

ElseIf $ITPOSE = $IPOS + 1 Then

ExitLoop

EndIf

$IOCCURANCE += 1

WEnd

EndIf

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Find: " & GUICtrlRead($INPUTSEARCH))

EndIf

If $FREPLACE = False Then

GUICtrlSetState($LBLREPLACE, $__EDITCONSTANT_GUI_HIDE)

GUICtrlSetState($INPUTREPLACE, $__EDITCONSTANT_GUI_HIDE)

GUICtrlSetState($BTNREPLACE, $__EDITCONSTANT_GUI_HIDE)

Else

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Replacements: " & $IREPLACEMENTS, 1)

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "With: ", 2)

EndIf

GUISetState(@SW_SHOW)

Local $MSGFIND

While 1

$MSGFIND = GUIGetMsg()

Select

Case $MSGFIND = $__EDITCONSTANT_GUI_EVENT_CLOSE Or $MSGFIND = $BTNCLOSE

ExitLoop

Case $MSGFIND = $BTNFINDNEXT

GUICtrlSetState($BTNFINDNEXT, $__EDITCONSTANT_GUI_DISABLE)

GUICtrlSetCursor($BTNFINDNEXT, 15)

Sleep(100)

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Find: " & GUICtrlRead($INPUTSEARCH))

If $FREPLACE = True Then

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Find: " & GUICtrlRead($INPUTSEARCH))

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "With: " & GUICtrlRead($INPUTREPLACE), 2)

EndIf

__GUICTRLEDIT_FINDTEXT($HWND, $INPUTSEARCH, $CHKMATCHCASE, $CHKWHOLEONLY, $IPOS, $IOCCURANCE, $IREPLACEMENTS)

Sleep(100)

GUICtrlSetState($BTNFINDNEXT, $__EDITCONSTANT_GUI_ENABLE)

GUICtrlSetCursor($BTNFINDNEXT, 2)

Case $MSGFIND = $BTNREPLACE

GUICtrlSetState($BTNREPLACE, $__EDITCONSTANT_GUI_DISABLE)

GUICtrlSetCursor($BTNREPLACE, 15)

Sleep(100)

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Find: " & GUICtrlRead($INPUTSEARCH))

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "With: " & GUICtrlRead($INPUTREPLACE), 2)

If $IPOS Then

_GUICTRLEDIT_REPLACESEL($HWND, GUICtrlRead($INPUTREPLACE))

$IREPLACEMENTS += 1

$IOCCURANCE -= 1

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Replacements: " & $IREPLACEMENTS, 1)

EndIf

__GUICTRLEDIT_FINDTEXT($HWND, $INPUTSEARCH, $CHKMATCHCASE, $CHKWHOLEONLY, $IPOS, $IOCCURANCE, $IREPLACEMENTS)

Sleep(100)

GUICtrlSetState($BTNREPLACE, $__EDITCONSTANT_GUI_ENABLE)

GUICtrlSetCursor($BTNREPLACE, 2)

EndSelect

WEnd

GUIDelete($GUISEARCH)

Opt("GUIOnEventMode", $OLDMODE)

EndFunc

 

 

Func __GUICTRLEDIT_FINDTEXT($HWND, $INPUTSEARCH, $CHKMATCHCASE, $CHKWHOLEONLY, ByRef $IPOS, ByRef $IOCCURANCE, ByRef $IREPLACEMENTS)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ICASE = 0, $IWHOLE = 0

Local $FEXACT = False

Local $SFIND = GUICtrlRead($INPUTSEARCH)

Local $STEXT = _GUICTRLEDIT_GETTEXT($HWND)

If BitAND(GUICtrlRead($CHKMATCHCASE), $__EDITCONSTANT_GUI_CHECKED) = $__EDITCONSTANT_GUI_CHECKED Then $ICASE = 1

If BitAND(GUICtrlRead($CHKWHOLEONLY), $__EDITCONSTANT_GUI_CHECKED) = $__EDITCONSTANT_GUI_CHECKED Then $IWHOLE = 1

If $SFIND <> "" Then

$IOCCURANCE += 1

$IPOS = StringInStr($STEXT, $SFIND, $ICASE, $IOCCURANCE)

If $IWHOLE And $IPOS Then

Local $C_COMPARE2 = StringMid($STEXT, $IPOS + StringLen($SFIND), 1)

If $IPOS = 1 Then

If ($IPOS + StringLen($SFIND)) - 1 = StringLen($STEXT) Or ($C_COMPARE2 = " " Or $C_COMPARE2 = @LF Or $C_COMPARE2 = @CR Or $C_COMPARE2 = @CRLF Or $C_COMPARE2 = @TAB) Then $FEXACT = True

Else

Local $C_COMPARE1 = StringMid($STEXT, $IPOS - 1, 1)

If ($IPOS + StringLen($SFIND)) - 1 = StringLen($STEXT) Then

If ($C_COMPARE1 = " " Or $C_COMPARE1 = @LF Or $C_COMPARE1 = @CR Or $C_COMPARE1 = @CRLF Or $C_COMPARE1 = @TAB) Then $FEXACT = True

Else

If ($C_COMPARE1 = " " Or $C_COMPARE1 = @LF Or $C_COMPARE1 = @CR Or $C_COMPARE1 = @CRLF Or $C_COMPARE1 = @TAB) And ($C_COMPARE2 = " " Or $C_COMPARE2 = @LF Or $C_COMPARE2 = @CR Or $C_COMPARE2 = @CRLF Or $C_COMPARE2 = @TAB) Then $FEXACT = True

EndIf

EndIf

If $FEXACT = False Then

__GUICTRLEDIT_FINDTEXT($HWND, $INPUTSEARCH, $CHKMATCHCASE, $CHKWHOLEONLY, $IPOS, $IOCCURANCE, $IREPLACEMENTS)

Else

_GUICTRLEDIT_SETSEL($HWND, $IPOS - 1, ($IPOS + StringLen($SFIND)) - 1)

_GUICTRLEDIT_SCROLL($HWND, $__EDITCONSTANT_SB_SCROLLCARET)

EndIf

ElseIf $IWHOLE And Not $IPOS Then

$IOCCURANCE = 0

MsgBox(48, "Find", "Reached End of document, Can not find the string '" & $SFIND & "'")

ElseIf Not $IWHOLE Then

If Not $IPOS Then

$IOCCURANCE = 1

_GUICTRLEDIT_SETSEL($HWND, -1, 0)

_GUICTRLEDIT_SCROLL($HWND, $__EDITCONSTANT_SB_SCROLLCARET)

$IPOS = StringInStr($STEXT, $SFIND, $ICASE, $IOCCURANCE)

If Not $IPOS Then

$IOCCURANCE = 0

MsgBox(48, "Find", "Reached End of document, Can not find the string '" & $SFIND & "'")

Else

_GUICTRLEDIT_SETSEL($HWND, $IPOS - 1, ($IPOS + StringLen($SFIND)) - 1)

_GUICTRLEDIT_SCROLL($HWND, $__EDITCONSTANT_SB_SCROLLCARET)

EndIf

Else

_GUICTRLEDIT_SETSEL($HWND, $IPOS - 1, ($IPOS + StringLen($SFIND)) - 1)

_GUICTRLEDIT_SCROLL($HWND, $__EDITCONSTANT_SB_SCROLLCARET)

EndIf

EndIf

EndIf

EndFunc

 

 

Func _GUICTRLEDIT_GETFIRSTVISIBLELINE($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETFIRSTVISIBLELINE)

EndFunc

 

 

Func _GUICTRLEDIT_GETHANDLE($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETHANDLE)

EndFunc

 

 

Func _GUICTRLEDIT_GETIMESTATUS($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETIMESTATUS, $EMSIS_COMPOSITIONSTRING)

EndFunc

 

 

Func _GUICTRLEDIT_GETLIMITTEXT($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETLIMITTEXT)

EndFunc

 

 

Func _GUICTRLEDIT_GETLINE($HWND, $ILINE)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ILENGTH = _GUICTRLEDIT_LINELENGTH($HWND, $ILINE)

If $ILENGTH = 0 Then Return ""

Local $TBUFFER = DllStructCreate("short Len;wchar Text[" & $ILENGTH & "]")

Local $PBUFFER = DllStructGetPtr($TBUFFER)

DllStructSetData($TBUFFER, "Len", $ILENGTH + 1)

Local $IRET = _SENDMESSAGE($HWND, $EM_GETLINE, $ILINE, $PBUFFER, 0, "wparam", "ptr")

If $IRET = 0 Then Return SetError($EC_ERR, $EC_ERR, "")

Local $TTEXT = DllStructCreate("wchar Text[" & $ILENGTH & "]", $PBUFFER)

Return DllStructGetData($TTEXT, "Text")

EndFunc

 

 

Func _GUICTRLEDIT_GETLINECOUNT($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETLINECOUNT)

EndFunc

 

 

Func _GUICTRLEDIT_GETMARGINS($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $AMARGINS[2]

Local $IMARGINS = _SENDMESSAGE($HWND, $EM_GETMARGINS)

$AMARGINS[0] = _WINAPI_LOWORD($IMARGINS)

$AMARGINS[1] = _WINAPI_HIWORD($IMARGINS)

Return $AMARGINS

EndFunc

 

 

Func _GUICTRLEDIT_GETMODIFY($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETMODIFY) <> 0

EndFunc

 

 

Func _GUICTRLEDIT_GETPASSWORDCHAR($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETPASSWORDCHAR)

EndFunc

 

 

Func _GUICTRLEDIT_GETRECT($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ARECT[4]

Local $TRECT = _GUICTRLEDIT_GETRECTEX($HWND)

$ARECT[0] = DllStructGetData($TRECT, "Left")

$ARECT[1] = DllStructGetData($TRECT, "Top")

$ARECT[2] = DllStructGetData($TRECT, "Right")

$ARECT[3] = DllStructGetData($TRECT, "Bottom")

Return $ARECT

EndFunc

 

 

Func _GUICTRLEDIT_GETRECTEX($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TRECT = DllStructCreate($TAGRECT)

_SENDMESSAGE($HWND, $EM_GETRECT, 0, DllStructGetPtr($TRECT), 0, "wparam", "ptr")

Return $TRECT

EndFunc

 

 

Func _GUICTRLEDIT_GETSEL($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ASEL[2]

Local $WPARAM = DllStructCreate("uint Start")

Local $LPARAM = DllStructCreate("uint End")

_SENDMESSAGE($HWND, $EM_GETSEL, DllStructGetPtr($WPARAM), DllStructGetPtr($LPARAM), 0, "ptr", "ptr")

$ASEL[0] = DllStructGetData($WPARAM, "Start")

$ASEL[1] = DllStructGetData($LPARAM, "End")

Return $ASEL

EndFunc

 

 

Func _GUICTRLEDIT_GETTEXT($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ITEXTLEN = _GUICTRLEDIT_GETTEXTLEN($HWND) + 1

Local $TTEXT = DllStructCreate("wchar Text[" & $ITEXTLEN & "]")

_SENDMESSAGE($HWND, $__EDITCONSTANT_WM_GETTEXT, $ITEXTLEN, DllStructGetPtr($TTEXT), 0, "wparam", "ptr")

Return DllStructGetData($TTEXT, "Text")

EndFunc

 

 

Func _GUICTRLEDIT_GETTEXTLEN($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $__EDITCONSTANT_WM_GETTEXTLENGTH)

EndFunc

 

 

Func _GUICTRLEDIT_GETTHUMB($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETTHUMB)

EndFunc

 

 

Func _GUICTRLEDIT_GETWORDBREAKPROC($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETWORDBREAKPROC)

EndFunc

 

 

Func _GUICTRLEDIT_HIDEBALLOONTIP($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_HIDEBALLOONTIP)

EndFunc

 

 

Func _GUICTRLEDIT_INSERTTEXT($HWND, $STEXT, $IINDEX = -1)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If $IINDEX = -1 Then

_GUICTRLEDIT_APPENDTEXT($HWND, $STEXT)

Else

_GUICTRLEDIT_SETSEL($HWND, $IINDEX, $IINDEX)

_SENDMESSAGE($HWND, $EM_REPLACESEL, True, $STEXT, 0, "wparam", "wstr")

EndIf

EndFunc

 

 

Func _GUICTRLEDIT_LINEFROMCHAR($HWND, $IINDEX = -1)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_LINEFROMCHAR, $IINDEX)

EndFunc

 

 

Func _GUICTRLEDIT_LINEINDEX($HWND, $IINDEX = -1)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_LINEINDEX, $IINDEX)

EndFunc

 

 

Func _GUICTRLEDIT_LINELENGTH($HWND, $IINDEX = -1)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $CHARINDEX = _GUICTRLEDIT_LINEINDEX($HWND, $IINDEX)

Return _SENDMESSAGE($HWND, $EM_LINELENGTH, $CHARINDEX)

EndFunc

 

 

Func _GUICTRLEDIT_LINESCROLL($HWND, $IHORIZ, $IVERT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_LINESCROLL, $IHORIZ, $IVERT) <> 0

EndFunc

 

 

Func _GUICTRLEDIT_POSFROMCHAR($HWND, $IINDEX)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ACOORD[2]

Local $IRET = _SENDMESSAGE($HWND, $EM_POSFROMCHAR, $IINDEX)

$ACOORD[0] = _WINAPI_LOWORD($IRET)

$ACOORD[1] = _WINAPI_HIWORD($IRET)

Return $ACOORD

EndFunc

 

 

Func _GUICTRLEDIT_REPLACESEL($HWND, $STEXT, $FUNDO = True)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_REPLACESEL, $FUNDO, $STEXT, 0, "wparam", "wstr")

EndFunc

 

 

Func _GUICTRLEDIT_SCROLL($HWND, $IDIRECTION)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If BitAND($IDIRECTION, $__EDITCONSTANT_SB_LINEDOWN) <> $__EDITCONSTANT_SB_LINEDOWN And BitAND($IDIRECTION, $__EDITCONSTANT_SB_LINEUP) <> $__EDITCONSTANT_SB_LINEUP And BitAND($IDIRECTION, $__EDITCONSTANT_SB_PAGEDOWN) <> $__EDITCONSTANT_SB_PAGEDOWN And BitAND($IDIRECTION, $__EDITCONSTANT_SB_PAGEUP) <> $__EDITCONSTANT_SB_PAGEUP And BitAND($IDIRECTION, $__EDITCONSTANT_SB_SCROLLCARET) <> $__EDITCONSTANT_SB_SCROLLCARET Then Return 0

If $IDIRECTION == $__EDITCONSTANT_SB_SCROLLCARET Then

Return _SENDMESSAGE($HWND, $EM_SCROLLCARET)

Else

Return _SENDMESSAGE($HWND, $EM_SCROLL, $IDIRECTION)

EndIf

EndFunc

 

 

Func _GUICTRLEDIT_SETHANDLE($HWND, $HMEMORY)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_SETHANDLE, $HMEMORY, 0, 0, "hwnd")

EndFunc

 

 

Func _GUICTRLEDIT_SETIMESTATUS($HWND, $ICOMPOSITION)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_SETIMESTATUS, $EMSIS_COMPOSITIONSTRING, $ICOMPOSITION)

EndFunc

 

 

Func _GUICTRLEDIT_SETLIMITTEXT($HWND, $ILIMIT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETLIMITTEXT, $ILIMIT)

EndFunc

 

 

Func _GUICTRLEDIT_SETMARGINS($HWND, $IMARGIN = 1, $ILEFT = 65535, $IRIGHT = 65535)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETMARGINS, $IMARGIN, _WINAPI_MAKELONG($ILEFT, $IRIGHT))

EndFunc

 

 

Func _GUICTRLEDIT_SETMODIFY($HWND, $FMODIFIED)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETMODIFY, $FMODIFIED)

EndFunc

 

 

Func _GUICTRLEDIT_SETPASSWORDCHAR($HWND, $CDISPLAYCHAR = "0")

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

$CDISPLAYCHAR = StringLeft($CDISPLAYCHAR, 1)

If Asc($CDISPLAYCHAR) = 48 Then

_SENDMESSAGE($HWND, $EM_SETPASSWORDCHAR)

Else

_SENDMESSAGE($HWND, $EM_SETPASSWORDCHAR, Asc($CDISPLAYCHAR))

EndIf

EndFunc

 

 

Func _GUICTRLEDIT_SETREADONLY($HWND, $FREADONLY)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_SETREADONLY, $FREADONLY) <> 0

EndFunc

 

 

Func _GUICTRLEDIT_SETRECT($HWND, $ARECT)

Local $TRECT = DllStructCreate($TAGRECT)

DllStructSetData($TRECT, "Left", $ARECT[0])

DllStructSetData($TRECT, "Top", $ARECT[1])

DllStructSetData($TRECT, "Right", $ARECT[2])

DllStructSetData($TRECT, "Bottom", $ARECT[3])

_GUICTRLEDIT_SETRECTEX($HWND, $TRECT)

EndFunc

 

 

Func _GUICTRLEDIT_SETRECTEX($HWND, $TRECT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETRECT, 0, DllStructGetPtr($TRECT), 0, "wparam", "ptr")

EndFunc

 

 

Func _GUICTRLEDIT_SETRECTNP($HWND, $ARECT)

Local $TRECT = DllStructCreate($TAGRECT)

DllStructSetData($TRECT, "Left", $ARECT[0])

DllStructSetData($TRECT, "Top", $ARECT[1])

DllStructSetData($TRECT, "Right", $ARECT[2])

DllStructSetData($TRECT, "Bottom", $ARECT[3])

_GUICTRLEDIT_SETRECTNPEX($HWND, $TRECT)

EndFunc

 

 

Func _GUICTRLEDIT_SETRECTNPEX($HWND, $TRECT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETRECTNP, 0, DllStructGetPtr($TRECT), 0, "wparam", "ptr")

EndFunc

 

 

Func _GUICTRLEDIT_SETSEL($HWND, $ISTART, $IEND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETSEL, $ISTART, $IEND)

EndFunc

 

 

Func _GUICTRLEDIT_SETTABSTOPS($HWND, $ATABSTOPS)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If Not IsArray($ATABSTOPS) Then Return SetError(-1, -1, False)

Local $STABSTOPS = ""

Local $INUMTABSTOPS = UBound($ATABSTOPS)

For $X = 0 To $INUMTABSTOPS - 1

$STABSTOPS &= "int;"

Next

$STABSTOPS = StringTrimRight($STABSTOPS, 1)

Local $TTABSTOPS = DllStructCreate($STABSTOPS)

For $X = 0 To $INUMTABSTOPS - 1

DllStructSetData($TTABSTOPS, $X + 1, $ATABSTOPS[$X])

Next

Local $IRET = _SENDMESSAGE($HWND, $EM_SETTABSTOPS, $INUMTABSTOPS, DllStructGetPtr($TTABSTOPS), 0, "wparam", "ptr") <> 0

_WINAPI_INVALIDATERECT($HWND)

Return $IRET

EndFunc

 

 

Func _GUICTRLEDIT_SETTEXT($HWND, $STEXT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $__EDITCONSTANT_WM_SETTEXT, 0, $STEXT, 0, "wparam", "wstr")

EndFunc

 

 

Func _GUICTRLEDIT_SETWORDBREAKPROC($HWND, $IADDRESSFUNC)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETWORDBREAKPROC, 0, $IADDRESSFUNC)

EndFunc

 

 

Func _GUICTRLEDIT_SHOWBALLOONTIP($HWND, $STITLE, $STEXT, $IICON)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TTITLE = _WINAPI_MULTIBYTETOWIDECHAR($STITLE)

Local $TTEXT = _WINAPI_MULTIBYTETOWIDECHAR($STEXT)

Local $TTT = DllStructCreate($TAGEDITBALLOONTIP)

DllStructSetData($TTT, "Size", DllStructGetSize($TTT))

DllStructSetData($TTT, "Title", DllStructGetPtr($TTITLE))

DllStructSetData($TTT, "Text", DllStructGetPtr($TTEXT))

DllStructSetData($TTT, "Icon", $IICON)

Return _SENDMESSAGE($HWND, $EM_SHOWBALLOONTIP, 0, DllStructGetPtr($TTT), 0, "wparam", "ptr") <> 0

EndFunc

 

 

Func _GUICTRLEDIT_UNDO($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_UNDO) <> 0

EndFunc

 

Global Const $GUI_EVENT_CLOSE = -3

Global Const $GUI_EVENT_MINIMIZE = -4

Global Const $GUI_EVENT_RESTORE = -5

Global Const $GUI_EVENT_MAXIMIZE = -6

Global Const $GUI_EVENT_PRIMARYDOWN = -7

Global Const $GUI_EVENT_PRIMARYUP = -8

Global Const $GUI_EVENT_SECONDARYDOWN = -9

Global Const $GUI_EVENT_SECONDARYUP = -10

Global Const $GUI_EVENT_MOUSEMOVE = -11

Global Const $GUI_EVENT_RESIZED = -12

Global Const $GUI_EVENT_DROPPED = -13

Global Const $GUI_RUNDEFMSG = "GUI_RUNDEFMSG"

Global Const $GUI_AVISTOP = 0

Global Const $GUI_AVISTART = 1

Global Const $GUI_AVICLOSE = 2

Global Const $GUI_CHECKED = 1

Global Const $GUI_INDETERMINATE = 2

Global Const $GUI_UNCHECKED = 4

Global Const $GUI_DROPACCEPTED = 8

Global Const $GUI_NODROPACCEPTED = 4096

Global Const $GUI_ACCEPTFILES = $GUI_DROPACCEPTED

Global Const $GUI_SHOW = 16

Global Const $GUI_HIDE = 32

Global Const $GUI_ENABLE = 64

Global Const $GUI_DISABLE = 128

Global Const $GUI_FOCUS = 256

Global Const $GUI_NOFOCUS = 8192

Global Const $GUI_DEFBUTTON = 512

Global Const $GUI_EXPAND = 1024

Global Const $GUI_ONTOP = 2048

Global Const $GUI_FONTITALIC = 2

Global Const $GUI_FONTUNDER = 4

Global Const $GUI_FONTSTRIKE = 8

Global Const $GUI_DOCKAUTO = 1

Global Const $GUI_DOCKLEFT = 2

Global Const $GUI_DOCKRIGHT = 4

Global Const $GUI_DOCKHCENTER = 8

Global Const $GUI_DOCKTOP = 32

Global Const $GUI_DOCKBOTTOM = 64

Global Const $GUI_DOCKVCENTER = 128

Global Const $GUI_DOCKWIDTH = 256

Global Const $GUI_DOCKHEIGHT = 512

Global Const $GUI_DOCKSIZE = 768

Global Const $GUI_DOCKMENUBAR = 544

Global Const $GUI_DOCKSTATEBAR = 576

Global Const $GUI_DOCKALL = 802

Global Const $GUI_DOCKBORDERS = 102

Global Const $GUI_GR_CLOSE = 1

Global Const $GUI_GR_LINE = 2

Global Const $GUI_GR_BEZIER = 4

Global Const $GUI_GR_MOVE = 6

Global Const $GUI_GR_COLOR = 8

Global Const $GUI_GR_RECT = 10

Global Const $GUI_GR_ELLIPSE = 12

Global Const $GUI_GR_PIE = 14

Global Const $GUI_GR_DOT = 16

Global Const $GUI_GR_PIXEL = 18

Global Const $GUI_GR_HINT = 20

Global Const $GUI_GR_REFRESH = 22

Global Const $GUI_GR_PENSIZE = 24

Global Const $GUI_GR_NOBKCOLOR = -2

Global Const $GUI_BKCOLOR_DEFAULT = -1

Global Const $GUI_BKCOLOR_TRANSPARENT = -2

Global Const $GUI_BKCOLOR_LV_ALTERNATE = -33554432

Global Const $GUI_WS_EX_PARENTDRAG = 1048576

Global Const $BS_GROUPBOX = 7

Global Const $BS_BOTTOM = 2048

Global Const $BS_CENTER = 768

Global Const $BS_DEFPUSHBUTTON = 1

Global Const $BS_LEFT = 256

Global Const $BS_MULTILINE = 8192

Global Const $BS_PUSHBOX = 10

Global Const $BS_PUSHLIKE = 4096

Global Const $BS_RIGHT = 512

Global Const $BS_RIGHTBUTTON = 32

Global Const $BS_TOP = 1024

Global Const $BS_VCENTER = 3072

Global Const $BS_FLAT = 32768

Global Const $BS_ICON = 64

Global Const $BS_BITMAP = 128

Global Const $BS_NOTIFY = 16384

Global Const $BS_SPLITBUTTON = 12

Global Const $BS_DEFSPLITBUTTON = 13

Global Const $BS_COMMANDLINK = 14

Global Const $BS_DEFCOMMANDLINK = 15

Global Const $BCSIF_GLYPH = 1

Global Const $BCSIF_IMAGE = 2

Global Const $BCSIF_STYLE = 4

Global Const $BCSIF_SIZE = 8

Global Const $BCSS_NOSPLIT = 1

Global Const $BCSS_STRETCH = 2

Global Const $BCSS_ALIGNLEFT = 4

Global Const $BCSS_IMAGE = 8

Global Const $BUTTON_IMAGELIST_ALIGN_LEFT = 0

Global Const $BUTTON_IMAGELIST_ALIGN_RIGHT = 1

Global Const $BUTTON_IMAGELIST_ALIGN_TOP = 2

Global Const $BUTTON_IMAGELIST_ALIGN_BOTTOM = 3

Global Const $BUTTON_IMAGELIST_ALIGN_CENTER = 4

Global Const $BS_3STATE = 5

Global Const $BS_AUTO3STATE = 6

Global Const $BS_AUTOCHECKBOX = 3

Global Const $BS_CHECKBOX = 2

Global Const $BS_RADIOBUTTON = 4

Global Const $BS_AUTORADIOBUTTON = 9

Global Const $BS_OWNERDRAW = 11

Global Const $GUI_SS_DEFAULT_BUTTON = 0

Global Const $GUI_SS_DEFAULT_CHECKBOX = 0

Global Const $GUI_SS_DEFAULT_GROUP = 0

Global Const $GUI_SS_DEFAULT_RADIO = 0

Global Const $BCM_FIRST = 5632

Global Const $BCM_GETIDEALSIZE = ($BCM_FIRST + 1)

Global Const $BCM_GETIMAGELIST = ($BCM_FIRST + 3)

Global Const $BCM_GETNOTE = ($BCM_FIRST + 10)

Global Const $BCM_GETNOTELENGTH = ($BCM_FIRST + 11)

Global Const $BCM_GETSPLITINFO = ($BCM_FIRST + 8)

Global Const $BCM_GETTEXTMARGIN = ($BCM_FIRST + 5)

Global Const $BCM_SETDROPDOWNSTATE = ($BCM_FIRST + 6)

Global Const $BCM_SETIMAGELIST = ($BCM_FIRST + 2)

Global Const $BCM_SETNOTE = ($BCM_FIRST + 9)

Global Const $BCM_SETSHIELD = ($BCM_FIRST + 12)

Global Const $BCM_SETSPLITINFO = ($BCM_FIRST + 7)

Global Const $BCM_SETTEXTMARGIN = ($BCM_FIRST + 4)

Global Const $BM_CLICK = 245

Global Const $BM_GETCHECK = 240

Global Const $BM_GETIMAGE = 246

Global Const $BM_GETSTATE = 242

Global Const $BM_SETCHECK = 241

Global Const $BM_SETDONTCLICK = 248

Global Const $BM_SETIMAGE = 247

Global Const $BM_SETSTATE = 243

Global Const $BM_SETSTYLE = 244

Global Const $BCN_FIRST = -1250

Global Const $BCN_DROPDOWN = ($BCN_FIRST + 2)

Global Const $BCN_HOTITEMCHANGE = ($BCN_FIRST + 1)

Global Const $BN_CLICKED = 0

Global Const $BN_PAINT = 1

Global Const $BN_HILITE = 2

Global Const $BN_UNHILITE = 3

Global Const $BN_DISABLE = 4

Global Const $BN_DOUBLECLICKED = 5

Global Const $BN_SETFOCUS = 6

Global Const $BN_KILLFOCUS = 7

Global Const $BN_PUSHED = $BN_HILITE

Global Const $BN_UNPUSHED = $BN_UNHILITE

Global Const $BN_DBLCLK = $BN_DOUBLECLICKED

Global Const $BST_CHECKED = 1

Global Const $BST_INDETERMINATE = 2

Global Const $BST_UNCHECKED = 0

Global Const $BST_FOCUS = 8

Global Const $BST_PUSHED = 4

Global Const $BST_DONTCLICK = 128

Global $_GHBUTTONLASTWND

Global $DEBUG_BTN = False

Global Const $TAGBUTTON_IMAGELIST = "ptr ImageList;" & $TAGRECT & ";uint Align"

Global Const $TAGBUTTON_SPLITINFO = "uint mask;handle himlGlyph;uint uSplitStyle;" & $TAGSIZE

Global Const $__BUTTONCONSTANT_CLASSNAME = "Button"

Global Const $__BUTTONCONSTANT_GWL_STYLE = -16

Global Const $__BUTTONCONSTANT_LR_LOADFROMFILE = 16

Global Const $__BUTTONCONSTANT_LR_CREATEDIBSECTION = 8192

Global Const $__BUTTONCONSTANT_WS_TABSTOP = 65536

Global Const $__BUTTONCONSTANT_WM_SETFONT = 48

Global Const $__BUTTONCONSTANT_DEFAULT_GUI_FONT = 17

 

Func _GUICTRLBUTTON_CLICK($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $BM_CLICK)

EndFunc

 

 

Func _GUICTRLBUTTON_CREATE($HWND, $STEXT, $IX, $IY, $IWIDTH, $IHEIGHT, $ISTYLE = -1, $IEXSTYLE = -1)

If Not IsHWnd($HWND) Then

Return SetError(1, 0, 0)

EndIf

If Not IsString($STEXT) Then

Return SetError(2, 0, 0)

EndIf

Local $IFORCEDSTYLE = BitOR($__BUTTONCONSTANT_WS_TABSTOP, $__UDFGUICONSTANT_WS_VISIBLE, $__UDFGUICONSTANT_WS_CHILD, $BS_NOTIFY)

If $ISTYLE = -1 Then

$ISTYLE = $IFORCEDSTYLE

Else

$ISTYLE = BitOR($ISTYLE, $IFORCEDSTYLE)

EndIf

If $IEXSTYLE = -1 Then $IEXSTYLE = 0

Local $NCTRLID = __UDF_GETNEXTGLOBALID($HWND)

If @error Then Return SetError(@error, @extended, 0)

Local $HBUTTON = _WINAPI_CREATEWINDOWEX($IEXSTYLE, $__BUTTONCONSTANT_CLASSNAME, $STEXT, $ISTYLE, $IX, $IY, $IWIDTH, $IHEIGHT, $HWND, $NCTRLID)

_SENDMESSAGE($HBUTTON, $__BUTTONCONSTANT_WM_SETFONT, _WINAPI_GETSTOCKOBJECT($__BUTTONCONSTANT_DEFAULT_GUI_FONT), True)

Return $HBUTTON

EndFunc

 

 

Func _GUICTRLBUTTON_DESTROY(ByRef $HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return SetError(2, 2, False)

Local $DESTROYED = 0

If IsHWnd($HWND) Then

If _WINAPI_INPROCESS($HWND, $_GHBUTTONLASTWND) 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 _GUICTRLBUTTON_ENABLE($HWND, $FENABLE = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return _WINAPI_ENABLEWINDOW($HWND, $FENABLE) = $FENABLE

EndFunc

 

 

Func _GUICTRLBUTTON_GETCHECK($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $BM_GETCHECK)

EndFunc

 

 

Func _GUICTRLBUTTON_GETFOCUS($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return _WINAPI_GETFOCUS() = $HWND

EndFunc

 

 

Func _GUICTRLBUTTON_GETIDEALSIZE($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TSIZE = DllStructCreate($TAGSIZE), $ASIZE[2]

Local $IRET = _SENDMESSAGE($HWND, $BCM_GETIDEALSIZE, 0, DllStructGetPtr($TSIZE))

If Not $IRET Then Return SetError(-1, -1, $ASIZE)

$ASIZE[0] = DllStructGetData($TSIZE, "X")

$ASIZE[1] = DllStructGetData($TSIZE, "Y")

Return $ASIZE

EndFunc

 

 

Func _GUICTRLBUTTON_GETIMAGE($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $IRET = _SENDMESSAGE($HWND, $BM_GETIMAGE, 0, 0, 0, "wparam", "lparam", "hwnd")

If $IRET <> 0 Then Return $IRET

$IRET = _SENDMESSAGE($HWND, $BM_GETIMAGE, 1, 0, 0, "wparam", "lparam", "hwnd")

If $IRET = 0 Then Return 0

Return $IRET

EndFunc

 

 

Func _GUICTRLBUTTON_GETIMAGELIST($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TBUTTON_IMAGELIST = DllStructCreate($TAGBUTTON_IMAGELIST), $AIMAGELIST[6]

If Not _SENDMESSAGE($HWND, $BCM_GETIMAGELIST, 0, DllStructGetPtr($TBUTTON_IMAGELIST)) Then Return SetError(-1, -1, $AIMAGELIST)

$AIMAGELIST[0] = DllStructGetData($TBUTTON_IMAGELIST, "ImageList")

$AIMAGELIST[1] = DllStructGetData($TBUTTON_IMAGELIST, "Left")

$AIMAGELIST[2] = DllStructGetData($TBUTTON_IMAGELIST, "Right")

$AIMAGELIST[3] = DllStructGetData($TBUTTON_IMAGELIST, "Top")

$AIMAGELIST[4] = DllStructGetData($TBUTTON_IMAGELIST, "Bottom")

$AIMAGELIST[5] = DllStructGetData($TBUTTON_IMAGELIST, "Align")

Return $AIMAGELIST

EndFunc

 

 

Func _GUICTRLBUTTON_GETNOTE($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ILEN = _GUICTRLBUTTON_GETNOTELENGTH($HWND) + 1

Local $TNOTE = DllStructCreate("wchar Note[" & $ILEN & "]")

Local $TLEN = DllStructCreate("dword")

DllStructSetData($TLEN, 1, $ILEN)

If Not _SENDMESSAGE($HWND, $BCM_GETNOTE, DllStructGetPtr($TLEN), DllStructGetPtr($TNOTE)) Then Return SetError(-1, 0, "")

Return _WINAPI_WIDECHARTOMULTIBYTE(DllStructGetPtr($TNOTE))

EndFunc

 

 

Func _GUICTRLBUTTON_GETNOTELENGTH($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $BCM_GETNOTELENGTH)

EndFunc

 

 

Func _GUICTRLBUTTON_GETSPLITINFO($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TSPLITINFO = DllStructCreate($TAGBUTTON_SPLITINFO), $AINFO[4]

DllStructSetData($TSPLITINFO, "mask", BitOR($BCSIF_GLYPH, $BCSIF_IMAGE, $BCSIF_SIZE, $BCSIF_STYLE))

If Not _SENDMESSAGE($HWND, $BCM_GETSPLITINFO, 0, DllStructGetPtr($TSPLITINFO)) Then Return SetError(-1, 0, $AINFO)

$AINFO[0] = DllStructGetData($TSPLITINFO, "himlGlyph")

$AINFO[1] = DllStructGetData($TSPLITINFO, "uSplitStyle")

$AINFO[2] = DllStructGetData($TSPLITINFO, "X")

$AINFO[3] = DllStructGetData($TSPLITINFO, "Y")

Return $AINFO

EndFunc

 

 

Func _GUICTRLBUTTON_GETSTATE($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $BM_GETSTATE)

EndFunc

 

 

Func _GUICTRLBUTTON_GETTEXT($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return _WINAPI_GETWINDOWTEXT($HWND)

Return ""

EndFunc

 

 

Func _GUICTRLBUTTON_GETTEXTMARGIN($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TRECT = DllStructCreate($TAGRECT), $ARECT[4]

If Not _SENDMESSAGE($HWND, $BCM_GETTEXTMARGIN, 0, DllStructGetPtr($TRECT)) Then Return SetError(-1, -1, $ARECT)

$ARECT[0] = DllStructGetData($TRECT, "Left")

$ARECT[1] = DllStructGetData($TRECT, "Top")

$ARECT[2] = DllStructGetData($TRECT, "Right")

$ARECT[3] = DllStructGetData($TRECT, "Bottom")

Return $ARECT

EndFunc

 

 

Func _GUICTRLBUTTON_SETCHECK($HWND, $ISTATE = $BST_CHECKED)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $BM_SETCHECK, $ISTATE)

EndFunc

 

 

Func _GUICTRLBUTTON_SETDONTCLICK($HWND, $FSTATE = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $BM_SETDONTCLICK, $FSTATE)

EndFunc

 

 

Func _GUICTRLBUTTON_SETDROPDOWNSTATE($HWND, $FSTATE = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $BCM_SETDROPDOWNSTATE, $FSTATE) <> 0

EndFunc

 

 

Func _GUICTRLBUTTON_SETFOCUS($HWND, $FFOCUS = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then

If $FFOCUS Then

Return _WINAPI_SETFOCUS($HWND) <> 0

Else

Return _WINAPI_SETFOCUS(_WINAPI_GETPARENT($HWND)) <> 0

EndIf

EndIf

EndFunc

 

 

Func _GUICTRLBUTTON_SETIMAGE($HWND, $SIMAGEFILE, $NICONID = -1, $FLARGE = False)

Local $HIMAGE, $HPREVIMAGE

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If StringUpper(StringMid($SIMAGEFILE, StringLen($SIMAGEFILE) - 2)) = "BMP" Then

If BitAND(_WINAPI_GETWINDOWLONG($HWND, $__BUTTONCONSTANT_GWL_STYLE), $BS_BITMAP) = $BS_BITMAP Then

$HIMAGE = _WINAPI_LOADIMAGE(0, $SIMAGEFILE, 0, 0, 0, BitOR($__BUTTONCONSTANT_LR_LOADFROMFILE, $__BUTTONCONSTANT_LR_CREATEDIBSECTION))

If Not $HIMAGE Then Return SetError(-1, -1, False)

$HPREVIMAGE = _SENDMESSAGE($HWND, $BM_SETIMAGE, 0, $HIMAGE)

If $HPREVIMAGE Then

If Not _WINAPI_DELETEOBJECT($HPREVIMAGE) Then _WINAPI_DESTROYICON($HPREVIMAGE)

EndIf

_WINAPI_UPDATEWINDOW($HWND)

Return True

EndIf

Else

If $NICONID = -1 Then

$HIMAGE = _WINAPI_LOADIMAGE(0, $SIMAGEFILE, 1, 0, 0, BitOR($__BUTTONCONSTANT_LR_LOADFROMFILE, $__BUTTONCONSTANT_LR_CREATEDIBSECTION))

If Not $HIMAGE Then Return SetError(-1, -1, False)

$HPREVIMAGE = _SENDMESSAGE($HWND, $BM_SETIMAGE, 1, $HIMAGE)

If $HPREVIMAGE Then

If Not _WINAPI_DELETEOBJECT($HPREVIMAGE) Then _WINAPI_DESTROYICON($HPREVIMAGE)

EndIf

_WINAPI_UPDATEWINDOW($HWND)

Return True

Else

Local $TICON = DllStructCreate("handle Handle")

Local $IRET

If $FLARGE Then

$IRET = _WINAPI_EXTRACTICONEX($SIMAGEFILE, $NICONID, DllStructGetPtr($TICON), 0, 1)

Else

$IRET = _WINAPI_EXTRACTICONEX($SIMAGEFILE, $NICONID, 0, DllStructGetPtr($TICON), 1)

EndIf

If Not $IRET Then Return SetError(-1, -1, False)

$HPREVIMAGE = _SENDMESSAGE($HWND, $BM_SETIMAGE, 1, DllStructGetData($TICON, "Handle"))

If $HPREVIMAGE Then

If Not _WINAPI_DELETEOBJECT($HPREVIMAGE) Then _WINAPI_DESTROYICON($HPREVIMAGE)

EndIf

_WINAPI_UPDATEWINDOW($HWND)

Return True

EndIf

EndIf

Return False

EndFunc

 

 

Func _GUICTRLBUTTON_SETIMAGELIST($HWND, $HIMAGE, $NALIGN = 0, $ILEFT = 1, $ITOP = 1, $IRIGHT = 1, $IBOTTOM = 1)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If $NALIGN < 0 Or $NALIGN > 4 Then $NALIGN = 0

Local $TBUTTON_IMAGELIST = DllStructCreate($TAGBUTTON_IMAGELIST)

DllStructSetData($TBUTTON_IMAGELIST, "ImageList", $HIMAGE)

DllStructSetData($TBUTTON_IMAGELIST, "Left", $ILEFT)

DllStructSetData($TBUTTON_IMAGELIST, "Top", $ITOP)

DllStructSetData($TBUTTON_IMAGELIST, "Right", $IRIGHT)

DllStructSetData($TBUTTON_IMAGELIST, "Bottom", $IBOTTOM)

DllStructSetData($TBUTTON_IMAGELIST, "Align", $NALIGN)

Local $FENABLED = _GUICTRLBUTTON_ENABLE($HWND, False)

Local $IRET = _SENDMESSAGE($HWND, $BCM_SETIMAGELIST, 0, DllStructGetPtr($TBUTTON_IMAGELIST)) <> 0

_GUICTRLBUTTON_ENABLE($HWND)

If Not $FENABLED Then _GUICTRLBUTTON_ENABLE($HWND, False)

Return $IRET

EndFunc

 

 

Func _GUICTRLBUTTON_SETNOTE($HWND, $SNOTE)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TNOTE = _WINAPI_MULTIBYTETOWIDECHAR($SNOTE)

Return _SENDMESSAGE($HWND, $BCM_SETNOTE, 0, DllStructGetPtr($TNOTE)) <> 0

EndFunc

 

 

Func _GUICTRLBUTTON_SETSHIELD($HWND, $FREQUIRED = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $BCM_SETSHIELD, 0, $FREQUIRED) = 1

EndFunc

 

 

Func _GUICTRLBUTTON_SETSIZE($HWND, $IWIDTH, $IHEIGHT)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If Not _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return SetError(-1, -1, False)

Local $HPARENT = _WINAPI_GETPARENT($HWND)

If Not $HPARENT Then Return SetError(-1, -1, False)

Local $APOS = WinGetPos($HWND)

If Not IsArray($APOS) Then Return SetError(-1, -1, False)

Local $TPOINT = DllStructCreate($TAGPOINT)

DllStructSetData($TPOINT, "X", $APOS[0])

DllStructSetData($TPOINT, "Y", $APOS[1])

If Not _WINAPI_SCREENTOCLIENT($HPARENT, $TPOINT) Then Return SetError(-1, -1, False)

Local $IRET = WinMove($HWND, "", DllStructGetData($TPOINT, "X"), DllStructGetData($TPOINT, "Y"), $IWIDTH, $IHEIGHT)

Return SetError($IRET - 1, $IRET - 1, $IRET <> 0)

EndFunc

 

 

Func _GUICTRLBUTTON_SETSPLITINFO($HWND, $HIMLGLYPH = -1, $ISPLITSTYLE = $BCSS_ALIGNLEFT, $IWIDTH = 0, $IHEIGHT = 0)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TSPLITINFO = DllStructCreate($TAGBUTTON_SPLITINFO), $IMASK = 0

If $HIMLGLYPH <> -1 Then

$IMASK = BitOR($IMASK, $BCSIF_GLYPH)

DllStructSetData($TSPLITINFO, "himlGlyph", $HIMLGLYPH)

EndIf

$IMASK = BitOR($IMASK, $BCSIF_STYLE)

If BitAND($ISPLITSTYLE, $BCSS_IMAGE) = $BCSS_IMAGE Then $IMASK = BitOR($IMASK, $BCSIF_IMAGE)

DllStructSetData($TSPLITINFO, "uSplitStyle", $ISPLITSTYLE)

If $IWIDTH > 0 Or $IHEIGHT > 0 Then

$IMASK = BitOR($IMASK, $BCSIF_SIZE)

DllStructSetData($TSPLITINFO, "X", $IWIDTH)

DllStructSetData($TSPLITINFO, "Y", $IHEIGHT)

EndIf

DllStructSetData($TSPLITINFO, "mask", $IMASK)

Return _SENDMESSAGE($HWND, $BCM_SETSPLITINFO, 0, DllStructGetPtr($TSPLITINFO)) <> 0

EndFunc

 

 

Func _GUICTRLBUTTON_SETSTATE($HWND, $FHIGHLIGHTED = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $BM_SETSTATE, $FHIGHLIGHTED)

EndFunc

 

 

Func _GUICTRLBUTTON_SETSTYLE($HWND, $ISTYLE)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $BM_SETSTYLE, $ISTYLE, True)

_WINAPI_UPDATEWINDOW($HWND)

EndFunc

 

 

Func _GUICTRLBUTTON_SETTEXT($HWND, $STEXT)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return _WINAPI_SETWINDOWTEXT($HWND, $STEXT)

EndFunc

 

 

Func _GUICTRLBUTTON_SETTEXTMARGIN($HWND, $ILEFT = 1, $ITOP = 1, $IRIGHT = 1, $IBOTTOM = 1)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TRECT = DllStructCreate($TAGRECT)

DllStructSetData($TRECT, "Left", $ILEFT)

DllStructSetData($TRECT, "Top", $ITOP)

DllStructSetData($TRECT, "Right", $IRIGHT)

DllStructSetData($TRECT, "Bottom", $IBOTTOM)

Return _SENDMESSAGE($HWND, $BCM_SETTEXTMARGIN, 0, DllStructGetPtr($TRECT)) <> 0

EndFunc

 

 

Func _GUICTRLBUTTON_SHOW($HWND, $FSHOW = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then

If $FSHOW Then

Return _WINAPI_SHOWWINDOW($HWND, @SW_SHOW)

Else

Return _WINAPI_SHOWWINDOW($HWND, @SW_HIDE)

EndIf

EndIf

EndFunc

 

Global Const $TBIF_IMAGE = 1

Global Const $TBIF_TEXT = 2

Global Const $TBIF_STATE = 4

Global Const $TBIF_STYLE = 8

Global Const $TBIF_LPARAM = 16

Global Const $TBIF_COMMAND = 32

Global Const $TBIF_SIZE = 64

Global Const $TBIF_BYINDEX = -2147483648

Global Const $TBMF_PAD = 1

Global Const $TBMF_BARPAD = 2

Global Const $TBMF_BUTTONSPACING = 4

Global Const $TBSTATE_CHECKED = 1

Global Const $TBSTATE_PRESSED = 2

Global Const $TBSTATE_ENABLED = 4

Global Const $TBSTATE_HIDDEN = 8

Global Const $TBSTATE_INDETERMINATE = 16

Global Const $TBSTATE_WRAP = 32

Global Const $TBSTATE_ELLIPSES = 64

Global Const $TBSTATE_MARKED = 128

Global Const $__TOOLBARCONSTANTS_WM_USER = 1024

Global Const $TB_ENABLEBUTTON = $__TOOLBARCONSTANTS_WM_USER + 1

Global Const $TB_CHECKBUTTON = $__TOOLBARCONSTANTS_WM_USER + 2

Global Const $TB_PRESSBUTTON = $__TOOLBARCONSTANTS_WM_USER + 3

Global Const $TB_HIDEBUTTON = $__TOOLBARCONSTANTS_WM_USER + 4

Global Const $TB_INDETERMINATE = $__TOOLBARCONSTANTS_WM_USER + 5

Global Const $TB_MARKBUTTON = $__TOOLBARCONSTANTS_WM_USER + 6

Global Const $TB_ISBUTTONENABLED = $__TOOLBARCONSTANTS_WM_USER + 9

Global Const $TB_ISBUTTONCHECKED = $__TOOLBARCONSTANTS_WM_USER + 10

Global Const $TB_ISBUTTONPRESSED = $__TOOLBARCONSTANTS_WM_USER + 11

Global Const $TB_ISBUTTONHIDDEN = $__TOOLBARCONSTANTS_WM_USER + 12

Global Const $TB_ISBUTTONINDETERMINATE = $__TOOLBARCONSTANTS_WM_USER + 13

Global Const $TB_ISBUTTONHIGHLIGHTED = $__TOOLBARCONSTANTS_WM_USER + 14

Global Const $TB_SETSTATE = $__TOOLBARCONSTANTS_WM_USER + 17

Global Const $TB_GETSTATE = $__TOOLBARCONSTANTS_WM_USER + 18

Global Const $TB_ADDBITMAP = $__TOOLBARCONSTANTS_WM_USER + 19

Global Const $TB_ADDBUTTONSA = $__TOOLBARCONSTANTS_WM_USER + 20

Global Const $TB_INSERTBUTTONA = $__TOOLBARCONSTANTS_WM_USER + 21

Global Const $TB_DELETEBUTTON = $__TOOLBARCONSTANTS_WM_USER + 22

Global Const $TB_GETBUTTON = $__TOOLBARCONSTANTS_WM_USER + 23

Global Const $TB_BUTTONCOUNT = $__TOOLBARCONSTANTS_WM_USER + 24

Global Const $TB_COMMANDTOINDEX = $__TOOLBARCONSTANTS_WM_USER + 25

Global Const $TB_SAVERESTOREA = $__TOOLBARCONSTANTS_WM_USER + 26

Global Const $TB_SAVERESTOREW = $__TOOLBARCONSTANTS_WM_USER + 76

Global Const $TB_CUSTOMIZE = $__TOOLBARCONSTANTS_WM_USER + 27

Global Const $TB_ADDSTRINGA = $__TOOLBARCONSTANTS_WM_USER + 28

Global Const $TB_ADDSTRINGW = $__TOOLBARCONSTANTS_WM_USER + 77

Global Const $TB_GETITEMRECT = $__TOOLBARCONSTANTS_WM_USER + 29

Global Const $TB_BUTTONSTRUCTSIZE = $__TOOLBARCONSTANTS_WM_USER + 30

Global Const $TB_SETBUTTONSIZE = $__TOOLBARCONSTANTS_WM_USER + 31

Global Const $TB_SETBITMAPSIZE = $__TOOLBARCONSTANTS_WM_USER + 32

Global Const $TB_AUTOSIZE = $__TOOLBARCONSTANTS_WM_USER + 33

Global Const $TB_GETTOOLTIPS = $__TOOLBARCONSTANTS_WM_USER + 35

Global Const $TB_SETTOOLTIPS = $__TOOLBARCONSTANTS_WM_USER + 36

Global Const $TB_SETPARENT = $__TOOLBARCONSTANTS_WM_USER + 37

Global Const $TB_SETROWS = $__TOOLBARCONSTANTS_WM_USER + 39

Global Const $TB_GETROWS = $__TOOLBARCONSTANTS_WM_USER + 40

Global Const $TB_GETBITMAPFLAGS = $__TOOLBARCONSTANTS_WM_USER + 41

Global Const $TB_SETCMDID = $__TOOLBARCONSTANTS_WM_USER + 42

Global Const $TB_CHANGEBITMAP = $__TOOLBARCONSTANTS_WM_USER + 43

Global Const $TB_GETBITMAP = $__TOOLBARCONSTANTS_WM_USER + 44

Global Const $TB_GETBUTTONTEXTA = $__TOOLBARCONSTANTS_WM_USER + 45

Global Const $TB_GETBUTTONTEXTW = $__TOOLBARCONSTANTS_WM_USER + 75

Global Const $TB_REPLACEBITMAP = $__TOOLBARCONSTANTS_WM_USER + 46

Global Const $TB_SETINDENT = $__TOOLBARCONSTANTS_WM_USER + 47

Global Const $TB_SETIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 48

Global Const $TB_GETIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 49

Global Const $TB_LOADIMAGES = $__TOOLBARCONSTANTS_WM_USER + 50

Global Const $TB_GETRECT = $__TOOLBARCONSTANTS_WM_USER + 51

Global Const $TB_SETHOTIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 52

Global Const $TB_GETHOTIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 53

Global Const $TB_SETDISABLEDIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 54

Global Const $TB_GETDISABLEDIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 55

Global Const $TB_SETSTYLE = $__TOOLBARCONSTANTS_WM_USER + 56

Global Const $TB_GETSTYLE = $__TOOLBARCONSTANTS_WM_USER + 57

Global Const $TB_GETBUTTONSIZE = $__TOOLBARCONSTANTS_WM_USER + 58

Global Const $TB_SETBUTTONWIDTH = $__TOOLBARCONSTANTS_WM_USER + 59

Global Const $TB_SETMAXTEXTROWS = $__TOOLBARCONSTANTS_WM_USER + 60

Global Const $TB_GETTEXTROWS = $__TOOLBARCONSTANTS_WM_USER + 61

Global Const $TB_GETOBJECT = $__TOOLBARCONSTANTS_WM_USER + 62

Global Const $TB_GETBUTTONINFOW = $__TOOLBARCONSTANTS_WM_USER + 63

Global Const $TB_SETBUTTONINFOW = $__TOOLBARCONSTANTS_WM_USER + 64

Global Const $TB_GETBUTTONINFOA = $__TOOLBARCONSTANTS_WM_USER + 65

Global Const $TB_SETBUTTONINFOA = $__TOOLBARCONSTANTS_WM_USER + 66

Global Const $TB_INSERTBUTTONW = $__TOOLBARCONSTANTS_WM_USER + 67

Global Const $TB_ADDBUTTONSW = $__TOOLBARCONSTANTS_WM_USER + 68

Global Const $TB_HITTEST = $__TOOLBARCONSTANTS_WM_USER + 69

Global Const $TB_SETDRAWTEXTFLAGS = $__TOOLBARCONSTANTS_WM_USER + 70

Global Const $TB_GETHOTITEM = $__TOOLBARCONSTANTS_WM_USER + 71

Global Const $TB_SETHOTITEM = $__TOOLBARCONSTANTS_WM_USER + 72

Global Const $TB_SETANCHORHIGHLIGHT = $__TOOLBARCONSTANTS_WM_USER + 73

Global Const $TB_GETANCHORHIGHLIGHT = $__TOOLBARCONSTANTS_WM_USER + 74

Global Const $TB_MAPACCELERATOR = $__TOOLBARCONSTANTS_WM_USER + 78

Global Const $TB_GETINSERTMARK = $__TOOLBARCONSTANTS_WM_USER + 79

Global Const $TB_SETINSERTMARK = $__TOOLBARCONSTANTS_WM_USER + 80

Global Const $TB_INSERTMARKHITTEST = $__TOOLBARCONSTANTS_WM_USER + 81

Global Const $TB_MOVEBUTTON = $__TOOLBARCONSTANTS_WM_USER + 82

Global Const $TB_GETMAXSIZE = $__TOOLBARCONSTANTS_WM_USER + 83

Global Const $TB_SETEXTENDEDSTYLE = $__TOOLBARCONSTANTS_WM_USER + 84

Global Const $TB_GETEXTENDEDSTYLE = $__TOOLBARCONSTANTS_WM_USER + 85

Global Const $TB_GETPADDING = $__TOOLBARCONSTANTS_WM_USER + 86

Global Const $TB_SETPADDING = $__TOOLBARCONSTANTS_WM_USER + 87

Global Const $TB_SETINSERTMARKCOLOR = $__TOOLBARCONSTANTS_WM_USER + 88

Global Const $TB_GETINSERTMARKCOLOR = $__TOOLBARCONSTANTS_WM_USER + 89

Global Const $TB_MAPACCELERATORW = $__TOOLBARCONSTANTS_WM_USER + 90

Global Const $TB_GETSTRINGW = $__TOOLBARCONSTANTS_WM_USER + 91

Global Const $TB_GETSTRINGA = $__TOOLBARCONSTANTS_WM_USER + 92

Global Const $TB_GETMETRICS = $__TOOLBARCONSTANTS_WM_USER + 101

Global Const $TB_SETMETRICS = $__TOOLBARCONSTANTS_WM_USER + 102

Global Const $TB_GETCOLORSCHEME = 8192 + 3

Global Const $TB_SETCOLORSCHEME = 8192 + 2

Global Const $TB_SETUNICODEFORMAT = 8192 + 5

Global Const $TB_GETUNICODEFORMAT = 8192 + 6

Global Const $TB_SETWINDOWTHEME = 8192 + 11

Global Const $TBN_FIRST = -700

Global Const $TBN_GETBUTTONINFOA = $TBN_FIRST - 0

Global Const $TBN_BEGINDRAG = $TBN_FIRST - 1

Global Const $TBN_ENDDRAG = $TBN_FIRST - 2

Global Const $TBN_BEGINADJUST = $TBN_FIRST - 3

Global Const $TBN_ENDADJUST = $TBN_FIRST - 4

Global Const $TBN_RESET = $TBN_FIRST - 5

Global Const $TBN_QUERYINSERT = $TBN_FIRST - 6

Global Const $TBN_QUERYDELETE = $TBN_FIRST - 7

Global Const $TBN_TOOLBARCHANGE = $TBN_FIRST - 8

Global Const $TBN_CUSTHELP = $TBN_FIRST - 9

Global Const $TBN_DROPDOWN = $TBN_FIRST - 10

Global Const $TBN_GETOBJECT = $TBN_FIRST - 12

Global Const $TBN_HOTITEMCHANGE = $TBN_FIRST - 13

Global Const $TBN_DRAGOUT = $TBN_FIRST - 14

Global Const $TBN_DELETINGBUTTON = $TBN_FIRST - 15

Global Const $TBN_GETDISPINFOA = $TBN_FIRST - 16

Global Const $TBN_GETDISPINFOW = $TBN_FIRST - 17

Global Const $TBN_GETINFOTIPA = $TBN_FIRST - 18

Global Const $TBN_GETINFOTIPW = $TBN_FIRST - 19

Global Const $TBN_GETBUTTONINFOW = $TBN_FIRST - 20

Global Const $TBN_RESTORE = $TBN_FIRST - 21

Global Const $TBN_SAVE = $TBN_FIRST - 22

Global Const $TBN_INITCUSTOMIZE = $TBN_FIRST - 23

Global Const $HICF_ACCELERATOR = 4

Global Const $HICF_ARROWKEYS = 2

Global Const $HICF_DUPACCEL = 8

Global Const $HICF_ENTERING = 16

Global Const $HICF_LEAVING = 32

Global Const $HICF_LMOUSE = 128

Global Const $HICF_MOUSE = 1

Global Const $HICF_OTHER = 0

Global Const $HICF_RESELECT = 64

Global Const $HICF_TOGGLEDROPDOWN = 256

Global Const $BTNS_BUTTON = 0

Global Const $BTNS_SEP = 1

Global Const $BTNS_CHECK = 2

Global Const $BTNS_GROUP = 4

Global Const $BTNS_CHECKGROUP = 6

Global Const $BTNS_DROPDOWN = 8

Global Const $BTNS_AUTOSIZE = 16

Global Const $BTNS_NOPREFIX = 32

Global Const $BTNS_SHOWTEXT = 64

Global Const $BTNS_WHOLEDROPDOWN = 128

Global Const $TBSTYLE_TOOLTIPS = 256

Global Const $TBSTYLE_WRAPABLE = 512

Global Const $TBSTYLE_ALTDRAG = 1024

Global Const $TBSTYLE_FLAT = 2048

Global Const $TBSTYLE_LIST = 4096

Global Const $TBSTYLE_CUSTOMERASE = 8192

Global Const $TBSTYLE_REGISTERDROP = 16384

Global Const $TBSTYLE_TRANSPARENT = 32768

Global Const $TBSTYLE_EX_DRAWDDARROWS = 1

Global Const $TBSTYLE_EX_MIXEDBUTTONS = 8

Global Const $TBSTYLE_EX_HIDECLIPPEDBUTTONS = 16

Global Const $TBSTYLE_EX_DOUBLEBUFFER = 128

Global $GH_TBLASTWND

Global $DEBUG_TB = False

Global Const $__TOOLBARCONSTANT_CLASSNAME = "ToolbarWindow32"

Global Const $__TOOLBARCONSTANT_WS_CLIPSIBLINGS = 67108864

Global Const $__TOOLBARCONSTANT_LR_LOADFROMFILE = 16

Global Const $__TOOLBARCONSTANT_HINST_COMMCTRL = -1

Global Const $TAGTBADDBITMAP = "handle hInst;uint_ptr ID"

Global Const $TAGTBINSERTMARK = "int Button;dword Flags"

Global Const $TAGTBMETRICS = "uint Size;dword Mask;int XPad;int YPad;int XBarPad;int YBarPad;int XSpacing;int YSpacing"

 

Func _GUICTRLTOOLBAR_ADDBITMAP($HWND, $IBUTTONS, $HINST, $IID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TBITMAP = DllStructCreate($TAGTBADDBITMAP)

Local $PBITMAP = DllStructGetPtr($TBITMAP)

DllStructSetData($TBITMAP, "hInst", $HINST)

DllStructSetData($TBITMAP, "ID", $IID)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_ADDBITMAP, $IBUTTONS, $PBITMAP, 0, "wparam", "ptr")

Else

Local $IBITMAP = DllStructGetSize($TBITMAP)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBITMAP, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBITMAP, $PMEMORY, $IBITMAP)

$IRET = _SENDMESSAGE($HWND, $TB_ADDBITMAP, $IBUTTONS, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

Return $IRET

EndFunc

 

 

Func _GUICTRLTOOLBAR_ADDBUTTON($HWND, $IID, $IIMAGE, $ISTRING = 0, $ISTYLE = 0, $ISTATE = 4, $IPARAM = 0)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $TBUTTON = DllStructCreate($TAGTBBUTTON)

Local $PBUTTON = DllStructGetPtr($TBUTTON)

DllStructSetData($TBUTTON, "Bitmap", $IIMAGE)

DllStructSetData($TBUTTON, "Command", $IID)

DllStructSetData($TBUTTON, "State", $ISTATE)

DllStructSetData($TBUTTON, "Style", $ISTYLE)

DllStructSetData($TBUTTON, "Param", $IPARAM)

DllStructSetData($TBUTTON, "String", $ISTRING)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_ADDBUTTONSW, 1, $PBUTTON, 0, "wparam", "ptr")

Else

Local $IBUTTON = DllStructGetSize($TBUTTON)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUTTON, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUTTON, $PMEMORY, $IBUTTON)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_ADDBUTTONSW, 1, $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_ADDBUTTONSA, 1, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMFREE($TMEMMAP)

EndIf

__GUICTRLTOOLBAR_AUTOSIZE($HWND)

Return $IRET <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ADDBUTTONSEP($HWND, $IWIDTH = 6)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

_GUICTRLTOOLBAR_ADDBUTTON($HWND, 0, $IWIDTH, 0, $BTNS_SEP)

EndFunc

 

 

Func _GUICTRLTOOLBAR_ADDSTRING($HWND, $SSTRING)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER = StringLen($SSTRING) + 2

Local $TBUFFER

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TBUFFER = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TBUFFER)

DllStructSetData($TBUFFER, "Text", $SSTRING)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_ADDSTRINGW, 0, $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUFFER, $PMEMORY, $IBUFFER)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_ADDSTRINGW, 0, $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_ADDSTRINGA, 0, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMFREE($TMEMMAP)

EndIf

Return $IRET

EndFunc

 

 

Func __GUICTRLTOOLBAR_AUTOSIZE($HWND)

_SENDMESSAGE($HWND, $TB_AUTOSIZE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_BUTTONCOUNT($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_BUTTONCOUNT)

EndFunc

 

 

Func __GUICTRLTOOLBAR_BUTTONSTRUCTSIZE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TBUTTON = DllStructCreate($TAGTBBUTTON)

_SENDMESSAGE($HWND, $TB_BUTTONSTRUCTSIZE, DllStructGetSize($TBUTTON), 0, 0, "wparam", "ptr")

EndFunc

 

 

Func _GUICTRLTOOLBAR_CHECKBUTTON($HWND, $ICOMMANDID, $FCHECK = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_CHECKBUTTON, $ICOMMANDID, $FCHECK) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_CLICKACCEL($HWND, $CACCEL, $SBUTTON = "left", $FMOVE = False, $ICLICKS = 1, $ISPEED = 1)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $IID = _GUICTRLTOOLBAR_MAPACCELERATOR($HWND, $CACCEL)

_GUICTRLTOOLBAR_CLICKBUTTON($HWND, $IID, $SBUTTON, $FMOVE, $ICLICKS, $ISPEED)

EndFunc

 

 

Func _GUICTRLTOOLBAR_CLICKBUTTON($HWND, $ICOMMANDID, $SBUTTON = "left", $FMOVE = False, $ICLICKS = 1, $ISPEED = 1)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TRECT = _GUICTRLTOOLBAR_GETBUTTONRECTEX($HWND, $ICOMMANDID)

Local $TPOINT = _WINAPI_POINTFROMRECT($TRECT)

$TPOINT = _WINAPI_CLIENTTOSCREEN($HWND, $TPOINT)

Local $IX, $IY

_WINAPI_GETXYFROMPOINT($TPOINT, $IX, $IY)

Local $IMODE = Opt("MouseCoordMode", 1)

If Not $FMOVE Then

Local $APOS = MouseGetPos()

_WINAPI_SHOWCURSOR(False)

MouseClick($SBUTTON, $IX, $IY, $ICLICKS, $ISPEED)

MouseMove($APOS[0], $APOS[1], 0)

_WINAPI_SHOWCURSOR(True)

Else

MouseClick($SBUTTON, $IX, $IY, $ICLICKS, $ISPEED)

EndIf

Opt("MouseCoordMode", $IMODE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_CLICKINDEX($HWND, $IINDEX, $SBUTTON = "left", $FMOVE = False, $ICLICKS = 1, $ISPEED = 1)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $ICOMMANDID = _GUICTRLTOOLBAR_INDEXTOCOMMAND($HWND, $IINDEX)

_GUICTRLTOOLBAR_CLICKBUTTON($HWND, $ICOMMANDID, $SBUTTON, $FMOVE, $ICLICKS, $ISPEED)

EndFunc

 

 

Func _GUICTRLTOOLBAR_COMMANDTOINDEX($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_COMMANDTOINDEX, $ICOMMANDID)

EndFunc

 

 

Func _GUICTRLTOOLBAR_CREATE($HWND, $ISTYLE = 2048, $IEXSTYLE = 0)

$ISTYLE = BitOR($ISTYLE, $__UDFGUICONSTANT_WS_CHILD, $__TOOLBARCONSTANT_WS_CLIPSIBLINGS, $__UDFGUICONSTANT_WS_VISIBLE)

Local $NCTRLID = __UDF_GETNEXTGLOBALID($HWND)

If @error Then Return SetError(@error, @extended, 0)

Local $HTOOL = _WINAPI_CREATEWINDOWEX($IEXSTYLE, $__TOOLBARCONSTANT_CLASSNAME, "", $ISTYLE, 0, 0, 0, 0, $HWND, $NCTRLID)

__GUICTRLTOOLBAR_BUTTONSTRUCTSIZE($HTOOL)

Return $HTOOL

EndFunc

 

 

Func _GUICTRLTOOLBAR_CUSTOMIZE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_CUSTOMIZE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_DELETEBUTTON($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $IINDEX = _GUICTRLTOOLBAR_COMMANDTOINDEX($HWND, $ICOMMANDID)

If $IINDEX = -1 Then Return SetError(-1, 0, False)

Return _SENDMESSAGE($HWND, $TB_DELETEBUTTON, $IINDEX) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_DESTROY(ByRef $HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

If Not _WINAPI_ISCLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME) Then Return SetError(2, 2, False)

Local $DESTROYED = 0

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) 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

If $DESTROYED Then $HWND = 0

Return $DESTROYED <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ENABLEBUTTON($HWND, $ICOMMANDID, $FENABLE = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ENABLEBUTTON, $ICOMMANDID, $FENABLE) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_FINDTOOLBAR($HWND, $STEXT)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $ICOMMANDID, $HTOOLBAR

If Not _WINAPI_ISWINDOW($HWND) Then

$HWND = WinGetHandle($HWND)

If @error Then Return SetError(-1, -1, 0)

EndIf

Local $AWINLIST = _WINAPI_ENUMWINDOWS(True, $HWND)

For $II = 1 To $AWINLIST[0][0]

If $AWINLIST[$II][1] = $__TOOLBARCONSTANT_CLASSNAME Then

$HTOOLBAR = $AWINLIST[$II][0]

For $IJ = 0 To _GUICTRLTOOLBAR_BUTTONCOUNT($HTOOLBAR) - 1

$ICOMMANDID = _GUICTRLTOOLBAR_INDEXTOCOMMAND($HTOOLBAR, $IJ)

If _GUICTRLTOOLBAR_GETBUTTONTEXT($HTOOLBAR, $ICOMMANDID) = $STEXT Then Return $HTOOLBAR

Next

EndIf

Next

Return SetError(-2, -2, 0)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETANCHORHIGHLIGHT($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETANCHORHIGHLIGHT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBITMAPFLAGS($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETBITMAPFLAGS)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONBITMAP($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETBITMAP, $ICOMMANDID)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONINFO($HWND, $ICOMMANDID)

Local $ABUTTON[5]

Local $TBUTTON = _GUICTRLTOOLBAR_GETBUTTONINFOEX($HWND, $ICOMMANDID)

$ABUTTON[0] = DllStructGetData($TBUTTON, "Image")

$ABUTTON[1] = DllStructGetData($TBUTTON, "State")

$ABUTTON[2] = DllStructGetData($TBUTTON, "Style")

$ABUTTON[3] = DllStructGetData($TBUTTON, "CX")

$ABUTTON[4] = DllStructGetData($TBUTTON, "Param")

Return $ABUTTON

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONINFOEX($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $TBUTTON = DllStructCreate($TAGTBBUTTONINFO)

Local $PBUTTON = DllStructGetPtr($TBUTTON)

Local $IBUTTON = DllStructGetSize($TBUTTON)

Local $IMASK = BitOR($TBIF_IMAGE, $TBIF_STATE, $TBIF_STYLE, $TBIF_LPARAM, $TBIF_SIZE)

DllStructSetData($TBUTTON, "Size", $IBUTTON)

DllStructSetData($TBUTTON, "Mask", $IMASK)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONINFOW, $ICOMMANDID, $PBUTTON, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUTTON, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUTTON, $PMEMORY, $IBUTTON)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONINFOW, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONINFOA, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMREAD($TMEMMAP, $PMEMORY, $PBUTTON, $IBUTTON)

_MEMFREE($TMEMMAP)

EndIf

Return SetError($IRET = -1, 0, $TBUTTON)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONPARAM($HWND, $ICOMMANDID)

Local $TBUTTON = _GUICTRLTOOLBAR_GETBUTTONINFOEX($HWND, $ICOMMANDID)

Return DllStructGetData($TBUTTON, "Param")

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONRECT($HWND, $ICOMMANDID)

Local $ARECT[4]

Local $TRECT = _GUICTRLTOOLBAR_GETBUTTONRECTEX($HWND, $ICOMMANDID)

$ARECT[0] = DllStructGetData($TRECT, "Left")

$ARECT[1] = DllStructGetData($TRECT, "Top")

$ARECT[2] = DllStructGetData($TRECT, "Right")

$ARECT[3] = DllStructGetData($TRECT, "Bottom")

Return $ARECT

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONRECTEX($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TRECT = DllStructCreate($TAGRECT)

Local $PRECT = DllStructGetPtr($TRECT)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_GETRECT, $ICOMMANDID, $PRECT, 0, "wparam", "ptr")

Else

Local $IRECT = DllStructGetSize($TRECT)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IRECT, $TMEMMAP)

_SENDMESSAGE($HWND, $TB_GETRECT, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PRECT, $IRECT)

_MEMFREE($TMEMMAP)

EndIf

Return $TRECT

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONSIZE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $ASIZE[2]

Local $IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONSIZE)

$ASIZE[0] = _WINAPI_HIWORD($IRET)

$ASIZE[1] = _WINAPI_LOWORD($IRET)

Return $ASIZE

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONSTATE($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETSTATE, $ICOMMANDID)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONSTYLE($HWND, $ICOMMANDID)

Local $TBUTTON = _GUICTRLTOOLBAR_GETBUTTONINFOEX($HWND, $ICOMMANDID)

Return DllStructGetData($TBUTTON, "Style")

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONTEXT($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER

If $FUNICODE Then

$IBUFFER = _SENDMESSAGE($HWND, $TB_GETBUTTONTEXTW, $ICOMMANDID)

Else

$IBUFFER = _SENDMESSAGE($HWND, $TB_GETBUTTONTEXTA, $ICOMMANDID)

EndIf

If $IBUFFER = 0 Then Return SetError(True, 0, "")

If $IBUFFER = 1 Then Return SetError(False, 0, "")

If $IBUFFER <= -1 Then Return SetError(False, -1, "")

$IBUFFER += 1

Local $TBUFFER

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TBUFFER = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TBUFFER)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONTEXTW, $ICOMMANDID, $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONTEXTW, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONTEXTA, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMREAD($TMEMMAP, $PMEMORY, $PBUFFER, $IBUFFER)

_MEMFREE($TMEMMAP)

EndIf

Return SetError($IRET > 0, 0, DllStructGetData($TBUFFER, "Text"))

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETCOLORSCHEME($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $ACOLOR[2], $IRET

Local $TCOLOR = DllStructCreate($TAGCOLORSCHEME)

Local $ICOLOR = DllStructGetSize($TCOLOR)

Local $PCOLOR = DllStructGetPtr($TCOLOR)

DllStructSetData($TCOLOR, "Size", $ICOLOR)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETCOLORSCHEME, 0, $PCOLOR, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ICOLOR, $TMEMMAP)

$IRET = _SENDMESSAGE($HWND, $TB_GETCOLORSCHEME, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PCOLOR, $ICOLOR)

_MEMFREE($TMEMMAP)

EndIf

$ACOLOR[0] = DllStructGetData($TCOLOR, "BtnHighlight")

$ACOLOR[1] = DllStructGetData($TCOLOR, "BtnShadow")

Return SetError($IRET = 0, 0, $ACOLOR)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETDISABLEDIMAGELIST($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETDISABLEDIMAGELIST)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETEXTENDEDSTYLE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETEXTENDEDSTYLE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETHOTIMAGELIST($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETHOTIMAGELIST)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETHOTITEM($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETHOTITEM)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETIMAGELIST($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETIMAGELIST)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETINSERTMARK($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $AMARK[2], $IRET

Local $TMARK = DllStructCreate($TAGTBINSERTMARK)

Local $PMARK = DllStructGetPtr($TMARK)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETINSERTMARK, 0, $PMARK, 0, "wparam", "ptr")

Else

Local $IMARK = DllStructGetSize($TMARK)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IMARK, $TMEMMAP)

$IRET = _SENDMESSAGE($HWND, $TB_GETINSERTMARK, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PMARK, $IMARK)

_MEMFREE($TMEMMAP)

EndIf

$AMARK[0] = DllStructGetData($TMARK, "Button")

$AMARK[1] = DllStructGetData($TMARK, "Flags")

Return SetError($IRET <> 0, 0, $AMARK)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETINSERTMARKCOLOR($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETINSERTMARKCOLOR)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETMAXSIZE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $ASIZE[2], $IRET

Local $TSIZE = DllStructCreate($TAGSIZE)

Local $PSIZE = DllStructGetPtr($TSIZE)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETMAXSIZE, 0, $PSIZE, 0, "wparam", "ptr")

Else

Local $ISIZE = DllStructGetSize($TSIZE)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ISIZE, $TMEMMAP)

$IRET = _SENDMESSAGE($HWND, $TB_GETMAXSIZE, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PSIZE, $ISIZE)

_MEMFREE($TMEMMAP)

EndIf

$ASIZE[0] = DllStructGetData($TSIZE, "X")

$ASIZE[1] = DllStructGetData($TSIZE, "Y")

Return SetError($IRET = 0, 0, $ASIZE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETMETRICS($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $AMETRICS[4]

Local $TMETRICS = DllStructCreate($TAGTBMETRICS)

Local $IMETRICS = DllStructGetSize($TMETRICS)

Local $PMETRICS = DllStructGetPtr($TMETRICS)

Local $IMASK = BitOR($TBMF_PAD, $TBMF_BUTTONSPACING)

DllStructSetData($TMETRICS, "Size", $IMETRICS)

DllStructSetData($TMETRICS, "Mask", $IMASK)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_GETMETRICS, 0, $PMETRICS, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IMETRICS, $TMEMMAP)

_SENDMESSAGE($HWND, $TB_GETMETRICS, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PMETRICS, $IMETRICS)

_MEMFREE($TMEMMAP)

EndIf

$AMETRICS[0] = DllStructGetData($TMETRICS, "XPad")

$AMETRICS[1] = DllStructGetData($TMETRICS, "YPad")

$AMETRICS[2] = DllStructGetData($TMETRICS, "XSpacing")

$AMETRICS[3] = DllStructGetData($TMETRICS, "YSpacing")

Return $AMETRICS

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETPADDING($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $APAD[2]

Local $IPAD = _SENDMESSAGE($HWND, $TB_GETPADDING)

$APAD[0] = _WINAPI_LOWORD($IPAD)

$APAD[1] = _WINAPI_HIWORD($IPAD)

Return $APAD

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETROWS($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETROWS)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTRING($HWND, $IINDEX)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER

If $FUNICODE Then

$IBUFFER = _SENDMESSAGE($HWND, $TB_GETSTRINGW, _WINAPI_MAKELONG(0, $IINDEX), 0, 0, "long") + 1

Else

$IBUFFER = _SENDMESSAGE($HWND, $TB_GETSTRINGA, _WINAPI_MAKELONG(0, $IINDEX), 0, 0, "long") + 1

EndIf

If $IBUFFER = 0 Then Return SetError(-1, 0, "")

If $IBUFFER = 1 Then Return ""

Local $TBUFFER

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TBUFFER = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TBUFFER)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETSTRINGW, _WINAPI_MAKELONG($IBUFFER, $IINDEX), $PBUFFER, 0, "long", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_GETSTRINGW, _WINAPI_MAKELONG($IBUFFER, $IINDEX), $PMEMORY, 0, "long", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_GETSTRINGA, _WINAPI_MAKELONG($IBUFFER, $IINDEX), $PMEMORY, 0, "long", "ptr")

EndIf

_MEMREAD($TMEMMAP, $PMEMORY, $PBUFFER, $IBUFFER)

_MEMFREE($TMEMMAP)

EndIf

Return SetError($IRET = -1, 0, DllStructGetData($TBUFFER, "Text"))

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETSTYLE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLEALTDRAG($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_ALTDRAG) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLECUSTOMERASE($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_CUSTOMERASE) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLEFLAT($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_FLAT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLELIST($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_LIST) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLEREGISTERDROP($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_REGISTERDROP) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLETOOLTIPS($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_TOOLTIPS) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLETRANSPARENT($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_TRANSPARENT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLEWRAPABLE($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_WRAPABLE) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETTEXTROWS($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETTEXTROWS)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETTOOLTIPS($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETTOOLTIPS)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETUNICODEFORMAT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_HIDEBUTTON($HWND, $ICOMMANDID, $FHIDE = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_HIDEBUTTON, $ICOMMANDID, $FHIDE) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_HIGHLIGHTBUTTON($HWND, $ICOMMANDID, $FHIGHLIGHT = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_MARKBUTTON, $ICOMMANDID, $FHIGHLIGHT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_HITTEST($HWND, $IX, $IY)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TPOINT = DllStructCreate($TAGPOINT)

Local $PPOINT = DllStructGetPtr($TPOINT)

DllStructSetData($TPOINT, "X", $IX)

DllStructSetData($TPOINT, "Y", $IY)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_HITTEST, 0, $PPOINT, 0, "wparam", "ptr")

Else

Local $IPOINT = DllStructGetSize($TPOINT)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IPOINT, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PPOINT, $PMEMORY, $IPOINT)

$IRET = _SENDMESSAGE($HWND, $TB_HITTEST, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

Return $IRET

EndFunc

 

 

Func _GUICTRLTOOLBAR_INDEXTOCOMMAND($HWND, $IINDEX)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TBUTTON = DllStructCreate($TAGTBBUTTON)

Local $PBUTTON = DllStructGetPtr($TBUTTON)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_GETBUTTON, $IINDEX, $PBUTTON, 0, "wparam", "ptr")

Else

Local $IBUTTON = DllStructGetSize($TBUTTON)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUTTON, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUTTON, $PMEMORY, $IBUTTON)

_SENDMESSAGE($HWND, $TB_GETBUTTON, $IINDEX, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PBUTTON, $IBUTTON)

_MEMFREE($TMEMMAP)

EndIf

Return DllStructGetData($TBUTTON, "Command")

EndFunc

 

 

Func _GUICTRLTOOLBAR_INSERTBUTTON($HWND, $IINDEX, $IID, $IIMAGE, $STEXT = "", $ISTYLE = 0, $ISTATE = 4, $IPARAM = 0)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $PBUFFER, $TBUFFER, $IRET

Local $TBUTTON = DllStructCreate($TAGTBBUTTON)

Local $PBUTTON = DllStructGetPtr($TBUTTON)

Local $IBUFFER = StringLen($STEXT) + 1

If $IBUFFER > 1 Then

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TBUFFER = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

$PBUFFER = DllStructGetPtr($TBUFFER)

DllStructSetData($TBUFFER, "Text", $STEXT)

DllStructSetData($TBUTTON, "String", $PBUFFER)

EndIf

DllStructSetData($TBUTTON, "Bitmap", $IIMAGE)

DllStructSetData($TBUTTON, "Command", $IID)

DllStructSetData($TBUTTON, "State", $ISTATE)

DllStructSetData($TBUTTON, "Style", $ISTYLE)

DllStructSetData($TBUTTON, "Param", $IPARAM)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_INSERTBUTTONW, $IINDEX, $PBUTTON, 0, "wparam", "ptr")

Else

Local $IBUTTON = DllStructGetSize($TBUTTON)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUTTON + $IBUFFER, $TMEMMAP)

Local $PTEXT = $PMEMORY + $IBUTTON

_MEMWRITE($TMEMMAP, $PBUTTON, $PMEMORY, $IBUTTON)

If $IBUFFER > 1 Then

DllStructSetData($TBUTTON, "String", $PTEXT)

_MEMWRITE($TMEMMAP, $PBUFFER, $PTEXT, $IBUFFER)

EndIf

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_INSERTBUTTONW, $IINDEX, $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_INSERTBUTTONA, $IINDEX, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMFREE($TMEMMAP)

EndIf

Return $IRET <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_INSERTMARKHITTEST($HWND, $IX, $IY)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $AMARK[2], $IRET

Local $TPOINT = DllStructCreate($TAGPOINT)

Local $PPOINT = DllStructGetPtr($TPOINT)

Local $TMARK = DllStructCreate($TAGTBINSERTMARK)

Local $PMARK = DllStructGetPtr($TMARK)

DllStructSetData($TPOINT, "X", $IX)

DllStructSetData($TPOINT, "Y", $IY)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_INSERTMARKHITTEST, $PPOINT, $PMARK, 0, "wparam", "ptr")

Else

Local $IPOINT = DllStructGetSize($TPOINT)

Local $IMARK = DllStructGetSize($TMARK)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IPOINT + $IMARK, $TMEMMAP)

Local $PMARKPTR = $PMEMORY + $IPOINT

_MEMWRITE($TMEMMAP, $PPOINT, $PMEMORY, $IPOINT)

$IRET = _SENDMESSAGE($HWND, $TB_INSERTMARKHITTEST, $PMEMORY, $PMARKPTR, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMARKPTR, $PMARK, $IMARK)

_MEMFREE($TMEMMAP)

EndIf

$AMARK[0] = DllStructGetData($TMARK, "Button")

$AMARK[1] = DllStructGetData($TMARK, "Flags")

Return SetError($IRET <> 0, 0, $AMARK)

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONCHECKED($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONCHECKED, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONENABLED($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONENABLED, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONHIDDEN($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONHIDDEN, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONHIGHLIGHTED($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONHIGHLIGHTED, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONINDETERMINATE($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONINDETERMINATE, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONPRESSED($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONPRESSED, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_LOADBITMAP($HWND, $SFILENAME)

Local $ASIZE = _GUICTRLTOOLBAR_GETBUTTONSIZE($HWND)

Local $HBITMAP = _WINAPI_LOADIMAGE(0, $SFILENAME, 0, $ASIZE[1], $ASIZE[0], $__TOOLBARCONSTANT_LR_LOADFROMFILE)

If $HBITMAP = 0 Then Return SetError(-1, -1, -1)

Return _GUICTRLTOOLBAR_ADDBITMAP($HWND, 1, 0, $HBITMAP)

EndFunc

 

 

Func _GUICTRLTOOLBAR_LOADIMAGES($HWND, $IBITMAPID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_LOADIMAGES, $IBITMAPID, $__TOOLBARCONSTANT_HINST_COMMCTRL)

EndFunc

 

 

Func _GUICTRLTOOLBAR_MAPACCELERATOR($HWND, $CACCEL)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TCOMMAND = DllStructCreate("int Data")

Local $PCOMMAND = DllStructGetPtr($TCOMMAND)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_MAPACCELERATORW, Asc($CACCEL), $PCOMMAND, 0, "wparam", "ptr")

Else

Local $ICOMMAND = DllStructGetSize($TCOMMAND)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ICOMMAND, $TMEMMAP)

_SENDMESSAGE($HWND, $TB_MAPACCELERATORW, Asc($CACCEL), $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PCOMMAND, $ICOMMAND)

_MEMFREE($TMEMMAP)

EndIf

Return DllStructGetData($TCOMMAND, "Data")

EndFunc

 

 

Func _GUICTRLTOOLBAR_MOVEBUTTON($HWND, $IOLDPOS, $INEWPOS)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_MOVEBUTTON, $IOLDPOS, $INEWPOS) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_PRESSBUTTON($HWND, $ICOMMANDID, $FPRESS = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_PRESSBUTTON, $ICOMMANDID, $FPRESS) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETANCHORHIGHLIGHT($HWND, $FANCHOR)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETANCHORHIGHLIGHT, $FANCHOR)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBITMAPSIZE($HWND, $IWIDTH, $IHEIGHT)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETBITMAPSIZE, 0, _WINAPI_MAKELONG($IWIDTH, $IHEIGHT), 0, "wparam", "long") <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONBITMAP($HWND, $ICOMMANDID, $IINDEX)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_CHANGEBITMAP, $ICOMMANDID, $IINDEX) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONINFO($HWND, $ICOMMANDID, $IIMAGE = -3, $ISTATE = -1, $ISTYLE = -1, $IWIDTH = -1, $IPARAM = -1)

Local $IMASK = 0

Local $TBUTTON = DllStructCreate($TAGTBBUTTONINFO)

If $IIMAGE <> -3 Then

$IMASK = $TBIF_IMAGE

DllStructSetData($TBUTTON, "Image", $IIMAGE)

EndIf

If $ISTATE <> -1 Then

$IMASK = BitOR($IMASK, $TBIF_STATE)

DllStructSetData($TBUTTON, "State", $ISTATE)

EndIf

If $ISTYLE <> -1 Then

$IMASK = BitOR($IMASK, $TBIF_STYLE)

DllStructSetData($TBUTTON, "Style", $ISTYLE)

EndIf

If $IWIDTH <> -1 Then

$IMASK = BitOR($IMASK, $TBIF_SIZE)

DllStructSetData($TBUTTON, "CX", $IWIDTH)

EndIf

If $IPARAM <> -1 Then

$IMASK = BitOR($IMASK, $TBIF_LPARAM)

DllStructSetData($TBUTTON, "Param", $IPARAM)

EndIf

DllStructSetData($TBUTTON, "Mask", $IMASK)

Return _GUICTRLTOOLBAR_SETBUTTONINFOEX($HWND, $ICOMMANDID, $TBUTTON)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONINFOEX($HWND, $ICOMMANDID, $TBUTTON)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $PBUTTON = DllStructGetPtr($TBUTTON)

Local $IBUTTON = DllStructGetSize($TBUTTON)

DllStructSetData($TBUTTON, "Size", $IBUTTON)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_SETBUTTONINFOW, $ICOMMANDID, $PBUTTON, 0, "wparam", "ptr")

Else

Local $IBUFFER = DllStructGetData($TBUTTON, "TextMax")

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUTTON + $IBUFFER, $TMEMMAP)

Local $PBUFFER = $PMEMORY + $IBUTTON

DllStructSetData($TBUTTON, "Text", $PBUFFER)

_MEMWRITE($TMEMMAP, $PBUTTON, $PMEMORY, $IBUTTON)

_MEMWRITE($TMEMMAP, $PBUFFER, $PBUFFER, $IBUFFER)

$IRET = _SENDMESSAGE($HWND, $TB_SETBUTTONINFOW, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

Return $IRET <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONPARAM($HWND, $ICOMMANDID, $IPARAM)

Local $TBUTTON = DllStructCreate($TAGTBBUTTONINFO)

DllStructSetData($TBUTTON, "Mask", $TBIF_LPARAM)

DllStructSetData($TBUTTON, "Param", $IPARAM)

Return _GUICTRLTOOLBAR_SETBUTTONINFOEX($HWND, $ICOMMANDID, $TBUTTON)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONSIZE($HWND, $IHEIGHT, $IWIDTH)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETBUTTONSIZE, 0, _WINAPI_MAKELONG($IWIDTH, $IHEIGHT), 0, "wparam", "long") <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONSTATE($HWND, $ICOMMANDID, $ISTATE)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETSTATE, $ICOMMANDID, $ISTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONSTYLE($HWND, $ICOMMANDID, $ISTYLE)

Local $TBUTTON = DllStructCreate($TAGTBBUTTONINFO)

DllStructSetData($TBUTTON, "Mask", $TBIF_STYLE)

DllStructSetData($TBUTTON, "Style", $ISTYLE)

Return _GUICTRLTOOLBAR_SETBUTTONINFOEX($HWND, $ICOMMANDID, $TBUTTON)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONTEXT($HWND, $ICOMMANDID, $STEXT)

Local $IBUFFER = StringLen($STEXT) + 1

Local $TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER * 2 & "]")

$IBUFFER *= 2

Local $PBUFFER = DllStructGetPtr($TBUFFER)

Local $TBUTTON = DllStructCreate($TAGTBBUTTONINFO)

DllStructSetData($TBUFFER, "Text", $STEXT)

DllStructSetData($TBUTTON, "Mask", $TBIF_TEXT)

DllStructSetData($TBUTTON, "Text", $PBUFFER)

DllStructSetData($TBUTTON, "TextMax", $IBUFFER)

Return _GUICTRLTOOLBAR_SETBUTTONINFOEX($HWND, $ICOMMANDID, $TBUTTON)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONWIDTH($HWND, $IMIN, $IMAX)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETBUTTONWIDTH, 0, _WINAPI_MAKELONG($IMIN, $IMAX), 0, "wparam", "long") <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETCMDID($HWND, $IINDEX, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETCMDID, $IINDEX, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETCOLORSCHEME($HWND, $IHIGHLIGHT, $ISHADOW)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TCOLOR = DllStructCreate($TAGCOLORSCHEME)

Local $PCOLOR = DllStructGetPtr($TCOLOR)

Local $ICOLOR = DllStructGetSize($TCOLOR)

DllStructSetData($TCOLOR, "Size", $ICOLOR)

DllStructSetData($TCOLOR, "BtnHighlight", $IHIGHLIGHT)

DllStructSetData($TCOLOR, "BtnShadow", $ISHADOW)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_SETCOLORSCHEME, 0, $PCOLOR, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ICOLOR, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PCOLOR, $PMEMORY, $ICOLOR)

_SENDMESSAGE($HWND, $TB_SETCOLORSCHEME, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETDISABLEDIMAGELIST($HWND, $HIMAGELIST)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETDISABLEDIMAGELIST, 0, $HIMAGELIST, 0, "wparam", "hwnd")

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETDRAWTEXTFLAGS($HWND, $IMASK, $IDTFLAGS)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETDRAWTEXTFLAGS, $IMASK, $IDTFLAGS)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETEXTENDEDSTYLE($HWND, $ISTYLE)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETEXTENDEDSTYLE, 0, $ISTYLE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETHOTIMAGELIST($HWND, $HIMAGELIST)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETHOTIMAGELIST, 0, $HIMAGELIST, 0, "wparam", "hwnd")

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETHOTITEM($HWND, $IINDEX)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETHOTITEM, $IINDEX)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETIMAGELIST($HWND, $HIMAGELIST)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETIMAGELIST, 0, $HIMAGELIST, 0, "wparam", "hwnd")

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETINDENT($HWND, $IINDENT)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETINDENT, $IINDENT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETINDETERMINATE($HWND, $ICOMMANDID, $FSTATE = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_INDETERMINATE, $ICOMMANDID, $FSTATE) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETINSERTMARK($HWND, $IBUTTON, $IFLAGS = 0)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TMARK = DllStructCreate($TAGTBINSERTMARK)

Local $PMARK = DllStructGetPtr($TMARK)

DllStructSetData($TMARK, "Button", $IBUTTON)

DllStructSetData($TMARK, "Flags", $IFLAGS)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_SETINSERTMARK, 0, $PMARK, 0, "wparam", "ptr")

Else

Local $IMARK = DllStructGetSize($TMARK)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IMARK, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PMARK, $PMEMORY, $IMARK)

_SENDMESSAGE($HWND, $TB_SETINSERTMARK, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETINSERTMARKCOLOR($HWND, $ICOLOR)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETINSERTMARKCOLOR, 0, $ICOLOR)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETMAXTEXTROWS($HWND, $IMAXROWS)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETMAXTEXTROWS, $IMAXROWS) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETMETRICS($HWND, $IXPAD, $IYPAD, $IXSPACING, $IYSPACING)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TMETRICS = DllStructCreate($TAGTBMETRICS)

Local $PMETRICS = DllStructGetPtr($TMETRICS)

Local $IMETRICS = DllStructGetSize($TMETRICS)

Local $IMASK = BitOR($TBMF_PAD, $TBMF_BUTTONSPACING)

DllStructSetData($TMETRICS, "Size", $IMETRICS)

DllStructSetData($TMETRICS, "Mask", $IMASK)

DllStructSetData($TMETRICS, "XPad", $IXPAD)

DllStructSetData($TMETRICS, "YPad", $IYPAD)

DllStructSetData($TMETRICS, "XSpacing", $IXSPACING)

DllStructSetData($TMETRICS, "YSpacing", $IYSPACING)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_SETMETRICS, 0, $PMETRICS, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IMETRICS, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PMETRICS, $PMEMORY, $IMETRICS)

_SENDMESSAGE($HWND, $TB_SETMETRICS, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETPADDING($HWND, $ICX, $ICY)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETPADDING, 0, _WINAPI_MAKELONG($ICX, $ICY), 0, "wparam", "long")

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETPARENT($HWND, $HPARENT)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETPARENT, $HPARENT)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETROWS($HWND, $IROWS, $FLARGER = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TRECT = DllStructCreate($TAGRECT)

Local $PRECT = DllStructGetPtr($TRECT)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_SETROWS, _WINAPI_MAKELONG($IROWS, $FLARGER), $PRECT, 0, "long", "ptr")

Else

Local $IRECT = DllStructGetSize($TRECT)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IRECT, $TMEMMAP)

_SENDMESSAGE($HWND, $TB_SETROWS, _WINAPI_MAKELONG($IROWS, $FLARGER), $PMEMORY, 0, "long", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PRECT, $IRECT)

_MEMFREE($TMEMMAP)

EndIf

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 _GUICTRLTOOLBAR_SETSTYLE($HWND, $ISTYLE)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

$ISTYLE = BitOR($ISTYLE, $__UDFGUICONSTANT_WS_CHILD, $__TOOLBARCONSTANT_WS_CLIPSIBLINGS, $__UDFGUICONSTANT_WS_VISIBLE)

_SENDMESSAGE($HWND, $TB_SETSTYLE, 0, $ISTYLE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLEALTDRAG($HWND, $FSTATE = True)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_ALTDRAG, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLECUSTOMERASE($HWND, $FSTATE = True)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_CUSTOMERASE, $FSTATE)

EndFunc

 

 

Func __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $ISTYLE, $FSTYLE)

Local $IN = _GUICTRLTOOLBAR_GETSTYLE($HWND)

If $FSTYLE Then

$IN = BitOR($IN, $ISTYLE)

Else

$IN = BitAND($IN, BitNOT($ISTYLE))

EndIf

Return _GUICTRLTOOLBAR_SETSTYLE($HWND, $IN)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLEFLAT($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_FLAT, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLELIST($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_LIST, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLEREGISTERDROP($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_REGISTERDROP, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLETOOLTIPS($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_TOOLTIPS, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLETRANSPARENT($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_TRANSPARENT, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLEWRAPABLE($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_WRAPABLE, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETTOOLTIPS($HWND, $HTOOLTIP)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

_SENDMESSAGE($HWND, $TB_SETTOOLTIPS, $HTOOLTIP, 0, 0, "hwnd")

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETUNICODEFORMAT($HWND, $FUNICODE = False)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETUNICODEFORMAT, $FUNICODE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETWINDOWTHEME($HWND, $STHEME)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TTHEME = _WINAPI_MULTIBYTETOWIDECHAR($STHEME)

Local $PTHEME = DllStructGetPtr($TTHEME)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_SETWINDOWTHEME, 0, $PTHEME, 0, "wparam", "ptr")

Else

Local $ITHEME = DllStructGetSize($TTHEME)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ITHEME, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PTHEME, $PMEMORY, $ITHEME)

_SENDMESSAGE($HWND, $TB_SETWINDOWTHEME, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

EndFunc

 

Global Const $PBS_MARQUEE = 8

Global Const $PBS_SMOOTH = 1

Global Const $PBS_SMOOTHREVERSE = 16

Global Const $PBS_VERTICAL = 4

Global Const $GUI_SS_DEFAULT_PROGRESS = 0

Global Const $__PROGRESSBARCONSTANT_WM_USER = 1024

Global Const $PBM_DELTAPOS = $__PROGRESSBARCONSTANT_WM_USER + 3

Global Const $PBM_GETBARCOLOR = 1039

Global Const $PBM_GETBKCOLOR = 1038

Global Const $PBM_GETPOS = $__PROGRESSBARCONSTANT_WM_USER + 8

Global Const $PBM_GETRANGE = $__PROGRESSBARCONSTANT_WM_USER + 7

Global Const $PBM_GETSTATE = 1041

Global Const $PBM_GETSTEP = 1037

Global Const $PBM_SETBARCOLOR = $__PROGRESSBARCONSTANT_WM_USER + 9

Global Const $PBM_SETBKCOLOR = 8192 + 1

Global Const $PBM_SETMARQUEE = $__PROGRESSBARCONSTANT_WM_USER + 10

Global Const $PBM_SETPOS = $__PROGRESSBARCONSTANT_WM_USER + 2

Global Const $PBM_SETRANGE = $__PROGRESSBARCONSTANT_WM_USER + 1

Global Const $PBM_SETRANGE32 = $__PROGRESSBARCONSTANT_WM_USER + 6

Global Const $PBM_SETSTATE = 1040

Global Const $PBM_SETSTEP = $__PROGRESSBARCONSTANT_WM_USER + 4

Global Const $PBM_STEPIT = $__PROGRESSBARCONSTANT_WM_USER + 5

Global Const $TBS_AUTOTICKS = 1

Global Const $TBS_BOTH = 8

Global Const $TBS_BOTTOM = 0

Global Const $TBS_DOWNISLEFT = 1024

Global Const $TBS_ENABLESELRANGE = 32

Global Const $TBS_FIXEDLENGTH = 64

Global Const $TBS_HORZ = 0

Global Const $TBS_LEFT = 4

Global Const $TBS_NOTHUMB = 128

Global Const $TBS_NOTICKS = 16

Global Const $TBS_REVERSED = 512

Global Const $TBS_RIGHT = 0

Global Const $TBS_TOP = 4

Global Const $TBS_TOOLTIPS = 256

Global Const $TBS_VERT = 2

Global Const $GUI_SS_DEFAULT_SLIDER = $TBS_AUTOTICKS

Global Const $TBCD_CHANNEL = 3

Global Const $TBCD_THUMB = 2

Global Const $TBCD_TICS = 1

Global Const $__SLIDERCONSTANT_WM_USER = 1024

Global Const $TBM_CLEARSEL = $__SLIDERCONSTANT_WM_USER + 19

Global Const $TBM_CLEARTICS = $__SLIDERCONSTANT_WM_USER + 9

Global Const $TBM_GETBUDDY = $__SLIDERCONSTANT_WM_USER + 33

Global Const $TBM_GETCHANNELRECT = $__SLIDERCONSTANT_WM_USER + 26

Global Const $TBM_GETLINESIZE = $__SLIDERCONSTANT_WM_USER + 24

Global Const $TBM_GETNUMTICS = $__SLIDERCONSTANT_WM_USER + 16

Global Const $TBM_GETPAGESIZE = $__SLIDERCONSTANT_WM_USER + 22

Global Const $TBM_GETPOS = $__SLIDERCONSTANT_WM_USER

Global Const $TBM_GETPTICS = $__SLIDERCONSTANT_WM_USER + 14

Global Const $TBM_GETSELEND = $__SLIDERCONSTANT_WM_USER + 18

Global Const $TBM_GETSELSTART = $__SLIDERCONSTANT_WM_USER + 17

Global Const $TBM_GETRANGEMAX = $__SLIDERCONSTANT_WM_USER + 2

Global Const $TBM_GETRANGEMIN = $__SLIDERCONSTANT_WM_USER + 1

Global Const $TBM_GETTHUMBLENGTH = $__SLIDERCONSTANT_WM_USER + 28

Global Const $TBM_GETTHUMBRECT = $__SLIDERCONSTANT_WM_USER + 25

Global Const $TBM_GETTIC = $__SLIDERCONSTANT_WM_USER + 3

Global Const $TBM_GETTICPOS = $__SLIDERCONSTANT_WM_USER + 15

Global Const $TBM_GETTOOLTIPS = $__SLIDERCONSTANT_WM_USER + 30

Global Const $TBM_GETUNICODEFORMAT = 8192 + 6

Global Const $TBM_SETBUDDY = $__SLIDERCONSTANT_WM_USER + 32

Global Const $TBM_SETLINESIZE = $__SLIDERCONSTANT_WM_USER + 23

Global Const $TBM_SETPAGESIZE = $__SLIDERCONSTANT_WM_USER + 21

Global Const $TBM_SETPOS = $__SLIDERCONSTANT_WM_USER + 5

Global Const $TBM_SETRANGE = $__SLIDERCONSTANT_WM_USER + 6

Global Const $TBM_SETRANGEMAX = $__SLIDERCONSTANT_WM_USER + 8

Global Const $TBM_SETRANGEMIN = $__SLIDERCONSTANT_WM_USER + 7

Global Const $TBM_SETSEL = $__SLIDERCONSTANT_WM_USER + 10

Global Const $TBM_SETSELEND = $__SLIDERCONSTANT_WM_USER + 12

Global Const $TBM_SETSELSTART = $__SLIDERCONSTANT_WM_USER + 11

Global Const $TBM_SETTHUMBLENGTH = $__SLIDERCONSTANT_WM_USER + 27

Global Const $TBM_SETTIC = $__SLIDERCONSTANT_WM_USER + 4

Global Const $TBM_SETTICFREQ = $__SLIDERCONSTANT_WM_USER + 20

Global Const $TBM_SETTIPSIDE = $__SLIDERCONSTANT_WM_USER + 31

Global Const $TBM_SETTOOLTIPS = $__SLIDERCONSTANT_WM_USER + 29

Global Const $TBM_SETUNICODEFORMAT = 8192 + 5

Global Const $TBTS_BOTTOM = 2

Global Const $TBTS_LEFT = 1

Global Const $TBTS_RIGHT = 3

Global Const $TBTS_TOP = 0

Global Const $SS_LEFT = 0

Global Const $SS_CENTER = 1

Global Const $SS_RIGHT = 2

Global Const $SS_ICON = 3

Global Const $SS_BLACKRECT = 4

Global Const $SS_GRAYRECT = 5

Global Const $SS_WHITERECT = 6

Global Const $SS_BLACKFRAME = 7

Global Const $SS_GRAYFRAME = 8

Global Const $SS_WHITEFRAME = 9

Global Const $SS_SIMPLE = 11

Global Const $SS_LEFTNOWORDWRAP = 12

Global Const $SS_BITMAP = 14

Global Const $SS_ETCHEDHORZ = 16

Global Const $SS_ETCHEDVERT = 17

Global Const $SS_ETCHEDFRAME = 18

Global Const $SS_NOPREFIX = 128

Global Const $SS_NOTIFY = 256

Global Const $SS_CENTERIMAGE = 512

Global Const $SS_RIGHTJUST = 1024

Global Const $SS_SUNKEN = 4096

Global Const $GUI_SS_DEFAULT_LABEL = 0

Global Const $GUI_SS_DEFAULT_GRAPHIC = 0

Global Const $GUI_SS_DEFAULT_ICON = $SS_NOTIFY

Global Const $GUI_SS_DEFAULT_PIC = $SS_NOTIFY

Global Const $WS_TILED = 0

Global Const $WS_OVERLAPPED = 0

Global Const $WS_MAXIMIZEBOX = 65536

Global Const $WS_MINIMIZEBOX = 131072

Global Const $WS_TABSTOP = 65536

Global Const $WS_GROUP = 131072

Global Const $WS_SIZEBOX = 262144

Global Const $WS_THICKFRAME = 262144

Global Const $WS_SYSMENU = 524288

Global Const $WS_HSCROLL = 1048576

Global Const $WS_VSCROLL = 2097152

Global Const $WS_DLGFRAME = 4194304

Global Const $WS_BORDER = 8388608

Global Const $WS_CAPTION = 12582912

Global Const $WS_OVERLAPPEDWINDOW = 13565952

Global Const $WS_TILEDWINDOW = 13565952

Global Const $WS_MAXIMIZE = 16777216

Global Const $WS_CLIPCHILDREN = 33554432

Global Const $WS_CLIPSIBLINGS = 67108864

Global Const $WS_DISABLED = 134217728

Global Const $WS_VISIBLE = 268435456

Global Const $WS_MINIMIZE = 536870912

Global Const $WS_CHILD = 1073741824

Global Const $WS_POPUP = -2147483648

Global Const $WS_POPUPWINDOW = -2138570752

Global Const $DS_MODALFRAME = 128

Global Const $DS_SETFOREGROUND = 512

Global Const $DS_CONTEXTHELP = 8192

Global Const $WS_EX_ACCEPTFILES = 16

Global Const $WS_EX_MDICHILD = 64

Global Const $WS_EX_APPWINDOW = 262144

Global Const $WS_EX_COMPOSITED = 33554432

Global Const $WS_EX_CLIENTEDGE = 512

Global Const $WS_EX_CONTEXTHELP = 1024

Global Const $WS_EX_DLGMODALFRAME = 1

Global Const $WS_EX_LEFTSCROLLBAR = 16384

Global Const $WS_EX_OVERLAPPEDWINDOW = 768

Global Const $WS_EX_RIGHT = 4096

Global Const $WS_EX_STATICEDGE = 131072

Global Const $WS_EX_TOOLWINDOW = 128

Global Const $WS_EX_TOPMOST = 8

Global Const $WS_EX_TRANSPARENT = 32

Global Const $WS_EX_WINDOWEDGE = 256

Global Const $WS_EX_LAYERED = 524288

Global Const $WS_EX_CONTROLPARENT = 65536

Global Const $WS_EX_LAYOUTRTL = 4194304

Global Const $WS_EX_RTLREADING = 8192

Global Const $WM_GETTEXTLENGTH = 14

Global Const $WM_GETTEXT = 13

Global Const $WM_SIZE = 5

Global Const $WM_SIZING = 532

Global Const $WM_USER = 1024

Global Const $WM_CREATE = 1

Global Const $WM_DESTROY = 2

Global Const $WM_MOVE = 3

Global Const $WM_ACTIVATE = 6

Global Const $WM_SETFOCUS = 7

Global Const $WM_KILLFOCUS = 8

Global Const $WM_ENABLE = 10

Global Const $WM_SETREDRAW = 11

Global Const $WM_SETTEXT = 12

Global Const $WM_PAINT = 15

Global Const $WM_CLOSE = 16

Global Const $WM_QUIT = 18

Global Const $WM_ERASEBKGND = 20

Global Const $WM_SYSCOLORCHANGE = 21

Global Const $WM_SHOWWINDOW = 24

Global Const $WM_WININICHANGE = 26

Global Const $WM_DEVMODECHANGE = 27

Global Const $WM_ACTIVATEAPP = 28

Global Const $WM_FONTCHANGE = 29

Global Const $WM_TIMECHANGE = 30

Global Const $WM_CANCELMODE = 31

Global Const $WM_SETCURSOR = 32

Global Const $WM_MOUSEACTIVATE = 33

Global Const $WM_CHILDACTIVATE = 34

Global Const $WM_QUEUESYNC = 35

Global Const $WM_GETMINMAXINFO = 36

Global Const $WM_PAINTICON = 38

Global Const $WM_ICONERASEBKGND = 39

Global Const $WM_NEXTDLGCTL = 40

Global Const $WM_SPOOLERSTATUS = 42

Global Const $WM_DRAWITEM = 43

Global Const $WM_MEASUREITEM = 44

Global Const $WM_DELETEITEM = 45

Global Const $WM_VKEYTOITEM = 46

Global Const $WM_CHARTOITEM = 47

Global Const $WM_SETFONT = 48

Global Const $WM_GETFONT = 49

Global Const $WM_SETHOTKEY = 50

Global Const $WM_GETHOTKEY = 51

Global Const $WM_QUERYDRAGICON = 55

Global Const $WM_COMPAREITEM = 57

Global Const $WM_GETOBJECT = 61

Global Const $WM_COMPACTING = 65

Global Const $WM_COMMNOTIFY = 68

Global Const $WM_WINDOWPOSCHANGING = 70

Global Const $WM_WINDOWPOSCHANGED = 71

Global Const $WM_POWER = 72

Global Const $WM_NOTIFY = 78

Global Const $WM_COPYDATA = 74

Global Const $WM_CANCELJOURNAL = 75

Global Const $WM_INPUTLANGCHANGEREQUEST = 80

Global Const $WM_INPUTLANGCHANGE = 81

Global Const $WM_TCARD = 82

Global Const $WM_HELP = 83

Global Const $WM_USERCHANGED = 84

Global Const $WM_NOTIFYFORMAT = 85

Global Const $WM_CUT = 768

Global Const $WM_COPY = 769

Global Const $WM_PASTE = 770

Global Const $WM_CLEAR = 771

Global Const $WM_UNDO = 772

Global Const $WM_CONTEXTMENU = 123

Global Const $WM_STYLECHANGING = 124

Global Const $WM_STYLECHANGED = 125

Global Const $WM_DISPLAYCHANGE = 126

Global Const $WM_GETICON = 127

Global Const $WM_SETICON = 128

Global Const $WM_NCCREATE = 129

Global Const $WM_NCDESTROY = 130

Global Const $WM_NCCALCSIZE = 131

Global Const $WM_NCHITTEST = 132

Global Const $WM_NCPAINT = 133

Global Const $WM_NCACTIVATE = 134

Global Const $WM_GETDLGCODE = 135

Global Const $WM_SYNCPAINT = 136

Global Const $WM_NCMOUSEMOVE = 160

Global Const $WM_NCLBUTTONDOWN = 161

Global Const $WM_NCLBUTTONUP = 162

Global Const $WM_NCLBUTTONDBLCLK = 163

Global Const $WM_NCRBUTTONDOWN = 164

Global Const $WM_NCRBUTTONUP = 165

Global Const $WM_NCRBUTTONDBLCLK = 166

Global Const $WM_NCMBUTTONDOWN = 167

Global Const $WM_NCMBUTTONUP = 168

Global Const $WM_NCMBUTTONDBLCLK = 169

Global Const $WM_KEYDOWN = 256

Global Const $WM_KEYUP = 257

Global Const $WM_CHAR = 258

Global Const $WM_DEADCHAR = 259

Global Const $WM_SYSKEYDOWN = 260

Global Const $WM_SYSKEYUP = 261

Global Const $WM_SYSCHAR = 262

Global Const $WM_SYSDEADCHAR = 263

Global Const $WM_INITDIALOG = 272

Global Const $WM_COMMAND = 273

Global Const $WM_SYSCOMMAND = 274

Global Const $WM_TIMER = 275

Global Const $WM_HSCROLL = 276

Global Const $WM_VSCROLL = 277

Global Const $WM_INITMENU = 278

Global Const $WM_INITMENUPOPUP = 279

Global Const $WM_MENUSELECT = 287

Global Const $WM_MENUCHAR = 288

Global Const $WM_ENTERIDLE = 289

Global Const $WM_MENURBUTTONUP = 290

Global Const $WM_MENUDRAG = 291

Global Const $WM_MENUGETOBJECT = 292

Global Const $WM_UNINITMENUPOPUP = 293

Global Const $WM_MENUCOMMAND = 294

Global Const $WM_CHANGEUISTATE = 295

Global Const $WM_UPDATEUISTATE = 296

Global Const $WM_QUERYUISTATE = 297

Global Const $WM_CTLCOLORMSGBOX = 306

Global Const $WM_CTLCOLOREDIT = 307

Global Const $WM_CTLCOLORLISTBOX = 308

Global Const $WM_CTLCOLORBTN = 309

Global Const $WM_CTLCOLORDLG = 310

Global Const $WM_CTLCOLORSCROLLBAR = 311

Global Const $WM_CTLCOLORSTATIC = 312

Global Const $WM_CTLCOLOR = 25

Global Const $MN_GETHMENU = 481

Global Const $NM_FIRST = 0

Global Const $NM_OUTOFMEMORY = $NM_FIRST - 1

Global Const $NM_CLICK = $NM_FIRST - 2

Global Const $NM_DBLCLK = $NM_FIRST - 3

Global Const $NM_RETURN = $NM_FIRST - 4

Global Const $NM_RCLICK = $NM_FIRST - 5

Global Const $NM_RDBLCLK = $NM_FIRST - 6

Global Const $NM_SETFOCUS = $NM_FIRST - 7

Global Const $NM_KILLFOCUS = $NM_FIRST - 8

Global Const $NM_CUSTOMDRAW = $NM_FIRST - 12

Global Const $NM_HOVER = $NM_FIRST - 13

Global Const $NM_NCHITTEST = $NM_FIRST - 14

Global Const $NM_KEYDOWN = $NM_FIRST - 15

Global Const $NM_RELEASEDCAPTURE = $NM_FIRST - 16

Global Const $NM_SETCURSOR = $NM_FIRST - 17

Global Const $NM_CHAR = $NM_FIRST - 18

Global Const $NM_TOOLTIPSCREATED = $NM_FIRST - 19

Global Const $NM_LDOWN = $NM_FIRST - 20

Global Const $NM_RDOWN = $NM_FIRST - 21

Global Const $NM_THEMECHANGED = $NM_FIRST - 22

Global Const $WM_MOUSEMOVE = 512

Global Const $WM_LBUTTONDOWN = 513

Global Const $WM_LBUTTONUP = 514

Global Const $WM_LBUTTONDBLCLK = 515

Global Const $WM_RBUTTONDOWN = 516

Global Const $WM_RBUTTONUP = 517

Global Const $WM_RBUTTONDBLCK = 518

Global Const $WM_MBUTTONDOWN = 519

Global Const $WM_MBUTTONUP = 520

Global Const $WM_MBUTTONDBLCK = 521

Global Const $WM_MOUSEWHEEL = 522

Global Const $WM_XBUTTONDOWN = 523

Global Const $WM_XBUTTONUP = 524

Global Const $WM_XBUTTONDBLCLK = 525

Global Const $WM_MOUSEHWHEEL = 526

Global Const $PS_SOLID = 0

Global Const $PS_DASH = 1

Global Const $PS_DOT = 2

Global Const $PS_DASHDOT = 3

Global Const $PS_DASHDOTDOT = 4

Global Const $PS_NULL = 5

Global Const $PS_INSIDEFRAME = 6

Global Const $LWA_ALPHA = 2

Global Const $LWA_COLORKEY = 1

Global Const $RGN_AND = 1

Global Const $RGN_OR = 2

Global Const $RGN_XOR = 3

Global Const $RGN_DIFF = 4

Global Const $RGN_COPY = 5

Global Const $ERRORREGION = 0

Global Const $NULLREGION = 1

Global Const $SIMPLEREGION = 2

Global Const $COMPLEXREGION = 3

Global Const $TRANSPARENT = 1

Global Const $OPAQUE = 2

Global Const $CCM_FIRST = 8192

Global Const $CCM_GETUNICODEFORMAT = ($CCM_FIRST + 6)

Global Const $CCM_SETUNICODEFORMAT = ($CCM_FIRST + 5)

Global Const $CCM_SETBKCOLOR = $CCM_FIRST + 1

Global Const $CCM_SETCOLORSCHEME = $CCM_FIRST + 2

Global Const $CCM_GETCOLORSCHEME = $CCM_FIRST + 3

Global Const $CCM_GETDROPTARGET = $CCM_FIRST + 4

Global Const $CCM_SETWINDOWTHEME = $CCM_FIRST + 11

Global Const $GA_PARENT = 1

Global Const $GA_ROOT = 2

Global Const $GA_ROOTOWNER = 3

Global Const $SM_CXSCREEN = 0

Global Const $SM_CYSCREEN = 1

Global Const $SM_CXVSCROLL = 2

Global Const $SM_CYHSCROLL = 3

Global Const $SM_CYCAPTION = 4

Global Const $SM_CXBORDER = 5

Global Const $SM_CYBORDER = 6

Global Const $SM_CXDLGFRAME = 7

Global Const $SM_CYDLGFRAME = 8

Global Const $SM_CYVTHUMB = 9

Global Const $SM_CXHTHUMB = 10

Global Const $SM_CXICON = 11

Global Const $SM_CYICON = 12

Global Const $SM_CXCURSOR = 13

Global Const $SM_CYCURSOR = 14

Global Const $SM_CYMENU = 15

Global Const $SM_CXFULLSCREEN = 16

Global Const $SM_CYFULLSCREEN = 17

Global Const $SM_CYKANJIWINDOW = 18

Global Const $SM_MOUSEPRESENT = 19

Global Const $SM_CYVSCROLL = 20

Global Const $SM_CXHSCROLL = 21

Global Const $SM_DEBUG = 22

Global Const $SM_SWAPBUTTON = 23

Global Const $SM_RESERVED1 = 24

Global Const $SM_RESERVED2 = 25

Global Const $SM_RESERVED3 = 26

Global Const $SM_RESERVED4 = 27

Global Const $SM_CXMIN = 28

Global Const $SM_CYMIN = 29

Global Const $SM_CXSIZE = 30

Global Const $SM_CYSIZE = 31

Global Const $SM_CXFRAME = 32

Global Const $SM_CYFRAME = 33

Global Const $SM_CXMINTRACK = 34

Global Const $SM_CYMINTRACK = 35

Global Const $SM_CXDOUBLECLK = 36

Global Const $SM_CYDOUBLECLK = 37

Global Const $SM_CXICONSPACING = 38

Global Const $SM_CYICONSPACING = 39

Global Const $SM_MENUDROPALIGNMENT = 40

Global Const $SM_PENWINDOWS = 41

Global Const $SM_DBCSENABLED = 42

Global Const $SM_CMOUSEBUTTONS = 43

Global Const $SM_SECURE = 44

Global Const $SM_CXEDGE = 45

Global Const $SM_CYEDGE = 46

Global Const $SM_CXMINSPACING = 47

Global Const $SM_CYMINSPACING = 48

Global Const $SM_CXSMICON = 49

Global Const $SM_CYSMICON = 50

Global Const $SM_CYSMCAPTION = 51

Global Const $SM_CXSMSIZE = 52

Global Const $SM_CYSMSIZE = 53

Global Const $SM_CXMENUSIZE = 54

Global Const $SM_CYMENUSIZE = 55

Global Const $SM_ARRANGE = 56

Global Const $SM_CXMINIMIZED = 57

Global Const $SM_CYMINIMIZED = 58

Global Const $SM_CXMAXTRACK = 59

Global Const $SM_CYMAXTRACK = 60

Global Const $SM_CXMAXIMIZED = 61

Global Const $SM_CYMAXIMIZED = 62

Global Const $SM_NETWORK = 63

Global Const $SM_CLEANBOOT = 67

Global Const $SM_CXDRAG = 68

Global Const $SM_CYDRAG = 69

Global Const $SM_SHOWSOUNDS = 70

Global Const $SM_CXMENUCHECK = 71

Global Const $SM_CYMENUCHECK = 72

Global Const $SM_SLOWMACHINE = 73

Global Const $SM_MIDEASTENABLED = 74

Global Const $SM_MOUSEWHEELPRESENT = 75

Global Const $SM_XVIRTUALSCREEN = 76

Global Const $SM_YVIRTUALSCREEN = 77

Global Const $SM_CXVIRTUALSCREEN = 78

Global Const $SM_CYVIRTUALSCREEN = 79

Global Const $SM_CMONITORS = 80

Global Const $SM_SAMEDISPLAYFORMAT = 81

Global Const $SM_IMMENABLED = 82

Global Const $SM_CXFOCUSBORDER = 83

Global Const $SM_CYFOCUSBORDER = 84

Global Const $SM_TABLETPC = 86

Global Const $SM_MEDIACENTER = 87

Global Const $SM_STARTER = 88

Global Const $SM_SERVERR2 = 89

Global Const $SM_CMETRICS = 90

Global Const $SM_REMOTESESSION = 4096

Global Const $SM_SHUTTINGDOWN = 8192

Global Const $SM_REMOTECONTROL = 8193

Global Const $SM_CARETBLINKINGENABLED = 8194

Global Const $BLACKNESS = 66

Global Const $CAPTUREBLT = 1073741824

Global Const $DSTINVERT = 5570569

Global Const $MERGECOPY = 12583114

Global Const $MERGEPAINT = 12255782

Global Const $NOMIRRORBITMAP = -2147483648

Global Const $NOTSRCCOPY = 3342344

Global Const $NOTSRCERASE = 1114278

Global Const $PATCOPY = 15728673

Global Const $PATINVERT = 5898313

Global Const $PATPAINT = 16452105

Global Const $SRCAND = 8913094

Global Const $SRCCOPY = 13369376

Global Const $SRCERASE = 4457256

Global Const $SRCINVERT = 6684742

Global Const $SRCPAINT = 15597702

Global Const $WHITENESS = 16711778

Global Const $DT_BOTTOM = 8

Global Const $DT_CALCRECT = 1024

Global Const $DT_CENTER = 1

Global Const $DT_EDITCONTROL = 8192

Global Const $DT_END_ELLIPSIS = 32768

Global Const $DT_EXPANDTABS = 64

Global Const $DT_EXTERNALLEADING = 512

Global Const $DT_HIDEPREFIX = 1048576

Global Const $DT_INTERNAL = 4096

Global Const $DT_LEFT = 0

Global Const $DT_MODIFYSTRING = 65536

Global Const $DT_NOCLIP = 256

Global Const $DT_NOFULLWIDTHCHARBREAK = 524288

Global Const $DT_NOPREFIX = 2048

Global Const $DT_PATH_ELLIPSIS = 16384

Global Const $DT_PREFIXONLY = 2097152

Global Const $DT_RIGHT = 2

Global Const $DT_RTLREADING = 131072

Global Const $DT_SINGLELINE = 32

Global Const $DT_TABSTOP = 128

Global Const $DT_TOP = 0

Global Const $DT_VCENTER = 4

Global Const $DT_WORDBREAK = 16

Global Const $DT_WORD_ELLIPSIS = 262144

Global Const $RDW_ERASE = 4

Global Const $RDW_FRAME = 1024

Global Const $RDW_INTERNALPAINT = 2

Global Const $RDW_INVALIDATE = 1

Global Const $RDW_NOERASE = 32

Global Const $RDW_NOFRAME = 2048

Global Const $RDW_NOINTERNALPAINT = 16

Global Const $RDW_VALIDATE = 8

Global Const $RDW_ERASENOW = 512

Global Const $RDW_UPDATENOW = 256

Global Const $RDW_ALLCHILDREN = 128

Global Const $RDW_NOCHILDREN = 64

Global Const $WM_RENDERFORMAT = 773

Global Const $WM_RENDERALLFORMATS = 774

Global Const $WM_DESTROYCLIPBOARD = 775

Global Const $WM_DRAWCLIPBOARD = 776

Global Const $WM_PAINTCLIPBOARD = 777

Global Const $WM_VSCROLLCLIPBOARD = 778

Global Const $WM_SIZECLIPBOARD = 779

Global Const $WM_ASKCBFORMATNAME = 780

Global Const $WM_CHANGECBCHAIN = 781

Global Const $WM_HSCROLLCLIPBOARD = 782

Global Const $HTERROR = -2

Global Const $HTTRANSPARENT = -1

Global Const $HTNOWHERE = 0

Global Const $HTCLIENT = 1

Global Const $HTCAPTION = 2

Global Const $HTSYSMENU = 3

Global Const $HTGROWBOX = 4

Global Const $HTSIZE = $HTGROWBOX

Global Const $HTMENU = 5

Global Const $HTHSCROLL = 6

Global Const $HTVSCROLL = 7

Global Const $HTMINBUTTON = 8

Global Const $HTMAXBUTTON = 9

Global Const $HTLEFT = 10

Global Const $HTRIGHT = 11

Global Const $HTTOP = 12

Global Const $HTTOPLEFT = 13

Global Const $HTTOPRIGHT = 14

Global Const $HTBOTTOM = 15

Global Const $HTBOTTOMLEFT = 16

Global Const $HTBOTTOMRIGHT = 17

Global Const $HTBORDER = 18

Global Const $HTREDUCE = $HTMINBUTTON

Global Const $HTZOOM = $HTMAXBUTTON

Global Const $HTSIZEFIRST = $HTLEFT

Global Const $HTSIZELAST = $HTBOTTOMRIGHT

Global Const $HTOBJECT = 19

Global Const $HTCLOSE = 20

Global Const $HTHELP = 21

Global Const $COLOR_SCROLLBAR = 0

Global Const $COLOR_BACKGROUND = 1

Global Const $COLOR_ACTIVECAPTION = 2

Global Const $COLOR_INACTIVECAPTION = 3

Global Const $COLOR_MENU = 4

Global Const $COLOR_WINDOW = 5

Global Const $COLOR_WINDOWFRAME = 6

Global Const $COLOR_MENUTEXT = 7

Global Const $COLOR_WINDOWTEXT = 8

Global Const $COLOR_CAPTIONTEXT = 9

Global Const $COLOR_ACTIVEBORDER = 10

Global Const $COLOR_INACTIVEBORDER = 11

Global Const $COLOR_APPWORKSPACE = 12

Global Const $COLOR_HIGHLIGHT = 13

Global Const $COLOR_HIGHLIGHTTEXT = 14

Global Const $COLOR_BTNFACE = 15

Global Const $COLOR_BTNSHADOW = 16

Global Const $COLOR_GRAYTEXT = 17

Global Const $COLOR_BTNTEXT = 18

Global Const $COLOR_INACTIVECAPTIONTEXT = 19

Global Const $COLOR_BTNHIGHLIGHT = 20

Global Const $COLOR_3DDKSHADOW = 21

Global Const $COLOR_3DLIGHT = 22

Global Const $COLOR_INFOTEXT = 23

Global Const $COLOR_INFOBK = 24

Global Const $COLOR_HOTLIGHT = 26

Global Const $COLOR_GRADIENTACTIVECAPTION = 27

Global Const $COLOR_GRADIENTINACTIVECAPTION = 28

Global Const $COLOR_MENUHILIGHT = 29

Global Const $COLOR_MENUBAR = 30

Global Const $COLOR_DESKTOP = 1

Global Const $COLOR_3DFACE = 15

Global Const $COLOR_3DSHADOW = 16

Global Const $COLOR_3DHIGHLIGHT = 20

Global Const $COLOR_3DHILIGHT = 20

Global Const $COLOR_BTNHILIGHT = 20

Global Const $HINST_COMMCTRL = -1

Global Const $IDB_STD_SMALL_COLOR = 0

Global Const $IDB_STD_LARGE_COLOR = 1

Global Const $IDB_VIEW_SMALL_COLOR = 4

Global Const $IDB_VIEW_LARGE_COLOR = 5

Global Const $IDB_HIST_SMALL_COLOR = 8

Global Const $IDB_HIST_LARGE_COLOR = 9

Global Const $STARTF_FORCEOFFFEEDBACK = 128

Global Const $STARTF_FORCEONFEEDBACK = 64

Global Const $STARTF_RUNFULLSCREEN = 32

Global Const $STARTF_USECOUNTCHARS = 8

Global Const $STARTF_USEFILLATTRIBUTE = 16

Global Const $STARTF_USEHOTKEY = 512

Global Const $STARTF_USEPOSITION = 4

Global Const $STARTF_USESHOWWINDOW = 1

Global Const $STARTF_USESIZE = 2

Global Const $STARTF_USESTDHANDLES = 256

Global Const $CDDS_PREPAINT = 1

Global Const $CDDS_POSTPAINT = 2

Global Const $CDDS_PREERASE = 3

Global Const $CDDS_POSTERASE = 4

Global Const $CDDS_ITEM = 65536

Global Const $CDDS_ITEMPREPAINT = 65537

Global Const $CDDS_ITEMPOSTPAINT = 65538

Global Const $CDDS_ITEMPREERASE = 65539

Global Const $CDDS_ITEMPOSTERASE = 65540

Global Const $CDDS_SUBITEM = 131072

Global Const $CDIS_SELECTED = 1

Global Const $CDIS_GRAYED = 2

Global Const $CDIS_DISABLED = 4

Global Const $CDIS_CHECKED = 8

Global Const $CDIS_FOCUS = 16

Global Const $CDIS_DEFAULT = 32

Global Const $CDIS_HOT = 64

Global Const $CDIS_MARKED = 128

Global Const $CDIS_INDETERMINATE = 256

Global Const $CDIS_SHOWKEYBOARDCUES = 512

Global Const $CDIS_NEARHOT = 1024

Global Const $CDIS_OTHERSIDEHOT = 2048

Global Const $CDIS_DROPHILITED = 4096

Global Const $CDRF_DODEFAULT = 0

Global Const $CDRF_NEWFONT = 2

Global Const $CDRF_SKIPDEFAULT = 4

Global Const $CDRF_NOTIFYPOSTPAINT = 16

Global Const $CDRF_NOTIFYITEMDRAW = 32

Global Const $CDRF_NOTIFYSUBITEMDRAW = 32

Global Const $CDRF_NOTIFYPOSTERASE = 64

Global Const $CDRF_DOERASE = 8

Global Const $CDRF_SKIPPOSTPAINT = 256

Global Const $GUI_SS_DEFAULT_GUI = BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)

#region _Memory

 

Func _MEMORYOPEN($IV_PID, $IV_DESIREDACCESS = 2035711, $IF_INHERITHANDLE = 1)

If Not ProcessExists($IV_PID) Then

SetError(1)

Return 0

EndIf

Local $AH_HANDLE[2] = [DllOpen("kernel32.dll")]

If @error Then

SetError(2)

Return 0

EndIf

Local $AV_OPENPROCESS = DllCall($AH_HANDLE[0], "int", "OpenProcess", "int", $IV_DESIREDACCESS, "int", $IF_INHERITHANDLE, "int", $IV_PID)

If @error Then

DllClose($AH_HANDLE[0])

SetError(3)

Return 0

EndIf

$AH_HANDLE[1] = $AV_OPENPROCESS[0]

Return $AH_HANDLE

EndFunc

 

 

Func _MEMORYREAD($IV_ADDRESS, $AH_HANDLE, $SV_TYPE = "dword")

If Not IsArray($AH_HANDLE) Then

SetError(1)

Return 0

EndIf

Local $V_BUFFER = DllStructCreate($SV_TYPE)

If @error Then

SetError(@error + 1)

Return 0

EndIf

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If Not @error Then

Local $V_VALUE = DllStructGetData($V_BUFFER, 1)

Return $V_VALUE

Else

SetError(6)

Return 0

EndIf

EndFunc

 

 

Func _MEMORYWRITE($IV_ADDRESS, $AH_HANDLE, $V_DATA, $SV_TYPE = "dword")

If Not IsArray($AH_HANDLE) Then

SetError(1)

Return 0

EndIf

Local $V_BUFFER = DllStructCreate($SV_TYPE)

If @error Then

SetError(@error + 1)

Return 0

Else

DllStructSetData($V_BUFFER, 1, $V_DATA)

If @error Then

SetError(6)

Return 0

EndIf

EndIf

DllCall($AH_HANDLE[0], "int", "WriteProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If Not @error Then

Return 1

Else

SetError(7)

Return 0

EndIf

EndFunc

 

 

Func _MEMORYCLOSE($AH_HANDLE)

If Not IsArray($AH_HANDLE) Then

SetError(1)

Return 0

EndIf

DllCall($AH_HANDLE[0], "int", "CloseHandle", "int", $AH_HANDLE[1])

If Not @error Then

DllClose($AH_HANDLE[0])

Return 1

Else

DllClose($AH_HANDLE[0])

SetError(2)

Return 0

EndIf

EndFunc

 

 

Func _MEMORYPOINTERREAD($IV_ADDRESS, $AH_HANDLE, $AV_OFFSET, $SV_TYPE = "dword")

If IsArray($AV_OFFSET) Then

If IsArray($AH_HANDLE) Then

Local $IV_POINTERCOUNT = UBound($AV_OFFSET) - 1

Else

SetError(2)

Return 0

EndIf

Else

SetError(1)

Return 0

EndIf

Local $IV_DATA[2], $I

Local $V_BUFFER = DllStructCreate("dword")

For $I = 0 To $IV_POINTERCOUNT

If $I = $IV_POINTERCOUNT Then

$V_BUFFER = DllStructCreate($SV_TYPE)

If @error Then

SetError(@error + 2)

Return 0

EndIf

$IV_ADDRESS = "0x" & Hex($IV_DATA[1] + $AV_OFFSET[$I])

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(7)

Return 0

EndIf

$IV_DATA[1] = DllStructGetData($V_BUFFER, 1)

ElseIf $I = 0 Then

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(7)

Return 0

EndIf

$IV_DATA[1] = DllStructGetData($V_BUFFER, 1)

Else

$IV_ADDRESS = "0x" & Hex($IV_DATA[1] + $AV_OFFSET[$I])

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(7)

Return 0

EndIf

$IV_DATA[1] = DllStructGetData($V_BUFFER, 1)

EndIf

Next

$IV_DATA[0] = $IV_ADDRESS

Return $IV_DATA

EndFunc

 

 

Func _MEMORYPOINTERWRITE($IV_ADDRESS, $AH_HANDLE, $AV_OFFSET, $V_DATA, $SV_TYPE = "dword")

If IsArray($AV_OFFSET) Then

If IsArray($AH_HANDLE) Then

Local $IV_POINTERCOUNT = UBound($AV_OFFSET) - 1

Else

SetError(2)

Return 0

EndIf

Else

SetError(1)

Return 0

EndIf

Local $IV_STRUCTDATA, $I

Local $V_BUFFER = DllStructCreate("dword")

For $I = 0 To $IV_POINTERCOUNT

If $I = $IV_POINTERCOUNT Then

$V_BUFFER = DllStructCreate($SV_TYPE)

If @error Then

SetError(@error + 3)

Return 0

EndIf

DllStructSetData($V_BUFFER, 1, $V_DATA)

If @error Then

SetError(8)

Return 0

EndIf

$IV_ADDRESS = "0x" & Hex($IV_STRUCTDATA + $AV_OFFSET[$I])

DllCall($AH_HANDLE[0], "int", "WriteProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(9)

Return 0

Else

Return $IV_ADDRESS

EndIf

ElseIf $I = 0 Then

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(3)

Return 0

EndIf

$IV_STRUCTDATA = DllStructGetData($V_BUFFER, 1)

Else

$IV_ADDRESS = "0x" & Hex($IV_STRUCTDATA + $AV_OFFSET[$I])

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(3)

Return 0

EndIf

$IV_STRUCTDATA = DllStructGetData($V_BUFFER, 1)

EndIf

Next

EndFunc

 

 

Func _MEMORYGETBASEADDRESS($AH_HANDLE, $IHEXDEC = 0)

Local $IV_ADDRESS = 1048576

Local $V_BUFFER = DllStructCreate("dword;dword;dword;dword;dword;dword;dword")

Local $VDATA

Local $VTYPE

If Not IsArray($AH_HANDLE) Then

SetError(1)

Return 0

EndIf

DllCall($AH_HANDLE[0], "int", "VirtualQueryEx", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER))

If Not @error Then

$VDATA = Hex(DllStructGetData($V_BUFFER, 2))

$VTYPE = Hex(DllStructGetData($V_BUFFER, 3))

While $VTYPE <> "00000080"

DllCall($AH_HANDLE[0], "int", "VirtualQueryEx", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER))

$VDATA = Hex(DllStructGetData($V_BUFFER, 2))

$VTYPE = Hex(DllStructGetData($V_BUFFER, 3))

If Hex($IV_ADDRESS) = "01000000" Then ExitLoop

$IV_ADDRESS += 65536

WEnd

If $VTYPE = "00000080" Then

SetError(0)

If $IHEXDEC = 1 Then

Return Dec($VDATA)

Else

Return $VDATA

EndIf

Else

SetError(2)

Return 0

EndIf

Else

SetError(3)

Return 0

EndIf

EndFunc

 

 

Func SETPRIVILEGE($PRIVILEGE, $BENABLE)

Const $TOKEN_ADJUST_PRIVILEGES = 32

Const $TOKEN_QUERY = 8

Const $SE_PRIVILEGE_ENABLED = 2

Local $HTOKEN, $SP_AUXRET, $SP_RET, $HCURRPROCESS, $NTOKENS, $NTOKENINDEX, $PRIV

$NTOKENS = 1

$LUID = DllStructCreate("dword;int")

If IsArray($PRIVILEGE) Then $NTOKENS = UBound($PRIVILEGE)

$TOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * $NTOKENS) & "]")

$NEWTOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * $NTOKENS) & "]")

$HCURRPROCESS = DllCall("kernel32.dll", "hwnd", "GetCurrentProcess")

$SP_AUXRET = DllCall("advapi32.dll", "int", "OpenProcessToken", "hwnd", $HCURRPROCESS[0], "int", BitOR($TOKEN_ADJUST_PRIVILEGES, $TOKEN_QUERY), "int*", 0)

If $SP_AUXRET[0] Then

$HTOKEN = $SP_AUXRET[3]

DllStructSetData($TOKEN_PRIVILEGES, 1, 1)

$NTOKENINDEX = 1

While $NTOKENINDEX <= $NTOKENS

If IsArray($PRIVILEGE) Then

$NTOKENVAR = $NTOKENINDEX - 1

$PRIV = $PRIVILEGE[$NTOKENVAR]

Else

$PRIV = $PRIVILEGE

EndIf

$RET = DllCall("advapi32.dll", "int", "LookupPrivilegeValue", "str", "", "str", $PRIV, "ptr", DllStructGetPtr($LUID))

If $RET[0] Then

If $BENABLE Then

DllStructSetData($TOKEN_PRIVILEGES, 2, $SE_PRIVILEGE_ENABLED, (3 * $NTOKENINDEX))

Else

DllStructSetData($TOKEN_PRIVILEGES, 2, 0, (3 * $NTOKENINDEX))

EndIf

DllStructSetData($TOKEN_PRIVILEGES, 2, DllStructGetData($LUID, 1), (3 * ($NTOKENINDEX - 1)) + 1)

DllStructSetData($TOKEN_PRIVILEGES, 2, DllStructGetData($LUID, 2), (3 * ($NTOKENINDEX - 1)) + 2)

DllStructSetData($LUID, 1, 0)

DllStructSetData($LUID, 2, 0)

EndIf

$NTOKENINDEX += 1

WEnd

$RET = DllCall("advapi32.dll", "int", "AdjustTokenPrivileges", "hwnd", $HTOKEN, "int", 0, "ptr", DllStructGetPtr($TOKEN_PRIVILEGES), "int", DllStructGetSize($NEWTOKEN_PRIVILEGES), "ptr", DllStructGetPtr($NEWTOKEN_PRIVILEGES), "int*", 0)

$F = DllCall("kernel32.dll", "int", "GetLastError")

EndIf

$NEWTOKEN_PRIVILEGES = 0

$TOKEN_PRIVILEGES = 0

$LUID = 0

If $SP_AUXRET[0] = 0 Then Return 0

$SP_AUXRET = DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $HTOKEN)

If Not $RET[0] And Not $SP_AUXRET[0] Then Return 0

Return $RET[0]

EndFunc

 

#endregion _Memory

 

Func _ARRAYADD(ByRef $AVARRAY, $VVALUE)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, -1)

Local $IUBOUND = UBound($AVARRAY)

ReDim $AVARRAY[$IUBOUND + 1]

$AVARRAY[$IUBOUND] = $VVALUE

Return $IUBOUND

EndFunc

 

 

Func _ARRAYBINARYSEARCH(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(5, 0, -1)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(4, 0, -1)

Local $IMID = Int(($IEND + $ISTART) / 2)

If $AVARRAY[$ISTART] > $VVALUE Or $AVARRAY[$IEND] < $VVALUE Then Return SetError(2, 0, -1)

While $ISTART <= $IMID And $VVALUE <> $AVARRAY[$IMID]

If $VVALUE < $AVARRAY[$IMID] Then

$IEND = $IMID - 1

Else

$ISTART = $IMID + 1

EndIf

$IMID = Int(($IEND + $ISTART) / 2)

WEnd

If $ISTART > $IEND Then Return SetError(3, 0, -1)

Return $IMID

EndFunc

 

 

Func _ARRAYCOMBINATIONS(ByRef $AVARRAY, $ISET, $SDELIM = "")

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)

Local $IN = UBound($AVARRAY)

Local $IR = $ISET

Local $AIDX[$IR]

For $I = 0 To $IR - 1

$AIDX[$I] = $I

Next

Local $ITOTAL = __ARRAY_COMBINATIONS($IN, $IR)

Local $ILEFT = $ITOTAL

Local $ARESULT[$ITOTAL + 1]

$ARESULT[0] = $ITOTAL

Local $ICOUNT = 1

While $ILEFT > 0

__ARRAY_GETNEXT($IN, $IR, $ILEFT, $ITOTAL, $AIDX)

For $I = 0 To $ISET - 1

$ARESULT[$ICOUNT] &= $AVARRAY[$AIDX[$I]] & $SDELIM

Next

If $SDELIM <> "" Then $ARESULT[$ICOUNT] = StringTrimRight($ARESULT[$ICOUNT], 1)

$ICOUNT += 1

WEnd

Return $ARESULT

EndFunc

 

 

Func _ARRAYCONCATENATE(ByRef $AVARRAYTARGET, Const ByRef $AVARRAYSOURCE, $ISTART = 0)

If Not IsArray($AVARRAYTARGET) Then Return SetError(1, 0, 0)

If Not IsArray($AVARRAYSOURCE) Then Return SetError(2, 0, 0)

If UBound($AVARRAYTARGET, 0) <> 1 Then

If UBound($AVARRAYSOURCE, 0) <> 1 Then Return SetError(5, 0, 0)

Return SetError(3, 0, 0)

EndIf

If UBound($AVARRAYSOURCE, 0) <> 1 Then Return SetError(4, 0, 0)

Local $IUBOUNDTARGET = UBound($AVARRAYTARGET) - $ISTART, $IUBOUNDSOURCE = UBound($AVARRAYSOURCE)

ReDim $AVARRAYTARGET[$IUBOUNDTARGET + $IUBOUNDSOURCE]

For $I = $ISTART To $IUBOUNDSOURCE - 1

$AVARRAYTARGET[$IUBOUNDTARGET + $I] = $AVARRAYSOURCE[$I]

Next

Return $IUBOUNDTARGET + $IUBOUNDSOURCE

EndFunc

 

 

Func _ARRAYCREATE($V_0, $V_1 = 0, $V_2 = 0, $V_3 = 0, $V_4 = 0, $V_5 = 0, $V_6 = 0, $V_7 = 0, $V_8 = 0, $V_9 = 0, $V_10 = 0, $V_11 = 0, $V_12 = 0, $V_13 = 0, $V_14 = 0, $V_15 = 0, $V_16 = 0, $V_17 = 0, $V_18 = 0, $V_19 = 0, $V_20 = 0)

Local $AV_ARRAY[21] = [$V_0, $V_1, $V_2, $V_3, $V_4, $V_5, $V_6, $V_7, $V_8, $V_9, $V_10, $V_11, $V_12, $V_13, $V_14, $V_15, $V_16, $V_17, $V_18, $V_19, $V_20]

ReDim $AV_ARRAY[@NumParams]

Return $AV_ARRAY

EndFunc

 

 

Func _ARRAYDELETE(ByRef $AVARRAY, $IELEMENT)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

Local $IUBOUND = UBound($AVARRAY, 1) - 1

If Not $IUBOUND Then

$AVARRAY = ""

Return 0

EndIf

If $IELEMENT < 0 Then $IELEMENT = 0

If $IELEMENT > $IUBOUND Then $IELEMENT = $IUBOUND

Switch UBound($AVARRAY, 0)

Case 1

For $I = $IELEMENT To $IUBOUND - 1

$AVARRAY[$I] = $AVARRAY[$I + 1]

Next

ReDim $AVARRAY[$IUBOUND]

Case 2

Local $ISUBMAX = UBound($AVARRAY, 2) - 1

For $I = $IELEMENT To $IUBOUND - 1

For $J = 0 To $ISUBMAX

$AVARRAY[$I][$J] = $AVARRAY[$I + 1][$J]

Next

Next

ReDim $AVARRAY[$IUBOUND][$ISUBMAX + 1]

Case Else

Return SetError(3, 0, 0)

EndSwitch

Return $IUBOUND

EndFunc

 

 

Func _ARRAYDISPLAY(Const ByRef $AVARRAY, $STITLE = "Array: ListView Display", $IITEMLIMIT = -1, $ITRANSPOSE = 0, $SSEPARATOR = "", $SREPLACE = "|", $SHEADER = "")

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

Local $IDIMENSION = UBound($AVARRAY, 0), $IUBOUND = UBound($AVARRAY, 1) - 1, $ISUBMAX = UBound($AVARRAY, 2) - 1

If $IDIMENSION > 2 Then Return SetError(2, 0, 0)

If $SSEPARATOR = "" Then $SSEPARATOR = Chr(124)

If _ARRAYSEARCH($AVARRAY, $SSEPARATOR, 0, 0, 0, 1) <> -1 Then

For $X = 1 To 255

If $X >= 32 And $X <= 127 Then ContinueLoop

Local $SFIND = _ARRAYSEARCH($AVARRAY, Chr($X), 0, 0, 0, 1)

If $SFIND = -1 Then

$SSEPARATOR = Chr($X)

ExitLoop

EndIf

Next

EndIf

Local $VTMP, $IBUFFER = 64

Local $ICOLLIMIT = 250

Local $IONEVENTMODE = Opt("GUIOnEventMode", 0), $SDATASEPARATORCHAR = Opt("GUIDataSeparatorChar", $SSEPARATOR)

If $ISUBMAX < 0 Then $ISUBMAX = 0

If $ITRANSPOSE Then

$VTMP = $IUBOUND

$IUBOUND = $ISUBMAX

$ISUBMAX = $VTMP

EndIf

If $ISUBMAX > $ICOLLIMIT Then $ISUBMAX = $ICOLLIMIT

If $IITEMLIMIT < 1 Then $IITEMLIMIT = $IUBOUND

If $IUBOUND > $IITEMLIMIT Then $IUBOUND = $IITEMLIMIT

If $SHEADER = "" Then

$SHEADER = "Row "

For $I = 0 To $ISUBMAX

$SHEADER &= $SSEPARATOR & "Col " & $I

Next

EndIf

Local $AVARRAYTEXT[$IUBOUND + 1]

For $I = 0 To $IUBOUND

$AVARRAYTEXT[$I] = "[" & $I & "]"

For $J = 0 To $ISUBMAX

If $IDIMENSION = 1 Then

If $ITRANSPOSE Then

$VTMP = $AVARRAY[$J]

Else

$VTMP = $AVARRAY[$I]

EndIf

Else

If $ITRANSPOSE Then

$VTMP = $AVARRAY[$J][$I]

Else

$VTMP = $AVARRAY[$I][$J]

EndIf

EndIf

$VTMP = StringReplace($VTMP, $SSEPARATOR, $SREPLACE, 0, 1)

$AVARRAYTEXT[$I] &= $SSEPARATOR & $VTMP

$VTMP = StringLen($VTMP)

If $VTMP > $IBUFFER Then $IBUFFER = $VTMP

Next

Next

$IBUFFER += 1

Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 102

Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 64

Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 512

Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 2

Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 4

Local Const $_ARRAYCONSTANT_GUI_EVENT_CLOSE = -3

Local Const $_ARRAYCONSTANT_LVIF_PARAM = 4

Local Const $_ARRAYCONSTANT_LVIF_TEXT = 1

Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (4096 + 29)

Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (4096 + 4)

Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (4096 + 44)

Local Const $_ARRAYCONSTANT_LVM_INSERTITEMW = (4096 + 77)

Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (4096 + 54)

Local Const $_ARRAYCONSTANT_LVM_SETITEMW = (4096 + 76)

Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 32

Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 1

Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 8

Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 512

Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 65536

Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 131072

Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 262144

Local Const $_ARRAYCONSTANT_TAGLVITEM = "int Mask;int Item;int SubItem;int State;int StateMask;ptr Text;int TextMax;int Image;int Param;int Indent;int GroupID;int Columns;ptr pColumns"

Local $IADDMASK = BitOR($_ARRAYCONSTANT_LVIF_TEXT, $_ARRAYCONSTANT_LVIF_PARAM)

Local $TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]"), $PBUFFER = DllStructGetPtr($TBUFFER)

Local $TITEM = DllStructCreate($_ARRAYCONSTANT_TAGLVITEM), $PITEM = DllStructGetPtr($TITEM)

DllStructSetData($TITEM, "Param", 0)

DllStructSetData($TITEM, "Text", $PBUFFER)

DllStructSetData($TITEM, "TextMax", $IBUFFER)

Local $IWIDTH = 640, $IHEIGHT = 480

Local $HGUI = GUICreate($STITLE, $IWIDTH, $IHEIGHT, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX))

Local $AIGUISIZE = WinGetClientSize($HGUI)

Local $HLISTVIEW = GUICtrlCreateListView($SHEADER, 0, 0, $AIGUISIZE[0], $AIGUISIZE[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)

Local $HCOPY = GUICtrlCreateButton("Copy Selected", 3, $AIGUISIZE[1] - 23, $AIGUISIZE[0] - 6, 20)

GUICtrlSetResizing($HLISTVIEW, $_ARRAYCONSTANT_GUI_DOCKBORDERS)

GUICtrlSetResizing($HCOPY, $_ARRAYCONSTANT_GUI_DOCKLEFT + $_ARRAYCONSTANT_GUI_DOCKRIGHT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)

GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)

GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)

GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)

Local $AITEM

For $I = 0 To $IUBOUND

If GUICtrlCreateListViewItem($AVARRAYTEXT[$I], $HLISTVIEW) = 0 Then

$AITEM = StringSplit($AVARRAYTEXT[$I], $SSEPARATOR)

DllStructSetData($TBUFFER, "Text", $AITEM[1])

DllStructSetData($TITEM, "Item", $I)

DllStructSetData($TITEM, "SubItem", 0)

DllStructSetData($TITEM, "Mask", $IADDMASK)

GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_INSERTITEMW, 0, $PITEM)

DllStructSetData($TITEM, "Mask", $_ARRAYCONSTANT_LVIF_TEXT)

For $J = 2 To $AITEM[0]

DllStructSetData($TBUFFER, "Text", $AITEM[$J])

DllStructSetData($TITEM, "SubItem", $J - 1)

GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETITEMW, 0, $PITEM)

Next

EndIf

Next

$IWIDTH = 0

For $I = 0 To $ISUBMAX + 1

$IWIDTH += GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $I, 0)

Next

If $IWIDTH < 250 Then $IWIDTH = 230

$IWIDTH += 20

If $IWIDTH > @DesktopWidth Then $IWIDTH = @DesktopWidth - 100

WinMove($HGUI, "", (@DesktopWidth - $IWIDTH) / 2, Default, $IWIDTH)

GUISetState(@SW_SHOW, $HGUI)

While 1

Switch GUIGetMsg()

Case $_ARRAYCONSTANT_GUI_EVENT_CLOSE

ExitLoop

Case $HCOPY

Local $SCLIP = ""

Local $AICURITEMS[1] = [0]

For $I = 0 To GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)

If GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETITEMSTATE, $I, 2) Then

$AICURITEMS[0] += 1

ReDim $AICURITEMS[$AICURITEMS[0] + 1]

$AICURITEMS[$AICURITEMS[0]] = $I

EndIf

Next

If Not $AICURITEMS[0] Then

For $SITEM In $AVARRAYTEXT

$SCLIP &= $SITEM & @CRLF

Next

Else

For $I = 1 To UBound($AICURITEMS) - 1

$SCLIP &= $AVARRAYTEXT[$AICURITEMS[$I]] & @CRLF

Next

EndIf

ClipPut($SCLIP)

EndSwitch

WEnd

GUIDelete($HGUI)

Opt("GUIOnEventMode", $IONEVENTMODE)

Opt("GUIDataSeparatorChar", $SDATASEPARATORCHAR)

Return 1

EndFunc

 

 

Func _ARRAYFINDALL(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0, $ICASE = 0, $IPARTIAL = 0, $ISUBITEM = 0)

$ISTART = _ARRAYSEARCH($AVARRAY, $VVALUE, $ISTART, $IEND, $ICASE, $IPARTIAL, 1, $ISUBITEM)

If @error Then Return SetError(@error, 0, -1)

Local $IINDEX = 0, $AVRESULT[uBound($AVARRAY)]

Do

$AVRESULT[$IINDEX] = $ISTART

$IINDEX += 1

$ISTART = _ARRAYSEARCH($AVARRAY, $VVALUE, $ISTART + 1, $IEND, $ICASE, $IPARTIAL, 1, $ISUBITEM)

Until @error

ReDim $AVRESULT[$IINDEX]

Return $AVRESULT

EndFunc

 

 

Func _ARRAYINSERT(ByRef $AVARRAY, $IELEMENT, $VVALUE = "")

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)

Local $IUBOUND = UBound($AVARRAY) + 1

ReDim $AVARRAY[$IUBOUND]

For $I = $IUBOUND - 1 To $IELEMENT + 1 Step -1

$AVARRAY[$I] = $AVARRAY[$I - 1]

Next

$AVARRAY[$IELEMENT] = $VVALUE

Return $IUBOUND

EndFunc

 

 

Func _ARRAYMAX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)

Local $IRESULT = _ARRAYMAXINDEX($AVARRAY, $ICOMPNUMERIC, $ISTART, $IEND)

If @error Then Return SetError(@error, 0, "")

Return $AVARRAY[$IRESULT]

EndFunc

 

 

Func _ARRAYMAXINDEX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Or UBound($AVARRAY, 0) <> 1 Then Return SetError(1, 0, -1)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, -1)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(2, 0, -1)

Local $IMAXINDEX = $ISTART

If $ICOMPNUMERIC Then

For $I = $ISTART To $IEND

If Number($AVARRAY[$IMAXINDEX]) < Number($AVARRAY[$I]) Then $IMAXINDEX = $I

Next

Else

For $I = $ISTART To $IEND

If $AVARRAY[$IMAXINDEX] < $AVARRAY[$I] Then $IMAXINDEX = $I

Next

EndIf

Return $IMAXINDEX

EndFunc

 

 

Func _ARRAYMIN(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)

Local $IRESULT = _ARRAYMININDEX($AVARRAY, $ICOMPNUMERIC, $ISTART, $IEND)

If @error Then Return SetError(@error, 0, "")

Return $AVARRAY[$IRESULT]

EndFunc

 

 

Func _ARRAYMININDEX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, -1)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(2, 0, -1)

Local $IMININDEX = $ISTART

If $ICOMPNUMERIC Then

For $I = $ISTART To $IEND

If Number($AVARRAY[$IMININDEX]) > Number($AVARRAY[$I]) Then $IMININDEX = $I

Next

Else

For $I = $ISTART To $IEND

If $AVARRAY[$IMININDEX] > $AVARRAY[$I] Then $IMININDEX = $I

Next

EndIf

Return $IMININDEX

EndFunc

 

 

Func _ARRAYPERMUTE(ByRef $AVARRAY, $SDELIM = "")

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)

Local $ISIZE = UBound($AVARRAY), $IFACTORIAL = 1, $AIDX[$ISIZE], $ARESULT[1], $ICOUNT = 1

For $I = 0 To $ISIZE - 1

$AIDX[$I] = $I

Next

For $I = $ISIZE To 1 Step -1

$IFACTORIAL *= $I

Next

ReDim $ARESULT[$IFACTORIAL + 1]

$ARESULT[0] = $IFACTORIAL

__ARRAY_EXETERINTERNAL($AVARRAY, 0, $ISIZE, $SDELIM, $AIDX, $ARESULT, $ICOUNT)

Return $ARESULT

EndFunc

 

 

Func _ARRAYPOP(ByRef $AVARRAY)

If (Not IsArray($AVARRAY)) Then Return SetError(1, 0, "")

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, "")

Local $IUBOUND = UBound($AVARRAY) - 1, $SLASTVAL = $AVARRAY[$IUBOUND]

If Not $IUBOUND Then

$AVARRAY = ""

Else

ReDim $AVARRAY[$IUBOUND]

EndIf

Return $SLASTVAL

EndFunc

 

 

Func _ARRAYPUSH(ByRef $AVARRAY, $VVALUE, $IDIRECTION = 0)

If (Not IsArray($AVARRAY)) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, 0)

Local $IUBOUND = UBound($AVARRAY) - 1

If IsArray($VVALUE) Then

Local $IUBOUNDS = UBound($VVALUE)

If ($IUBOUNDS - 1) > $IUBOUND Then Return SetError(2, 0, 0)

If $IDIRECTION Then

For $I = $IUBOUND To $IUBOUNDS Step -1

$AVARRAY[$I] = $AVARRAY[$I - $IUBOUNDS]

Next

For $I = 0 To $IUBOUNDS - 1

$AVARRAY[$I] = $VVALUE[$I]

Next

Else

For $I = 0 To $IUBOUND - $IUBOUNDS

$AVARRAY[$I] = $AVARRAY[$I + $IUBOUNDS]

Next

For $I = 0 To $IUBOUNDS - 1

$AVARRAY[$I + $IUBOUND - $IUBOUNDS + 1] = $VVALUE[$I]

Next

EndIf

Else

If $IDIRECTION Then

For $I = $IUBOUND To 1 Step -1

$AVARRAY[$I] = $AVARRAY[$I - 1]

Next

$AVARRAY[0] = $VVALUE

Else

For $I = 0 To $IUBOUND - 1

$AVARRAY[$I] = $AVARRAY[$I + 1]

Next

$AVARRAY[$IUBOUND] = $VVALUE

EndIf

EndIf

Return 1

EndFunc

 

 

Func _ARRAYREVERSE(ByRef $AVARRAY, $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, 0)

Local $VTMP, $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(2, 0, 0)

For $I = $ISTART To Int(($ISTART + $IEND - 1) / 2)

$VTMP = $AVARRAY[$I]

$AVARRAY[$I] = $AVARRAY[$IEND]

$AVARRAY[$IEND] = $VTMP

$IEND -= 1

Next

Return 1

EndFunc

 

 

Func _ARRAYSEARCH(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0, $ICASE = 0, $IPARTIAL = 0, $IFORWARD = 1, $ISUBITEM = -1)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)

If UBound($AVARRAY, 0) > 2 Or UBound($AVARRAY, 0) < 1 Then Return SetError(2, 0, -1)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(4, 0, -1)

Local $ISTEP = 1

If Not $IFORWARD Then

Local $ITMP = $ISTART

$ISTART = $IEND

$IEND = $ITMP

$ISTEP = -1

EndIf

Switch UBound($AVARRAY, 0)

Case 1

If Not $IPARTIAL Then

If Not $ICASE Then

For $I = $ISTART To $IEND Step $ISTEP

If $AVARRAY[$I] = $VVALUE Then Return $I

Next

Else

For $I = $ISTART To $IEND Step $ISTEP

If $AVARRAY[$I] == $VVALUE Then Return $I

Next

EndIf

Else

For $I = $ISTART To $IEND Step $ISTEP

If StringInStr($AVARRAY[$I], $VVALUE, $ICASE) > 0 Then Return $I

Next

EndIf

Case 2

Local $IUBOUNDSUB = UBound($AVARRAY, 2) - 1

If $ISUBITEM > $IUBOUNDSUB Then $ISUBITEM = $IUBOUNDSUB

If $ISUBITEM < 0 Then

$ISUBITEM = 0

Else

$IUBOUNDSUB = $ISUBITEM

EndIf

For $J = $ISUBITEM To $IUBOUNDSUB

If Not $IPARTIAL Then

If Not $ICASE Then

For $I = $ISTART To $IEND Step $ISTEP

If $AVARRAY[$I][$J] = $VVALUE Then Return $I

Next

Else

For $I = $ISTART To $IEND Step $ISTEP

If $AVARRAY[$I][$J] == $VVALUE Then Return $I

Next

EndIf

Else

For $I = $ISTART To $IEND Step $ISTEP

If StringInStr($AVARRAY[$I][$J], $VVALUE, $ICASE) > 0 Then Return $I

Next

EndIf

Next

Case Else

Return SetError(7, 0, -1)

EndSwitch

Return SetError(6, 0, -1)

EndFunc

 

 

Func _ARRAYSORT(ByRef $AVARRAY, $IDESCENDING = 0, $ISTART = 0, $IEND = 0, $ISUBITEM = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(2, 0, 0)

Switch UBound($AVARRAY, 0)

Case 1

__ARRAYQUICKSORT1D($AVARRAY, $ISTART, $IEND)

If $IDESCENDING Then _ARRAYREVERSE($AVARRAY, $ISTART, $IEND)

Case 2

Local $ISUBMAX = UBound($AVARRAY, 2) - 1

If $ISUBITEM > $ISUBMAX Then Return SetError(3, 0, 0)

If $IDESCENDING Then

$IDESCENDING = -1

Else

$IDESCENDING = 1

EndIf

__ARRAYQUICKSORT2D($AVARRAY, $IDESCENDING, $ISTART, $IEND, $ISUBITEM, $ISUBMAX)

Case Else

Return SetError(4, 0, 0)

EndSwitch

Return 1

EndFunc

 

 

Func __ARRAYQUICKSORT1D(ByRef $AVARRAY, ByRef $ISTART, ByRef $IEND)

If $IEND <= $ISTART Then Return

Local $VTMP

If ($IEND - $ISTART) < 15 Then

Local $VCUR

For $I = $ISTART + 1 To $IEND

$VTMP = $AVARRAY[$I]

If IsNumber($VTMP) Then

For $J = $I - 1 To $ISTART Step -1

$VCUR = $AVARRAY[$J]

If ($VTMP >= $VCUR And IsNumber($VCUR)) Or (Not IsNumber($VCUR) And StringCompare($VTMP, $VCUR) >= 0) Then ExitLoop

$AVARRAY[$J + 1] = $VCUR

Next

Else

For $J = $I - 1 To $ISTART Step -1

If (StringCompare($VTMP, $AVARRAY[$J]) >= 0) Then ExitLoop

$AVARRAY[$J + 1] = $AVARRAY[$J]

Next

EndIf

$AVARRAY[$J + 1] = $VTMP

Next

Return

EndIf

Local $L = $ISTART, $R = $IEND, $VPIVOT = $AVARRAY[int(($ISTART + $IEND) / 2)], $FNUM = IsNumber($VPIVOT)

Do

If $FNUM Then

While ($AVARRAY[$L] < $VPIVOT And IsNumber($AVARRAY[$L])) Or (Not IsNumber($AVARRAY[$L]) And StringCompare($AVARRAY[$L], $VPIVOT) < 0)

$L += 1

WEnd

While ($AVARRAY[$R] > $VPIVOT And IsNumber($AVARRAY[$R])) Or (Not IsNumber($AVARRAY[$R]) And StringCompare($AVARRAY[$R], $VPIVOT) > 0)

$R -= 1

WEnd

Else

While (StringCompare($AVARRAY[$L], $VPIVOT) < 0)

$L += 1

WEnd

While (StringCompare($AVARRAY[$R], $VPIVOT) > 0)

$R -= 1

WEnd

EndIf

If $L <= $R Then

$VTMP = $AVARRAY[$L]

$AVARRAY[$L] = $AVARRAY[$R]

$AVARRAY[$R] = $VTMP

$L += 1

$R -= 1

EndIf

Until $L > $R

__ARRAYQUICKSORT1D($AVARRAY, $ISTART, $R)

__ARRAYQUICKSORT1D($AVARRAY, $L, $IEND)

EndFunc

 

 

Func __ARRAYQUICKSORT2D(ByRef $AVARRAY, ByRef $ISTEP, ByRef $ISTART, ByRef $IEND, ByRef $ISUBITEM, ByRef $ISUBMAX)

If $IEND <= $ISTART Then Return

Local $VTMP, $L = $ISTART, $R = $IEND, $VPIVOT = $AVARRAY[int(($ISTART + $IEND) / 2)][$ISUBITEM], $FNUM = IsNumber($VPIVOT)

Do

If $FNUM Then

While ($ISTEP * ($AVARRAY[$L][$ISUBITEM] - $VPIVOT) < 0 And IsNumber($AVARRAY[$L][$ISUBITEM])) Or (Not IsNumber($AVARRAY[$L][$ISUBITEM]) And $ISTEP * StringCompare($AVARRAY[$L][$ISUBITEM], $VPIVOT) < 0)

$L += 1

WEnd

While ($ISTEP * ($AVARRAY[$R][$ISUBITEM] - $VPIVOT) > 0 And IsNumber($AVARRAY[$R][$ISUBITEM])) Or (Not IsNumber($AVARRAY[$R][$ISUBITEM]) And $ISTEP * StringCompare($AVARRAY[$R][$ISUBITEM], $VPIVOT) > 0)

$R -= 1

WEnd

Else

While ($ISTEP * StringCompare($AVARRAY[$L][$ISUBITEM], $VPIVOT) < 0)

$L += 1

WEnd

While ($ISTEP * StringCompare($AVARRAY[$R][$ISUBITEM], $VPIVOT) > 0)

$R -= 1

WEnd

EndIf

If $L <= $R Then

For $I = 0 To $ISUBMAX

$VTMP = $AVARRAY[$L][$I]

$AVARRAY[$L][$I] = $AVARRAY[$R][$I]

$AVARRAY[$R][$I] = $VTMP

Next

$L += 1

$R -= 1

EndIf

Until $L > $R

__ARRAYQUICKSORT2D($AVARRAY, $ISTEP, $ISTART, $R, $ISUBITEM, $ISUBMAX)

__ARRAYQUICKSORT2D($AVARRAY, $ISTEP, $L, $IEND, $ISUBITEM, $ISUBMAX)

EndFunc

 

 

Func _ARRAYSWAP(ByRef $VITEM1, ByRef $VITEM2)

Local $VTMP = $VITEM1

$VITEM1 = $VITEM2

$VITEM2 = $VTMP

EndFunc

 

 

Func _ARRAYTOCLIP(Const ByRef $AVARRAY, $ISTART = 0, $IEND = 0)

Local $SRESULT = _ARRAYTOSTRING($AVARRAY, @CR, $ISTART, $IEND)

If @error Then Return SetError(@error, 0, 0)

Return ClipPut($SRESULT)

EndFunc

 

 

Func _ARRAYTOSTRING(Const ByRef $AVARRAY, $SDELIM = "|", $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, "")

If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, "")

Local $SRESULT, $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(2, 0, "")

For $I = $ISTART To $IEND

$SRESULT &= $AVARRAY[$I] & $SDELIM

Next

Return StringTrimRight($SRESULT, StringLen($SDELIM))

EndFunc

 

 

Func _ARRAYTRIM(ByRef $AVARRAY, $ITRIMNUM, $IDIRECTION = 0, $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(5, 0, 0)

If $IDIRECTION Then

For $I = $ISTART To $IEND

$AVARRAY[$I] = StringTrimRight($AVARRAY[$I], $ITRIMNUM)

Next

Else

For $I = $ISTART To $IEND

$AVARRAY[$I] = StringTrimLeft($AVARRAY[$I], $ITRIMNUM)

Next

EndIf

Return 1

EndFunc

 

 

Func _ARRAYUNIQUE($AARRAY, $IDIMENSION = 1, $IBASE = 0, $ICASE = 0, $VDELIM = "|")

Local $IUBOUNDDIM

If $VDELIM = "|" Then $VDELIM = Chr(1)

If Not IsArray($AARRAY) Then Return SetError(1, 0, 0)

If Not $IDIMENSION > 0 Then

Return SetError(3, 0, 0)

Else

$IUBOUNDDIM = UBound($AARRAY, 1)

If @error Then Return SetError(3, 0, 0)

If $IDIMENSION > 1 Then

Local $AARRAYTMP[1]

For $I = 0 To $IUBOUNDDIM - 1

_ARRAYADD($AARRAYTMP, $AARRAY[$I][$IDIMENSION - 1])

Next

_ARRAYDELETE($AARRAYTMP, 0)

Else

If UBound($AARRAY, 0) = 1 Then

Dim $AARRAYTMP[1]

For $I = 0 To $IUBOUNDDIM - 1

_ARRAYADD($AARRAYTMP, $AARRAY[$I])

Next

_ARRAYDELETE($AARRAYTMP, 0)

Else

Dim $AARRAYTMP[1]

For $I = 0 To $IUBOUNDDIM - 1

_ARRAYADD($AARRAYTMP, $AARRAY[$I][$IDIMENSION - 1])

Next

_ARRAYDELETE($AARRAYTMP, 0)

EndIf

EndIf

EndIf

Local $SHOLD

For $ICC = $IBASE To UBound($AARRAYTMP) - 1

If Not StringInStr($VDELIM & $SHOLD, $VDELIM & $AARRAYTMP[$ICC] & $VDELIM, $ICASE) Then $SHOLD &= $AARRAYTMP[$ICC] & $VDELIM

Next

If $SHOLD Then

$AARRAYTMP = StringSplit(StringTrimRight($SHOLD, StringLen($VDELIM)), $VDELIM, 1)

Return $AARRAYTMP

EndIf

Return SetError(2, 0, 0)

EndFunc

 

 

Func __ARRAY_EXETERINTERNAL(ByRef $AVARRAY, $ISTART, $ISIZE, $SDELIM, ByRef $AIDX, ByRef $ARESULT, ByRef $ICOUNT)

If $ISTART == $ISIZE - 1 Then

For $I = 0 To $ISIZE - 1

$ARESULT[$ICOUNT] &= $AVARRAY[$AIDX[$I]] & $SDELIM

Next

If $SDELIM <> "" Then $ARESULT[$ICOUNT] = StringTrimRight($ARESULT[$ICOUNT], 1)

$ICOUNT += 1

Else

Local $ITEMP

For $I = $ISTART To $ISIZE - 1

$ITEMP = $AIDX[$I]

$AIDX[$I] = $AIDX[$ISTART]

$AIDX[$ISTART] = $ITEMP

__ARRAY_EXETERINTERNAL($AVARRAY, $ISTART + 1, $ISIZE, $SDELIM, $AIDX, $ARESULT, $ICOUNT)

$AIDX[$ISTART] = $AIDX[$I]

$AIDX[$I] = $ITEMP

Next

EndIf

EndFunc

 

 

Func __ARRAY_COMBINATIONS($IN, $IR)

Local $I_TOTAL = 1

For $I = $IR To 1 Step -1

$I_TOTAL *= ($IN / $I)

$IN -= 1

Next

Return Round($I_TOTAL)

EndFunc

 

 

Func __ARRAY_GETNEXT($IN, $IR, ByRef $ILEFT, $ITOTAL, ByRef $AIDX)

If $ILEFT == $ITOTAL Then

$ILEFT -= 1

Return

EndIf

Local $I = $IR - 1

While $AIDX[$I] == $IN - $IR + $I

$I -= 1

WEnd

$AIDX[$I] += 1

For $J = $I + 1 To $IR - 1

$AIDX[$J] = $AIDX[$I] + $J - $I

Next

$ILEFT -= 1

EndFunc

 

HotKeySet("{F9}", "StartOrStop")

Opt("GUICloseOnESC", 0)

Opt("GUIOnEventMode", 1)

Opt("TrayAutoPause", 0)

Opt("TrayMenuMode", 1)

Global $CHAT = 11463304, $WHISPER = 0, $LASTCHAT = 11463316

Global $EXP_NEEDED[151], $HADTARGET = 0, $DISTANCE = 7, $SITTING = 0, $ATHOME = 0

Global $SELECTED_SPECIAL_INFO[300] = ["None", "Incr. Movement", "Unknown Special", "Incr. Defence", "Incr. Mag Resist", "Incr. Attack", "Incr. Magical Attk", "Sacrificial Assault", "Incr. Life", "Weak"]

Global $PET_HUNGER_INFO[300] = ["Full", "Satisfied", "Peckish", "Hungry", "Hungry", "Hungry", "Hungry"]

Global $CHAR_CLASS_INFO[300] = ["Blademaster", "Wizard", "Psychic", "Venomancer", "Barbarian", "Assassin", "Archer", "Cleric", "Seeker", "Mystic", "None"]

Global $HERBS[31] = ["", "Nectar", "Salvia Root", "Ageratum", "Golden Herb", "Tranquillia Herb", "Elderwood", "Elecampane", "Realgar", "Palo Herb", "Tuckahoe", "Crane Herb", "Black Henbane", "Fleece-flower Root", "Green Berry", "Ligumaloes Wood", "Valdia Root", "Serpentine Herb", "Ox Bezoar", "Tulip", "Perfumedew Herb", "Butterfly Herb", "Tiger-ear Herb", "Red Berry", "Worm Sprouts", "White Berry", "Devilwood", "Scented Fungus", "Tiery Herb", "Longen Herb"]

Global $RESOURCES[23] = ["", "Withered Tree Root", "Old Tree Root", "Willow Stake", "Peatree Stake", "Dragonwood Stake", "Cinnabar Ore", "Iron Ore", "Black Iron Ore", "Manganese Iron Ore", "Hsuan Iron Ore", "Meteorite Iron Ore", "Sandstone Rock", "Gravel Pile", "Rubstone Rock", "Corundum Rock", "Granite ROck", "Rough Coal Stack", "Coal Stack", "Fine Coal Stack", "Volcanic Coal Stack", "Lava Coal Stack"]

Global $KEYCODE = "--|{F1}|{F2}|{F3}|{F4}|{F5}|{F6}|{F7}|{F8}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}|{9}", $COUNT = 0, $LOG = "", $LOGS = "", $MOBLISTFORMOPEN = "0", $MOVEING = "0", $GATHERING = "0"

Global $SOFTWARE_TITLE = "Afford Bot 1.0", $SOFTWARE_VERSION = "", $SOFTWARE_CONFIG = "Afford-Bot-Config.ini", $STOP = True, $CURRENT_MOB_LIST[100], $MOB_LIST_COUNT = "0", $ACTIVE_SKILL = "0", $ACTIVE_WEAPONS = "0", $TIMER_CHANGE_WEAPON = "0", $TIMER_APOTHOCARY_RAIL = "0", $RAIL_LIST_COUNT = "0"

Global $ACTIONFLAG, $MOVEFLAG, $CASTING, $LVL, $CLASS, $HP, $MP, $MAXHP, $HPPERC, $MAXMP, $EXP, $STR, $DEX, $VIT, $MAG, $SPIRIT, $GOLD, $AP, $X, $Y, $Z, $NPCID, $RESOURCEID, $LASTGATHERED, $LASTSHOPCHECKED, $CURRENTRAIL, $PACKFULL, $PLAYERCOUNT, $FORM_PARTY, $MOVEMODE, $CHARSTATE, $PLAYERCOUNT, $HEALTAR, $FLYTOESCAPE = 0

Global $LAST_HP_READ, $FZ, $HEALTAR, $TEMP_TAR, $TAR, $TAR_BASE, $DEFTAR = 0, $DEFTAR2 = 0, $TARGET, $TID, $TARNAME, $TARLVL, $TARHP, $TARMAXHP, $TARAPI, $TARX, $LASTTARX[3], $TARY, $LASTTARY[3], $TARZ, $LASTTARZ[3], $TARSPEC, $LAST_KILLEDTIME, $LAST_KILLED, $KILLS_COUNT, $TARDIS, $LEADER, $KILL = 0, $LASTRAILX = 0, $LASTRAILY = 0, $LASTRAILZ = 0, $HIGHT = 0, $REST = 0

Global $CHECK_HEALPET = "0", $INPUT_PETSLOT = "0", $INPUT_PETHP = "0", $INPUT_PETHEALKEY = "0", $INPUT_PETREZKEY = "0", $MOBLISTOFORMOPEN = "0", $MOVEX = "0", $MOVEY = "0", $MOVEZ = "0", $PETHP[1], $PETHUNGER[1]

Global $BUFFS_TIMER[9], $BUFFS_TIMER_DIFF[9], $SKILL_DELAY_CHECK[10], $PARTYBUFFS_TIMER[9], $PARTYBUFFS_TIMER_DIFF[9]

Global $SOFTWARE_OFFSET_CONFIG = "Afford-Bot.BR", $CFG_OFFSET_ROOT_KEY = "Custom_32_Offsets_In_Decimal", $CFG_BASEADDRESS_ROOT_KEY = "Perfect_World_Base_Address_In_Decimal", $CFG_BASEADDRESS_APP_KEY = "Application_Title", $CFG_BASEADDRESS_KEY = "Base_Address", $CFG_BASEADDRESSFZ_KEY = "Base_AddressFZ", $CFG_BASEADDRESSEXP_KEY = "Base_AddressEXP"

Global $APP_BASE_ADDRESS = "0x" & Hex(IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_BASEADDRESS_ROOT_KEY, $CFG_BASEADDRESS_KEY, "")), $APP_BASE_ADDRESSFZ = "0x" & Hex(IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_BASEADDRESS_ROOT_KEY, $CFG_BASEADDRESSFZ_KEY, "")), $APP_BASE_ADDRESSEXP = "0x" & Hex(IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_BASEADDRESS_ROOT_KEY, $CFG_BASEADDRESSEXP_KEY, ""))

Global $APP_TITLE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_BASEADDRESS_ROOT_KEY, $CFG_BASEADDRESS_APP_KEY, "Perfect World International"), $HANDLE = ControlGetHandle($APP_TITLE, "", ""), $KERNEL32 = DllOpen("kernel32.dll")

Global $PROCESS_ID = WinGetProcess($APP_TITLE), $PROCESS_INFORMATION = _MEMORYOPEN($PROCESS_ID), $APP_PATH = _PROCESSIDPATH($PROCESS_ID)

Global $ANSWER

If @error Then

$ANSWER = InputBox("Can´t Find Perfect World", "Impossible to detect your Perfect World. If you have another client you would like to attach to, type the name of that client into the field and click OK. Or click Cancel to Exit", "", "", -1, -1, 0, 0)

If $ANSWER = "" Then

Exit

Else

Global $APP_TITLE = $ANSWER, $HANDLE = ControlGetHandle($APP_TITLE, "", "")

Global $PROCESS_ID = WinGetProcess($APP_TITLE), $PROCESS_INFORMATION = _MEMORYOPEN($PROCESS_ID), $APP_PATH = _PROCESSIDPATH($PROCESS_ID)

If @error Then

MsgBox(0, "Can´t Find Perfect World", "Impossible to detect your Perfect World. Review settings in " & $SOFTWARE_OFFSET_CONFIG & ". Set the correct value for " & $CFG_BASEADDRESS_APP_KEY & " and for " & $CFG_BASEADDRESS_KEY & " properties.")

EndIf

EndIf

EndIf

SETEXPLIST()

Global $SOFTWARE_OFFSET_CONFIG = "Afford-Bot.BR", $CFG_OFFSET_ROOT_KEY = "Custom_32_Offsets_In_Decimal"

Global $CFG_OFFSET_PETBASE = "PetBase_OffSet", $CFG_OFFSET_PETHP = "PetHP_OffSet", $CFG_OFFSET_PETHUNGER = "PetHunger_OffSet"

$FILE = FileOpen($APP_PATH, 16)

$DATA = FileRead($FILE, FileGetSize($APP_PATH))

FileClose($FILE)

$SELECT = StringRegExp($DATA, "(A1(.{8})578B482081C1EC000000E8(.{8}))", 1)

If @error Then

MsgBox(0, "Issues Attaching For Offsets", "There may be another bot attached to this process. Please close that bot and try again")

Exit

EndIf

$OPBASE = REV($SELECT[1])

$PICK = StringRegExp($DATA, "(8B15(.{8})50518B4A2081C1EC000000E8(.{8}))", 1)

$PACKET = StringRegExp($DATA, "6A21" & "E8.{8}" & "8BF0" & "83C404" & "85F6" & "74.{2}" & "8A442418" & "668B4C2410" & "66C7060000" & "88461E" & "8B442408" & "66894E1A" & "D9442414" & "8B10" & "895602" & "8B4804" & "D80D.{8}" & "894E06" & "8B5008" & "8B44240C" & "89560A" & "D805.{8}" & "8B08" & "894E0E" & "8B5004" & "895612" & "8B4008" & "894616" & "E8.{8}" & "668B4C241C" & "6689461C" & "66894E1F" & "8B15(.{8})" & "6A21" & "56" & "8B4A20" & "E8(.{8})" & "56" & "E8.{8}" & "83C404" & "5E" & "C3", 2)

Global $REALBASEADDRESS = "0x" & REV($SELECT[1])

$CALL_POS = StringInStr($DATA, $SELECT[0]) / 2 + 4194318

Global $SELECT_CALL = "0x" & Hex(("0x" & REV($SELECT[2])) + $CALL_POS + 5)

$CALL_POS = StringInStr($DATA, $PICK) / 2 + 4194320

$CALL_POS = StringInStr($DATA, $PACKET[0]) / 2 + 4194427

Global $SENDPACKETADDRESS = "0x" & Hex(Dec(REV($PACKET[2])) + $CALL_POS + 6)

Global $OFFSET_TAR[3], $CFG_OFFSET_TAR = "Target_OffSet"

$OFFSET_TAR[1] = 52

$OFFSET_TAR[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_TAR, "")

Global $OFFSET_CASTING, $OFFSET_NAME, $OFFSET_LVL, $OFFSET_CLASS, $OFFSET_HP, $OFFSET_CHARID, $OFFSET_MAXHP, $OFFSET_MAX_HP, $OFFSET_MP, $OFFSET_MAX_MP, $OFFSET_MAXMP, $OFFSET_EXP, $OFFSET_STR, $OFFSET_DEX, $OFFSET_VIT, $OFFSET_MAG, $OFFSET_SPIRIT, $OFFSET_GOLD, $OFFSET_CHI, $OFFSET_AP, $OFFSET_X, $OFFSET_Y, $OFFSET_Z, $OFFSET_TAR, $OFFSET_TARHP, $OFFSET_TARMAXHP, $OFFSET_TARNAME, $OFFSET_TARLVL, $OFFSET_TARSPEC

Global $CFG_OFFSET_CASTING = "CASTING_OffSet", $OFFSET_CASTING = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_CASTING, "")

Global $CFG_OFFSET_NAME = "NAME_OffSet", $OFFSET_NAME = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NAME, "")

Global $CFG_OFFSET_LVL = "LVL_OffSet", $OFFSET_LVL = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_LVL, "")

Global $CFG_OFFSET_CLASS = "CLASS_OffSet", $OFFSET_CLASS = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_CLASS, "")

Global $CFG_OFFSET_HP = "HP_OffSet", $OFFSET_HP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_HP, "")

Global $CFG_OFFSET_CHARID = "CHARID_OffSet", $OFFSET_CHARID = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_CHARID, "")

Global $CFG_OFFSET_MAXHP = "MaxHP_OffSet", $OFFSET_MAX_HP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MAXHP, "")

Global $CFG_OFFSET_MP = "MP_OffSet", $OFFSET_MP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MP, "")

Global $CFG_OFFSET_MAXMP = "MaxMP_OffSet", $OFFSET_MAX_MP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MAXMP, "")

Global $CFG_OFFSET_EXP = "EXP_OffSet", $OFFSET_EXP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_EXP, "")

Global $CFG_OFFSET_STR = "STR_OffSet", $OFFSET_STR = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_STR, "")

Global $CFG_OFFSET_DEX = "DEX_OffSet", $OFFSET_DEX = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_DEX, "")

Global $CFG_OFFSET_VIT = "VIT_OffSet", $OFFSET_VIT = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_VIT, "")

Global $CFG_OFFSET_MAG = "MAG_OffSet", $OFFSET_MAG = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MAG, "")

Global $CFG_OFFSET_SPIRIT = "SPIRIT_OffSet", $OFFSET_SPIRIT = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_SPIRIT, "")

Global $CFG_OFFSET_GOLD = "Gold_Offset", $OFFSET_GOLD = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_GOLD, "")

Global $CFG_OFFSET_FLYSPEED = "FlySpeed_Offset", $OFFSET_FLYSPEED = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_FLYSPEED, "")

Global $CFG_OFFSET_FLYCOUNTER = "FlyCounter_OffSet", $OFFSET_FLYCOUNTER = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_FLYCOUNTER, "")

Global $CFG_OFFSET_MOVEMODE = "MoveMode_OffSet", $OFFSET_MOVEMODE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MOVEMODE, "")

Global $CFG_OFFSET_CHARSTATE = "CharState_OffSet", $OFFSET_CHARSTATE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_CHARSTATE, "")

Global $CFG_OFFSET_CHI = "CHI_OffSet", $OFFSET_CHI = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_CHI, "")

Global $CFG_OFFSET_MAXCHI = "MAXCHI_OffSet", $OFFSET_MAXCHI = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MAXCHI, "")

Global $CFG_OFFSET_X = "X_OffSet", $OFFSET_X = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_X, "")

Global $CFG_OFFSET_Y = "Y_OffSet", $OFFSET_Y = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Y, "")

Global $CFG_OFFSET_Z = "Z_OffSet", $OFFSET_Z = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Z, "")

Global $OFFSET_PLAYERBASE[4], $CFG_OFFSET_PLAYERBASE = "PlayerBase_OffSet"

$OFFSET_PLAYERBASE[1] = 28

$OFFSET_PLAYERBASE[2] = 32

$OFFSET_PLAYERBASE[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERBASE, "")

Global $OFFSET_PLAYERCOUNT[4], $CFG_OFFSET_PLAYERCOUNT = "PlayerCount_OffSet"

$OFFSET_PLAYERCOUNT[1] = 28

$OFFSET_PLAYERCOUNT[2] = 32

$OFFSET_PLAYERCOUNT[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERCOUNT, "")

Global $CFG_OFFSET_PLAYERID = "PlayerID_OffSet", $OFFSET_PLAYERID = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERID, "")

Global $CFG_OFFSET_PLAYERLVL = "PlayerLVL_OffSet", $OFFSET_PLAYERLVL = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERLVL, "")

Global $CFG_OFFSET_PLAYERNAME = "PlayerName_OffSet", $OFFSET_PLAYERNAME = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERNAME, "")

Global $CFG_OFFSET_PLAYERHP = "PlayerHP_OffSet", $OFFSET_PLAYERHP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERHP, "")

Global $CFG_OFFSET_PLAYERMAXHP = "PlayerMAXHP_OffSet", $OFFSET_PLAYERMAXHP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERMAXHP, "")

Global $CFG_OFFSET_PLAYERCLASS = "PlayerClass_OffSet", $OFFSET_PLAYERCLASS = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERCLASS, "")

Global $OFFSET_PLAYERX = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_X, "")

Global $OFFSET_PLAYERY = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Y, "")

Global $OFFSET_PLAYERZ = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Z, "")

Global $OFFSET_NPCBASE[4], $CFG_OFFSET_NPCBASE = "NPCBase_OffSet"

$OFFSET_NPCBASE[1] = 28

$OFFSET_NPCBASE[2] = 36

$OFFSET_NPCBASE[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCBASE, "")

Global $OFFSET_NPCCOUNT[4], $CFG_OFFSET_NPCCOUNT = "NPCCount_OffSet"

$OFFSET_NPCCOUNT[1] = 28

$OFFSET_NPCCOUNT[2] = 36

$OFFSET_NPCCOUNT[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCCOUNT, "")

Global $CFG_OFFSET_NPCID = "NPCID_OffSet", $OFFSET_NPCID = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCID, "")

Global $CFG_OFFSET_NPCPAI = "NPCPAI_OffSet", $OFFSET_NPCPAI = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCPAI, "")

Global $CFG_OFFSET_NPCNAME = "NPCName_OffSet", $OFFSET_NPCNAME = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCNAME, "")

Global $CFG_OFFSET_NPCLVL = "NPCLVL_OffSet", $OFFSET_NPCLVL = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCLVL, "")

Global $CFG_OFFSET_NPCHP = "NPCHP_OffSet", $OFFSET_NPCHP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCHP, "")

Global $CFG_OFFSET_NPCMAXHP = "NPCMAXHP_OffSet", $OFFSET_NPCMAXHP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCMAXHP, "")

Global $CFG_OFFSET_NPCSPECIAL = "NPCSpecial_OffSet", $OFFSET_NPCSPECIAL = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCSPECIAL, "")

Global $OFFSET_NPCX = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_X, "")

Global $OFFSET_NPCY = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Y, "")

Global $OFFSET_NPCZ = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Z, "")

Global $OFFSET_ITEMBASE[4], $CFG_OFFSET_ITEMBASE = "ItemBase_OffSet"

$OFFSET_ITEMBASE[1] = 28

$OFFSET_ITEMBASE[2] = 40

$OFFSET_ITEMBASE[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ITEMBASE, "")

Global $CFG_OFFSET_ITEMID = "ItemID_OffSet", $OFFSET_ITEMID = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ITEMID, "")

Global $CFG_OFFSET_ITEMSN = "ItemSN_OffSet", $OFFSET_ITEMSN = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ITEMSN, "")

Global $CFG_OFFSET_ITEMNAME = "ItemName_OffSet", $OFFSET_ITEMNAME = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ITEMNAME, "")

Global $OFFSET_ITEMX = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_X, "")

Global $OFFSET_ITEMY = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Y, "")

Global $OFFSET_ITEMZ = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Z, "")

Global $OFFSET_INVENTORYBASE[3], $CFG_OFFSET_INVENTORYBASE = "InventoryBase_OffSet"

$OFFSET_INVENTORYBASE[1] = 3180

$OFFSET_INVENTORYBASE[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYBASE, "")

Global $OFFSET_EQUIPPEDINVENTORBASE[3], $CFG_OFFSET_EQUIPPEDINVENTORBASE = "EquippedInventoryBase_OffSet"

$OFFSET_EQUIPPEDINVENTORBASE[1] = 3180

$OFFSET_EQUIPPEDINVENTORBASE[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $OFFSET_EQUIPPEDINVENTORBASE, "")

Global $CFG_OFFSET_INVENTORYID = "InventoryID_OffSet", $OFFSET_INVENTORYID = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYID, "")

Global $CFG_OFFSET_INVENTORYSTACKAMOUNT = "InventoryStackAmount_OffSet", $OFFSET_INVENTORYSTACKAMOUNT = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYSTACKAMOUNT, "")

Global $CFG_OFFSET_INVENTORYMAXSTACKAMOUNT = "InventoryMAXStackAmount_OffSet", $OFFSET_INVENTORYMAXSTACKAMOUNT = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYMAXSTACKAMOUNT, "")

Global $CFG_OFFSET_INVENTORYSELLPRICE = "InventoryPrice_OffSet", $OFFSET_INVENTORYSELLPRICE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYSELLPRICE, "")

Global $CFG_OFFSET_INVENTORYBUYPRICE = "InventorySellPrice_OffSet", $OFFSET_INVENTORYBUYPRICE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYBUYPRICE, "")

Global $CFG_OFFSET_INVENTORYDESCRIPTION = "InventoryDescription_OffSet", $OFFSET_INVENTORYDESCRIPTION = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYDESCRIPTION, "")

Global $OFFSET_ACTIONFLAG[4], $CFG_OFFSET_ACTIONFLAG = "ActionFlag_Offset"

$OFFSET_ACTIONFLAG[1] = 52

$OFFSET_ACTIONFLAG[2] = 4168

$OFFSET_ACTIONFLAG[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONFLAG, "24")

Global $OFFSET_ACTIONREAD[5], $CFG_OFFSET_ACTIONREAD = "ActionRead_Offset"

$OFFSET_ACTIONREAD[1] = 52

$OFFSET_ACTIONREAD[2] = 4168

$OFFSET_ACTIONREAD[3] = 48

$OFFSET_ACTIONREAD[4] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONREAD, "4")

Global $OFFSET_ACTIONREAD2[5], $CFG_OFFSET_ACTIONREAD2 = "ActionRead2_Offset"

$OFFSET_ACTIONREAD2[1] = 52

$OFFSET_ACTIONREAD2[2] = 4168

$OFFSET_ACTIONREAD2[3] = 48

$OFFSET_ACTIONREAD2[4] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONREAD2, "8")

Global $OFFSET_ACTIONREAD3[5], $CFG_OFFSET_ACTIONREAD3 = "ActionRead3_Offset"

$OFFSET_ACTIONREAD3[1] = 52

$OFFSET_ACTIONREAD3[2] = 4168

$OFFSET_ACTIONREAD3[3] = 48

$OFFSET_ACTIONREAD3[4] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONREAD3, "28")

Global $OFFSET_ACTIONWRITE[4], $CFG_OFFSET_ACTIONWRITE = "ActionWrite_Offset"

$OFFSET_ACTIONWRITE[1] = 52

$OFFSET_ACTIONWRITE[2] = 4168

$OFFSET_ACTIONWRITE[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONWRITE, "12")

Global $OFFSET_ACTIONWRITE2[4], $CFG_OFFSET_ACTIONWRITE2 = "ActionWrite2_Offset"

$OFFSET_ACTIONWRITE2[1] = 52

$OFFSET_ACTIONWRITE2[2] = 4168

$OFFSET_ACTIONWRITE2[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONWRITE2, "20")

Global $OFFSET_ACTIONMOVEX[6], $CFG_OFFSET_ACTIONMOVEX = "ActionMoveX_OffSet"

$OFFSET_ACTIONMOVEX[1] = 52

$OFFSET_ACTIONMOVEX[2] = 4168

$OFFSET_ACTIONMOVEX[3] = 48

$OFFSET_ACTIONMOVEX[4] = 4

$OFFSET_ACTIONMOVEX[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONMOVEX, "32")

Global $OFFSET_ACTIONMOVEY[6], $CFG_OFFSET_ACTIONMOVEY = "ActionMoveY_OffSet"

$OFFSET_ACTIONMOVEY[1] = 52

$OFFSET_ACTIONMOVEY[2] = 4168

$OFFSET_ACTIONMOVEY[3] = 48

$OFFSET_ACTIONMOVEY[4] = 4

$OFFSET_ACTIONMOVEY[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONMOVEY, "40")

Global $OFFSET_ACTIONMOVEZ[6], $CFG_OFFSET_ACTIONMOVEZ = "ActionMoveZ_OffSet"

$OFFSET_ACTIONMOVEZ[1] = 52

$OFFSET_ACTIONMOVEZ[2] = 4168

$OFFSET_ACTIONMOVEZ[3] = 48

$OFFSET_ACTIONMOVEZ[4] = 4

$OFFSET_ACTIONMOVEZ[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONMOVEZ, "36")

Global $OFFSET_ACTIONHEIGHT[6], $CFG_OFFSET_ACTIONHEIGHT = "ActionHeight_OffSet"

$OFFSET_ACTIONHEIGHT[1] = 52

$OFFSET_ACTIONHEIGHT[2] = 4168

$OFFSET_ACTIONHEIGHT[3] = 48

$OFFSET_ACTIONHEIGHT[4] = 4

$OFFSET_ACTIONHEIGHT[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONHEIGHT, "104")

Global $OFFSET_ACTIONHEIGHTFLAG[6], $CFG_OFFSET_ACTIONHEIGHTFLAG = "ActionHeightFlag_OffSet"

$OFFSET_ACTIONHEIGHTFLAG[1] = 52

$OFFSET_ACTIONHEIGHTFLAG[2] = 4168

$OFFSET_ACTIONHEIGHTFLAG[3] = 48

$OFFSET_ACTIONHEIGHTFLAG[4] = 4

$OFFSET_ACTIONHEIGHTFLAG[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONHEIGHTFLAG, "100")

Global $OFFSET_ACTIONHEIGHTFLAG2[6], $CFG_OFFSET_ACTIONHEIGHTFLAG2 = "ActionHeightFlag2_Offset"

$OFFSET_ACTIONHEIGHTFLAG2[1] = 52

$OFFSET_ACTIONHEIGHTFLAG2[2] = 4168

$OFFSET_ACTIONHEIGHTFLAG2[3] = 48

$OFFSET_ACTIONHEIGHTFLAG2[4] = 4

$OFFSET_ACTIONHEIGHTFLAG2[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONHEIGHTFLAG2, "108")

Global $OFFSET_ACTIONDONE[6], $CFG_OFFSET_ACTIONDONE = "ActionDoneFlag_OffSet"

$OFFSET_ACTIONDONE[1] = 52

$OFFSET_ACTIONDONE[2] = 4168

$OFFSET_ACTIONDONE[3] = 48

$OFFSET_ACTIONDONE[4] = 4

$OFFSET_ACTIONDONE[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONDONE, "8")

Global $OFFSET_ACTIONVALUE[6], $CFG_OFFSET_ACTIONVALUE = "ActionValue_OffSet"

$OFFSET_ACTIONVALUE[1] = 52

$OFFSET_ACTIONVALUE[2] = 4168

$OFFSET_ACTIONVALUE[3] = 48

$OFFSET_ACTIONVALUE[4] = 4

$OFFSET_ACTIONVALUE[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONVALUE, "44")

Global $OFFSET_ACTIONVALUE2[6], $CFG_OFFSET_ACTIONVALUE2 = "ActionValue2_OffSet"

$OFFSET_ACTIONVALUE2[1] = 52

$OFFSET_ACTIONVALUE2[2] = 4168

$OFFSET_ACTIONVALUE2[3] = 48

$OFFSET_ACTIONVALUE2[4] = 4

$OFFSET_ACTIONVALUE2[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONVALUE2, "64")

Global $OFFSET_ACTIONSETERROR[6], $CFG_OFFSET_ACTIONSETERROR = "ActionSetError_Offset"

$OFFSET_ACTIONSETERROR[1] = 52

$OFFSET_ACTIONSETERROR[2] = 4168

$OFFSET_ACTIONSETERROR[3] = 48

$OFFSET_ACTIONSETERROR[4] = 8

$OFFSET_ACTIONSETERROR[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONSETERROR, "52")

Global $OFFSET_ACTIONFINISHED[6], $CFG_OFFSET_ACTIONFINISHED = "ActionFinished_Offset"

$OFFSET_ACTIONFINISHED[1] = 52

$OFFSET_ACTIONFINISHED[2] = 4168

$OFFSET_ACTIONFINISHED[3] = 48

$OFFSET_ACTIONFINISHED[4] = 8

$OFFSET_ACTIONFINISHED[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONFINISHED, "8")

Global $OFFSET_ACTIONSTART[6], $CFG_OFFSET_ACTIONSTART = "ActionStart_Offset"

$OFFSET_ACTIONSTART[1] = 52

$OFFSET_ACTIONSTART[2] = 4168

$OFFSET_ACTIONSTART[3] = 48

$OFFSET_ACTIONSTART[4] = 8

$OFFSET_ACTIONSTART[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONSTART, "20")

Global $OFFSET_ACTIONNOTSTART[6], $CFG_OFFSET_ACTIONNOTSTART = "ActionNotStart_Offset"

$OFFSET_ACTIONNOTSTART[1] = 52

$OFFSET_ACTIONNOTSTART[2] = 4168

$OFFSET_ACTIONNOTSTART[3] = 48

$OFFSET_ACTIONNOTSTART[4] = 8

$OFFSET_ACTIONNOTSTART[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONNOTSTART, "36")

Global $OFFSET_ACTIONOBJECT[6], $CFG_OFFSET_ACTIONOBJECT = "ActionObject_Offset"

$OFFSET_ACTIONOBJECT[1] = 52

$OFFSET_ACTIONOBJECT[2] = 4168

$OFFSET_ACTIONOBJECT[3] = 48

$OFFSET_ACTIONOBJECT[4] = 8

$OFFSET_ACTIONOBJECT[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONOBJECT, "32")

Global $OFFSET_OBJECTACTION[6], $CFG_OFFSET_OBJECTACTION = "ObjectAction_Offset"

$OFFSET_OBJECTACTION[1] = 52

$OFFSET_OBJECTACTION[2] = 4168

$OFFSET_OBJECTACTION[3] = 48

$OFFSET_OBJECTACTION[4] = 8

$OFFSET_OBJECTACTION[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_OBJECTACTION, "56")

Global $OFFSET_ACTIONSKILL[6], $CFG_OFFSET_ACTIONSKILL = "ActionSkill_Offset"

$OFFSET_ACTIONSKILL[1] = 52

$OFFSET_ACTIONSKILL[2] = 4168

$OFFSET_ACTIONSKILL[3] = 48

$OFFSET_ACTIONSKILL[4] = 8

$OFFSET_ACTIONSKILL[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONSKILL, "80")

Global $CHAR_DATA_BASE = _MEMORYREAD(_MEMORYREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION) + 52, $PROCESS_INFORMATION)

Global $PLAYER_DATA_BASE = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PLAYERBASE)

Global $NPC_DATA_BASE = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_NPCBASE)

Global $ITEM_DATA_BASE = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ITEMBASE)

Global $NAME = _MEMORYREAD(_MEMORYREAD($CHAR_DATA_BASE + $OFFSET_NAME, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

Global $CFG_FLYESCAPE_ROOT_KEY = "FlyEscape", $CFG_FLYESCAPE_FLAG_KEY = $NAME & "--" & "FlyEscapeFlag", $CFG_FLYESCAPE_KEY = $NAME & "--" & "FlyEscapeKey", $CFG_FLYESCAPE_DAMAGE_KEY = $NAME & "--" & "FlyEscapeDamage", $CFG_FLYESCAPE_SPACE_KEY = $NAME & "--" & "FlyEscapeTotalSpaces"

Global $CFG_EXTRAS_ROOT_KEY = "Extras", $CFG_EXTRAS_AKS_KEY = $NAME & "--" & "ExtrasAKS", $CFG_HEAL_FM_KEY = $NAME & "--" & "HEALFM", $CFG_EXTRAS_HBN_KEY = $NAME & "--" & "ExtrasHBN", $CFG_EXTRAS_FREEZE_KEY = $NAME & "--" & "ExtrasFreeze", $CFG_EXTRAS_ATTACKRAD_KEY = $NAME & "--" & "ExtrasAttackRad", $CFG_EXTRAS_HOMEX_KEY = $NAME & "--" & "ExtrasHomeX", $CFG_EXTRAS_HOMEY_KEY = $NAME & "--" & "ExtrasHomeY", $CFG_EXTRAS_HOMEZ_KEY = $NAME & "--" & "ExtrasHomeZ"

Global $CFG_SKILLS_ROOT_KEY = "Skills", $CFG_SKILL_UBOUND_KEY = $NAME & "--" & "SkillUbound", $CFG_SKILL_COMBO_KEY = $NAME & "--" & "SkillComboKey", $CFG_SKILL_DELAY_KEY = $NAME & "--" & "SkillDelay", $SKCOUNTCFG = IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_UBOUND_KEY, "1")

Global $CFG_BUFFS_ROOT_KEY = "Buffs", $CFG_BUFFS_FLAG_KEY = $NAME & "--" & "AutoBuffsFlag", $CFG_BUFFS_UBOUND_KEY = $NAME & "--" & "BuffsUbound", $CFG_BUFFS_COMBO_KEY = $NAME & "--" & "BuffsComboKey", $CFG_BUFFS_DELAY_KEY = $NAME & "--" & "BuffsDelay", $CFG_BUFFS_FREQUENCY_KEY = $NAME & "--" & "BuffsFrequency", $SKCOUNTCFG_BUFFS = IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, "1")

Global $CFG_WEAPONS_ROOT_KEY = "ChangeWeapons", $CFG_WEAPONS_FLAG_KEY = $NAME & "--" & "ChangeWeaponsFlag", $CFG_WEAPONS_UBOUND_KEY = $NAME & "--" & "ChangeWeaponsUbound", $CFG_WEAPONS_COMBO_KEY = $NAME & "--" & "ChangeWeaponsComboKey", $CFG_WEAPONS_DELAY_KEY = $NAME & "--" & "ChangeWeaponsDelay", $SKCOUNTCFG_WEAPONS = IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_UBOUND_KEY, "1")

Global $CFG_MOBLIST_ROOT_KEY = "MobList", $CFG_MOBLIST_UBOUND_KEY = $NAME & "--" & "MobListUbound", $CFG_MOBLIST_MONSTER_KEY = $NAME & "--" & "Monster", $CFG_MOBLIST_MONSTERNAME_KEY = $NAME & "--" & "MonsterName", $CFG_MOBLIST_TARGET_KEY = $NAME & "--" & "TargetKey"

Global $CFG_HEAL_ROOT_KEY = "Heal", $CFG_HEAL_AUTOREST_HP_KEY = $NAME & "--" & "AutoRestHP", $CFG_HEAL_AUTOREST_HP_PERC_KEY = $NAME & "--" & "AutoRestHPPerc", $CFG_HEAL_AUTOREST_MP_KEY = $NAME & "--" & "AutoRestMP", $CFG_HEAL_AUTOREST_MP_PERC_KEY = $NAME & "--" & "AutoRestMPPerc", $CFG_HEAL_AUTOREST_KEY = $NAME & "--" & "AutoRestKey", $CFG_HEAL_AUTOPOT_HP_FLAG_KEY = $NAME & "--" & "AutoPotHPFlag", $CFG_HEAL_AUTOPOT_HP_PERC_KEY = $NAME & "--" & "AutoPotHPPerc", $CFG_HEAL_AUTOPOT_HP_KEY = $NAME & "--" & "AutoPotHPKey", $CFG_HEAL_AUTOPOT_HP_TIMER = $NAME & "--" & "AutoPotHPTimer", $CFG_HEAL_AUTOHP_FLAG_KEY = $NAME & "--" & "AutoHPFlag", $CFG_HEAL_AUTOHP_PERC_KEY = $NAME & "--" & "AutoHPPerc", $CFG_HEAL_AUTOHP_KEY = $NAME & "--" & "AutoHPKey", $CFG_HEAL_AUTOHP_TIMER = $NAME & "--" & "AutoHPTimer", $CFG_HEAL_AUTOPOT_MP_FLAG_KEY = $NAME & "--" & "AutoPotFlagMP", $CFG_HEAL_AUTOPOT_MP_PERC_KEY = $NAME & "--" & "AutoPotMPPerc", $CFG_HEAL_AUTOPOT_MP_KEY = $NAME & "--" & "AutoPotMPKey", $CFG_HEAL_RES_ON_DIE_KEY = $NAME & "--" & "ResOnDie", $CFG_HEAL_APOTHOCARY_RAIL_KEY = $NAME & "--" & "ApothocaryRail", $CFG_HEAL_APOTHOCARY_TIMER_KEY = $NAME & "--" & "ApothocaryTimer", $CFG_HEAL_MOVE_TO_CORPSE_KEY = $NAME & "--" & "MoveToCorpse", $CFG_HEAL_DEFEND_KEY = "DEFENDING", $CFG_HEAL_CPU_THROTTLE_KEY = "CPUThrottle", $CFG_HEAL_LAST_GUI_X = "LastGUIX", $CFG_HEAL_LAST_GUI_Y = "LastGUIY"

Global $CFG_PETHEAL_ROOT_KEY = "PetHeal", $CFG_PETHEAL_CHECK_KEY = $NAME & "--" & "AutoHealPetCheck", $CFG_PETATTACK_CHECK_KEY = $NAME & "--" & "PetAttackCheck", $CFG_PETHEAL_SLOT_KEY = $NAME & "--" & "AutoHealPetNumber", $CFG_PETHEAL_HP_KEY = $NAME & "--" & "AutoHealPetHP", $CFG_PETHEAL_HEALKEY_KEY = $NAME & "--" & "AutoHealPetKey", $CFG_PETHEAL_FEEDKEY_KEY = $NAME & "--" & "AutoFeedPetKey", $CFG_PETHEAL_SUMMONKEY_KEY = $NAME & "--" & "SummonPetKey", $CFG_PETHEAL_REZKEY_KEY = $NAME & "--" & "ResPetKey"

Global $CFG_LOOT_ROOT_KEY = "Loot", $CFG_LOOT_FLAG_KEY = $NAME & "--" & "LootFlag", $CFG_LOOTHERBS_FLAG_KEY = $NAME & "--" & "LootHerbsFlag", $CFG_LOOTRESOURCES_FLAG_KEY = $NAME & "--" & "LootResourcesFlag", $CFG_LOOT_TIMES_KEY = $NAME & "--" & "Times", $CFG_LOOT_KEY = $NAME & "--" & "LootKey"

Global $CFG_RAIL_ROOT_KEY = "Rails", $CFG_RAIL_UBOUND_KEY = $NAME & "--" & "RailUbound", $CFG_RAIL_APOTHOCARYID_KEY = $NAME & "--" & "ApothocaryID", $CFG_RAIL_X_KEY = $NAME & "--" & "RailX", $CFG_RAIL_Z_KEY = $NAME & "--" & "RailZ", $CFG_RAIL_Y_KEY = $NAME & "--" & "RailY"

Global $ATTACK_RAD = "0", $TARDIS = "0", $LASTTARDIS = "0", $TARHOMEDIS = "0", $HOME_X = IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEX_KEY, "Float"), $HOME_Y = IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEY_KEY, "Float"), $HOME_Z = IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEZ_KEY, "Float")

$DEFAULT_BROWSER_PATH = RegRead("HKCR\" & RegRead("HKCR\.html", "") & "\shell\open\command", "")

If StringLeft($DEFAULT_BROWSER_PATH, 1) = '"' Then

$DEFAULT_BROWSER_PATH = StringRegExpReplace($DEFAULT_BROWSER_PATH, '\A"+|".*\z', "")

Else

$DEFAULT_BROWSER_PATH = StringRegExpReplace($DEFAULT_BROWSER_PATH, "\A\s+|\s.*\z", "")

EndIf

Global $LAST_START_X = 0

Global $LAST_START_Y = 0

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_X, "") <> -32000 Then

$LAST_START_X = IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_X, "")

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_Y, "") <> -32000 Then

$LAST_START_Y = IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_Y, "")

EndIf

$PROPHETBOT = GUICreate($SOFTWARE_TITLE, 251, 601, $LAST_START_X, $LAST_START_Y)

GUISetState()

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowCloseClicked")

TraySetIcon("ProphetBot.ico")

GUISetIcon("ProphetBot.ico")

$MENUITEM1 = GUICtrlCreateMenu("&File")

$MENUITEM4 = GUICtrlCreateMenuItem("Start", $MENUITEM1)

GUICtrlSetOnEvent(-1, "StartOrStop")

$MENUITEM5 = GUICtrlCreateMenuItem("Exit", $MENUITEM1)

GUICtrlSetOnEvent(-1, "WindowCloseClicked")

$MENUITEM2 = GUICtrlCreateMenu("&Options")

$MENUITEM7 = GUICtrlCreateMenuItem("Skills", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetSkills")

$MENUITEM6 = GUICtrlCreateMenuItem("Buffs", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetAutoBuffs")

$MENUITEM8 = GUICtrlCreateMenuItem("Life Support", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetLifeSupport")

$MENUITEM10 = GUICtrlCreateMenuItem("Pet Support", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetPetSupport")

$MENUITEM9 = GUICtrlCreateMenuItem("Fly 2 Escape", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetFlyEscape")

$MENUITEM11 = GUICtrlCreateMenuItem("Rotate Weapons", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetChangeWeapons")

$MENUITEM12 = GUICtrlCreateMenuItem("Target List", $MENUITEM2)

GUICtrlSetOnEvent(-1, "Set_MobList")

$MENUITEM3 = GUICtrlCreateMenu("Help")

GUISetFont(8, 800, 0, "MS Sans Serif")

GUISetBkColor(65280)

Global $MENUITEM13 = GUICtrlCreateMenuItem("Online Support", $MENUITEM3)

GUICtrlSetOnEvent(-1, "OnlineSupport")

Global $MENUITEM14 = GUICtrlCreateMenuItem("About Prophet Bot", $MENUITEM3)

GUICtrlSetOnEvent(-1, "Set_AboutProphet")

$BOTSTATUS = GUICtrlCreateGroup("BOT Status", 0, 0, 250, 51, -1, $WS_EX_TRANSPARENT)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($BOTSTATUS), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

GUICtrlCreateGroup("Bot Status", -99, -99, 1, 1)

GUICtrlSetTip(-1, "Bot Status")

$BUTTON_START = GUICtrlCreateButton("Start", 5, 15, 60, 30)

GUICtrlSetOnEvent(-1, "StartOrStop")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$LABEL_BOT_STATUS = GUICtrlCreateLabel("BOT Status: Stopped", 75, 14, 155, 15)

GUICtrlSetColor(-1, 0)

$LABEL_GENERAL_STATUS = GUICtrlCreateLabel("Action: Nothing", 75, 31, 200, 15)

GUICtrlSetColor(-1, 0)

$CHARINFO = GUICtrlCreateGroup("Character Info", 0, 51, 250, 132)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHARINFO), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

$LABENAME = GUICtrlCreateLabel("Name:", 12, 67, 35, 17)

GUICtrlSetColor(-1, 0)

$LABEL_NAME = GUICtrlCreateLabel("None", 50, 67, 150, 17)

GUICtrlSetColor(-1, 0)

$LABELLVL = GUICtrlCreateLabel("Level:", 13, 81, 35, 17)

GUICtrlSetColor(-1, 0)

$LABEL_LVL = GUICtrlCreateLabel("0", 52, 81, 40, 17)

GUICtrlSetColor(-1, 0)

$LABELCLASS = GUICtrlCreateLabel("Class:", 98, 81, 34, 18)

GUICtrlSetColor(-1, 0)

$LABEL_CLASS = GUICtrlCreateLabel("None", 134, 81, 110, 18)

GUICtrlSetColor(-1, 0)

$LABELHP = GUICtrlCreateLabel("HP:", 9, 100, 22, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABELHP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 65280)

$PERC_HP = GUICtrlCreateProgress(32, 98, 120, 17, $PBS_SMOOTH)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($PERC_HP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 16757685)

$LABEL_HP = GUICtrlCreateLabel("0/0", 32, 98, 120, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))

GUICtrlSetFont(-1, 7, 10000, 0, "Arial")

GUICtrlSetBkColor(-1, -2)

$LABELMP = GUICtrlCreateLabel("MP:", 8, 120, 23, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABELMP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 3289855)

GUICtrlSetBkColor(-1, 65280)

$PERC_MP = GUICtrlCreateProgress(32, 118, 120, 17, $PBS_SMOOTH)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($PERC_MP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 3289855)

GUICtrlSetBkColor(-1, 10066431)

$LABEL_MP = GUICtrlCreateLabel("0/0", 32, 118, 120, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))

GUICtrlSetFont(-1, 7, 10000, 0, "Arial")

GUICtrlSetBkColor(-1, -2)

$LABELEXP = GUICtrlCreateLabel("Exp:", 5, 138, 25, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABELEXP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 8388736)

GUICtrlSetBkColor(-1, 65280)

$PERC_EXP = GUICtrlCreateProgress(32, 138, 120, 17, $PBS_SMOOTH)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($PERC_EXP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 16711935)

GUICtrlSetBkColor(-1, 14196939)

$LABEL_EXP = GUICtrlCreateLabel("0/0", 32, 138, 120, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))

GUICtrlSetFont(-1, 7, 10000, 0, "Arial")

GUICtrlSetBkColor(-1, -2)

$LABELSTR = GUICtrlCreateLabel("Str:", 166, 97, 20, 17)

GUICtrlSetColor(-1, 0)

$LABEL_STR = GUICtrlCreateLabel("00", 186, 97, 60, 17)

GUICtrlSetColor(-1, 0)

$LABELDEX = GUICtrlCreateLabel("Dex:", 159, 113, 26, 17)

GUICtrlSetColor(-1, 0)

$LABEL_DEX = GUICtrlCreateLabel("00", 186, 113, 60, 17)

GUICtrlSetColor(-1, 0)

$LABELVIT = GUICtrlCreateLabel("Vit:", 167, 129, 19, 17)

GUICtrlSetColor(-1, 0)

$LABEL_VIT = GUICtrlCreateLabel("00", 186, 129, 60, 17)

GUICtrlSetColor(-1, 0)

$LABELMAG = GUICtrlCreateLabel("Mag:", 157, 145, 28, 17)

GUICtrlSetColor(-1, 0)

$LABEL_MAG = GUICtrlCreateLabel("00", 186, 145, 60, 17)

GUICtrlSetColor(-1, 0)

$LABELXYZ = GUICtrlCreateLabel("XYZ:", 5, 160, 26, 17, $SS_CENTERIMAGE)

GUICtrlSetColor(-1, 0)

$LABEL_XYZ = GUICtrlCreateLabel("000.0/000.0/000.0", 31, 160, 125, 17, $SS_CENTERIMAGE)

GUICtrlSetColor(-1, 0)

$LABESPIRIT = GUICtrlCreateLabel("Spirit:", 153, 160, 31, 18, $SS_CENTERIMAGE)

GUICtrlSetColor(-1, 0)

$LABEL_SPIRIT = GUICtrlCreateLabel("0", 186, 160, 60, 18, $SS_CENTERIMAGE)

GUICtrlSetColor(-1, 0)

$TARINFO = GUICtrlCreateGroup("Target Info", 0, 184, 250, 75)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($TARINFO), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

$LABELTARNAME = GUICtrlCreateLabel("Name:", 12, 200, 35, 17)

GUICtrlSetColor(-1, 0)

$LABEL_TARNAME = GUICtrlCreateLabel("None", 50, 200, 195, 17)

GUICtrlSetColor(-1, 0)

$LABELTARDIST = GUICtrlCreateLabel("Dist:", 22, 213, 35, 17)

GUICtrlSetColor(-1, 0)

$LABEL_TARDIST = GUICtrlCreateLabel("0", 52, 213, 40, 17)

GUICtrlSetColor(-1, 0)

$LABELTARSPEC = GUICtrlCreateLabel("Spec:", 98, 213, 34, 18)

GUICtrlSetColor(-1, 0)

$LABEL_TARSPEC = GUICtrlCreateLabel("None", 134, 213, 114, 18)

GUICtrlSetColor(-1, 0)

$LABELTARHP = GUICtrlCreateLabel("HP:", 9, 232, 22, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABELHP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 65280)

$PERC_TARHP = GUICtrlCreateProgress(32, 231, 120, 17, $PBS_SMOOTH)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($PERC_TARHP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 16757685)

$LABEL_TARHP = GUICtrlCreateLabel("0/0", 32, 231, 120, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))

GUICtrlSetFont(-1, 7, 10000, 0, "Arial")

GUICtrlSetBkColor(-1, -2)

$HUNTOPTS = GUICtrlCreateGroup("Hunting Options", 0, 263, 250, 80)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($HUNTOPTS), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

$CHK_ANTIKS = GUICtrlCreateCheckbox("AntiKS", 5, 278, 105, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHK_ANTIKS), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_AKS_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

$CHK_HBN = GUICtrlCreateCheckbox("Hunt By Name", 5, 298, 105, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHK_HBN), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 3289855)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HBN_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

$CHK_FZ = GUICtrlCreateCheckbox("Unfreeze", 5, 318, 105, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHK_FZ), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 8388736)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_FREEZE_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

$TAR_RAD = GUICtrlCreateGroup("Target Radius", 112, 271, 131, 65)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($TAR_RAD), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 16776960)

$BTN_SETRAD = GUICtrlCreateButton("Set", 203, 289, 35, 21, $WS_GROUP)

GUICtrlSetOnEvent(-1, "SETHOMEXYZ")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$INPT_RAD = GUICtrlCreateInput("", 166, 289, 33, 21)

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") <> "0" Then

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0"))

Else

GUICtrlSetData(-1, "0")

EndIf

$LABEL_RADIUS = GUICtrlCreateLabel("Radius:", 118, 292, 47, 17)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 0)

$LABEL_RADCENTER = GUICtrlCreateLabel("0 = No Limit", 114, 315, 127, 17, $SS_CENTER)

GUICtrlSetColor(-1, 0)

$HISTORY = GUICtrlCreateGroup("Battle History", 0, 345, 250, 203)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($HISTORY), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

$LOG = GUICtrlCreateEdit("", 5, 362, 240, 185, BitOR($ES_CENTER, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN), 0)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LOG), "wstr", 0, "wstr", 0)

GUISetState(@SW_SHOW)

$LABELGOLD = GUICtrlCreateLabel("Gold:", 5, 557, 29, 18, $SS_CENTERIMAGE)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABELGOLD), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 16776960)

$LABEL_GOLD = GUICtrlCreateLabel("0", 37, 557, 70, 18, $SS_CENTERIMAGE)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABEL_GOLD), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 16776960)

$BTN_DONATE = GUICtrlCreateButton("Duvida", 172, 554, 74, 21, $BS_BITMAP, $WS_GROUP)

GUICtrlSetImage($BTN_DONATE, @ScriptDir & "\Donate.bmp", -1)

GUICtrlSetOnEvent(-1, "Donate")

Global $FLYUPTIMER = TimerInit() + 750, $CHATTIMER = TimerInit() + 100, $PLAYERARRAYTIMER = TimerInit() + 750, $NPCARRAYTIMER = TimerInit() + 750, $PETSUPPORTTIMER = TimerInit() + 750, $GATHERARRAYTIMER = TimerInit() + 7500, $ITEMARRAYTIMER = TimerInit() + 7500, $TIMER_FEED_PET = TimerInit() + 65000, $MPTIMER = TimerInit() + 18000, $HPTIMER = TimerInit() + 1000, $HP2TIMER = TimerInit() + 1000

SITUATIONALAWARENESS()

BUILDITEMARRAY()

If Not $NAME <> "" Then

ADDHISTORY("[[[searching For Character]]]")

Do

SITUATIONALAWARENESS()

Sleep(10)

Until $NAME <> ""

ADDHISTORY("[[[Character Found]]]")

EndIf

ADDHISTORY(@CRLF & "Afford 1.0" & @CRLF & @HOUR & ":" & @MIN & ":" & @SEC & " | " & @MON & "/" & @MDAY & "/" & @YEAR & @CRLF & "Todos os Creditos:" & @CRLF & "Afford" & @CRLF & "" & @CRLF & "" & @CRLF & "" & @CRLF & "" & @CRLF & "" & @CRLF & "" & @CRLF & "" & @CRLF & "")

Sleep(20)

RENAMEWINDOW()

Sleep(20)

While (1)

MAIN()

WEnd

 

Func MAIN()

If $STOP = False Then

If $HP > 0 Then

SITUATIONALAWARENESS()

FLYMODE()

HPMPAUTOPOTCHECK()

PETSUPPORT()

Else

STOPCHECK()

EndIf

STOPCHECK()

If TimerDiff($TIMER_APOTHOCARY_RAIL) / (60000 * 60) > IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_TIMER_KEY, "1") And IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_RAIL_KEY, "1") = 1 And $HP > 0 Then

ADDHISTORY("Returning to apothocary for repairs")

Sleep(20)

If $CHARSTATE <> 16 Then

If IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_FLAG_KEY, 0) = 1 And $HP <> 0 And IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, "0") <> 1 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "")))

Sleep(20)

EndIf

EndIf

RUNAPOTHOCARYRAIL()

Sleep(20)

If $CHARSTATE = 16 And IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, "0") = 4 Then

If IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_FLAG_KEY, 0) = 1 And $HP <> 0 And IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, "0") <> 1 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "")))

Sleep(20)

EndIf

EndIf

EndIf

STOPCHECK()

If GUICtrlRead($LABEL_BOT_STATUS) <> "BOT Status: Started" Then

GUICtrlSetData($LABEL_BOT_STATUS, "BOT Status: Started")

EndIf

If $HP > 0 Then

HPMPAUTOPOTCHECK()

PETSUPPORT()

EndIf

If $HP > 0 Then

SELECTTARGET()

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTHERBS_FLAG_KEY, "0") = 1 Or IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTRESOURCES_FLAG_KEY, "0") = 1 Then

Do

Sleep(10)

SITUATIONALAWARENESS()

If $HP > 0 Then

$GATHERING = 0

If $CHARSTATE = 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

HPMPAUTOPOTCHECK()

FINDHERBSRESOURCES()

EndIf

Until $GATHERING = 0 Or $HP = 0

EndIf

If $HADTARGET = 1 And $HP > 0 Then

$HADTARGET = 0

$ATHOME = 0

ElseIf $HP > 0 And $ATHOME = 0 Then

ADDHISTORY("Moving Back To HomeXYZ")

$MOVEING = 1

MOVETOXYZ($HOME_X, $HOME_Y, $HOME_Z, $HOME_Z / 10)

If $TAR <> 0 Then

ADDHISTORY("Defending During Movement")

$TARGET = $TAR

KILLTARGET()

$HADTARGET = 1

$KILL = 0

$ATHOME = 0

Else

$HADTARGET = 0

$ATHOME = 1

EndIf

Sleep(20)

EndIf

HPMPAUTOPOTCHECK()

If $TAR <> 0 And $HP > 0 Then

ADDHISTORY("Defending")

$TARGET = $TAR

KILLTARGET()

$KILL = 0

$HADTARGET = 1

$ATHOME = 0

EndIf

If $HP = 0 Then

STOPCHECK()

EndIf

Sleep(10)

Else

If GUICtrlRead($LABEL_BOT_STATUS) <> "BOT Status: Stopped" Then

GUICtrlSetData($LABEL_BOT_STATUS, "BOT Status: Stopped")

EndIf

$ACTIVE_WEAPONS = 0

$TIMER_CHANGE_WEAPON = TimerInit()

GETPETSTATE()

SITUATIONALAWARENESS()

PETSUPPORT()

HPMPAUTOPOTCHECK()

Sleep(10)

EndIf

EndFunc

 

 

Func BUILDCHATARRAY()

Local $ARRAY[1][2], $POINTER, $ITEM_BASE, $COUNTER, $LASTCHATPOINTER, $LASTMSG

$LASTCHATPOINTER = _MEMORYREAD($LASTCHAT, $PROCESS_INFORMATION)

$LASTMSG = ($LASTCHATPOINTER - 10)

For $I = $LASTMSG To $LASTCHATPOINTER - 1

$POINTER = _MEMORYREAD($CHAT, $PROCESS_INFORMATION)

ReDim $ARRAY[$COUNTER + 1][2]

$ARRAY[$COUNTER][0] = _MEMORYREAD($POINTER + $I * Dec("1c") + 4, $PROCESS_INFORMATION, "Byte")

$ARRAY[$COUNTER][1] = _MEMORYREAD(_MEMORYREAD($POINTER + $I * Dec("1c") + 8, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[100]")

If $ARRAY[$COUNTER][0] = 4 Then

ADDHISTORY($ARRAY[$COUNTER][1])

$WHISPER = 1

Sleep(10)

EndIf

$COUNTER += 1

Next

Global $CHATARRAY = $ARRAY

Sleep(1)

EndFunc

 

 

Func POTONE()

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_FLAG_KEY, 0) = 1 And TimerDiff($HPTIMER) > IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_TIMER, "1") * 1000 Then

If GUICtrlRead($PERC_HP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_PERC_KEY, 1)) Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_KEY, 0)))

Sleep(10)

$HPTIMER = TimerInit()

EndIf

EndIf

EndFunc

 

 

Func PETDEF()

SITUATIONALAWARENESS()

If $TAR > 0 Then

$TARGET = $TAR

$HADTARGET = 1

KILLTARGET()

$KILL = 0

Sleep(10)

EndIf

Do

$KILL = 0

BUILDNPCARRAY()

HPMPAUTOPOTCHECK()

AUTOBUFFSCHECK()

RESETSKILLDELAYS()

CHANGEWEAPONSCHECK()

Local $TEMPNPCARRAY, $TEMPNPCARRAYCOUNT, $COUNTER, $COUNTERMONNAME, $COUNTERMONID, $TEMPTAR, $TEMPTARDIS

$TEMPNPCARRAY = $NPCARRAY

$TEMPNPCARRAYSIZE = UBound($TEMPNPCARRAY)

For $N = 0 To $TEMPNPCARRAYSIZE - 1

$TEMPTAR = 0

If $TEMPNPCARRAY[$N][12] = $PETID[1] And $PETID[1] > 0 Then

$TEMPTAR = $TEMPNPCARRAY[$N][0]

SELECTTARID($TEMPTAR)

$ST = TimerInit()

Do

Sleep(10)

SITUATIONALAWARENESS()

$TIMER = TimerDiff($ST)

Until $TARMAXHP <> 0 Or $TIMER > 2000 Or $HP = 0

If $TAR > 0 Then

$TARGET = $TAR

$HADTARGET = 1

KILLTARGET()

$KILL = 1

Sleep(10)

EndIf

Else

$KILL = 0

EndIf

Next

Until $KILL = 0 Or $HP = 0

EndFunc

 

 

Func SELECTTARGET()

$KILL = 0

BUILDNPCARRAY()

HPMPAUTOPOTCHECK()

AUTOBUFFSCHECK()

RESETSKILLDELAYS()

CHANGEWEAPONSCHECK()

Local $TEMPNPCARRAY, $TEMPNPCARRAYCOUNT, $COUNTER, $COUNTERMONNAME, $COUNTERMONID, $TEMPTAR, $TEMPTARDIS

$TEMPNPCARRAY = $NPCARRAY

$TEMPNPCARRAYSIZE = UBound($TEMPNPCARRAY)

If GUICtrlRead($LABEL_GENERAL_STATUS) <> "Action: Finding Target" Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Finding Target")

EndIf

PETDEF()

If $KILL = 0 Then

For $N = 0 To $TEMPNPCARRAYSIZE - 1

$TEMPTAR = 0

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HBN_KEY, "0") = 1 Then

For $C = 0 To IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1)

If $TEMPNPCARRAY[$N][1] = IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTERNAME_KEY & $C, "") Then

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") > 0 And $TEMPNPCARRAY[$N][11] > IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") Then

ExitLoop

Else

$TEMPTAR = $TEMPNPCARRAY[$N][0]

ExitLoop

EndIf

EndIf

Next

Else

For $C = 0 To IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1)

If $TEMPNPCARRAY[$N][0] = IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTER_KEY & $C, "") Then

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") > 0 And $TEMPNPCARRAY[$N][11] > IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") Then

ExitLoop

Else

$TEMPTAR = $TEMPNPCARRAY[$N][0]

ExitLoop

EndIf

EndIf

Next

EndIf

If $TEMPTAR <> 0 Then

SELECTTARID($TEMPTAR)

Sleep(5)

$ST = TimerInit()

Do

SITUATIONALAWARENESS()

Sleep(2)

$TIMER = TimerDiff($ST)

Until $TARMAXHP <> 0 Or $TIMER > 1500 Or $HP = 0

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_AKS_KEY, "0") = 1 And $TARHP = $TARMAXHP Then

$TARGET = $TAR

$HADTARGET = 1

KILLTARGET()

ExitLoop

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_AKS_KEY, "0") <> 1 Then

$TARGET = $TAR

$HADTARGET = 1

KILLTARGET()

If $FLYTOESCAPE = 1 Then

$FLYTOESCAPE = 0

EndIf

ExitLoop

EndIf

EndIf

Next

EndIf

$KILL = 0

EndFunc

 

 

Func FLYMODE()

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, "0") = 1 Then

If $CHARSTATE <> 16 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "")))

Sleep(20)

EndIf

EndIf

EndFunc

 

 

Func CHANGEWEAPONSCHECK()

If IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_FLAG_KEY, "0") = 1 Then

If TimerDiff($TIMER_CHANGE_WEAPON) / 60000 > IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_DELAY_KEY, "180") Then

$ACTIVE_WEAPONS = $ACTIVE_WEAPONS + 1

If $ACTIVE_WEAPONS <= IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_UBOUND_KEY, "1") Then

$KEY_WEAPON = IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $ACTIVE_WEAPONS, "")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $ACTIVE_WEAPONS, "")))

$TIMER_CHANGE_WEAPON = TimerInit()

Else

$TIMER_CHANGE_WEAPON = TimerInit()

EndIf

EndIf

EndIf

EndFunc

 

 

Func FLYESCAPECHECK()

Local $POTENTIAL_DAMAGE = $MAXHP - $HP, $LASTELEVATION

If IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_FLAG_KEY, 0) = 1 And $HP <> 0 Then

If $POTENTIAL_DAMAGE > IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_DAMAGE_KEY, $MAXHP) Then

$FLYTOESCAPE = 1

$LASTELEVATION = $Z / 10

ADDHISTORY("Flying To Escape")

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Flying To Escape")

If $CHARSTATE <> 16 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "")))

Sleep(10)

EndIf

Local $FLYTIMER = TimerInit()

Do

Sleep(10)

SITUATIONALAWARENESS()

If $TAR > 0 Then

Sleep(1)

DESELECTTARGET()

EndIf

FLYUPVERTICAL()

Sleep(5)

Until $Z / 10 >= IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_SPACE_KEY, 10) Or $HP = 0 Or TimerDiff($FLYTIMER) > 20000

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $X, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $Y, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $Z, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE2, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

Sleep(20)

Do

Sleep(10)

SITUATIONALAWARENESS()

HPMPAUTOPOTCHECK()

Until GUICtrlRead($PERC_HP) > 98 Or $HP = 0

ADDHISTORY("Going Back From Escape")

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Going Back")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "")))

Sleep(50)

GETPETSTATE()

EndIf

EndIf

EndFunc

 

 

Func HPMPRESTORECHECK()

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_KEY, 0) = 1 Then

If GUICtrlRead($PERC_HP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_PERC_KEY, 1)) Then

Sleep(1)

RESTORECHARSTATE(1)

EndIf

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_KEY, 0) = 1 Then

If GUICtrlRead($PERC_MP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_PERC_KEY, 1)) Then

Sleep(1)

RESTORECHARSTATE(2)

EndIf

EndIf

EndFunc

 

 

Func AUTOBUFFSCHECK()

If IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FLAG_KEY, "0") = 1 Then

For $Q = 1 To IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, "1") Step +1

$BUFFS_TIMER_DIFF[$Q] = TimerDiff($BUFFS_TIMER[$Q])

Next

For $Q = 1 To IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, "1") Step +1

If $BUFFS_TIMER_DIFF[$Q] / 60000 > IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FREQUENCY_KEY & $Q, "1") And $CASTING = 0 Then

If $TAR > 0 Then

Sleep(1)

DESELECTTARGET()

Sleep(5)

EndIf

ADDHISTORY("Buffing Myself")

Sleep(1)

SENDBUFF($Q)

Local $TT = TimerInit()

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $CASTING > 0 Or TimerDiff($TT) > 2500 Or $HP = 0

$BUFFS_TIMER[$Q] = TimerInit()

EndIf

Next

EndIf

EndFunc

 

 

Func HPMPAUTOPOTCHECK()

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_FLAG_KEY, 0) = 1 And TimerDiff($HPTIMER) > IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_TIMER, "1") * 1000 Then

If GUICtrlRead($PERC_HP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_PERC_KEY, 1)) Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_KEY, 0)))

Sleep(10)

$HPTIMER = TimerInit()

EndIf

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_FLAG_KEY, 0) = 1 And TimerDiff($HP2TIMER) > IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_TIMER, "1") * 1000 And $REST = 0 Then

If GUICtrlRead($PERC_HP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_PERC_KEY, 1)) Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_KEY, 0)))

Sleep(10)

$HP2TIMER = TimerInit()

EndIf

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_FLAG_KEY, 0) = 1 And TimerDiff($MPTIMER) > 16000 Then

If GUICtrlRead($PERC_MP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_PERC_KEY, 1)) Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_KEY, 0)))

Sleep(10)

$MPTIMER = TimerInit()

EndIf

EndIf

EndFunc

 

 

Func FINDHERBSRESOURCES()

Sleep(1)

BUILDITEMARRAY()

Local $ARRAY[1][8], $ARRAYSIZE, $POINTER, $ITEM_BASE, $COUNTER, $COUNTERHERBS, $COUNTERRESOURCES, $TEMPLASTTARX[3], $TEMPLASTTARY[3], $TEMPLASTTARZ[3]

$TEMPITEMARRAY = $ITEMARRAY

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTHERBS_FLAG_KEY, "0") = 1 Or IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTRESOURCES_FLAG_KEY, "0") = 1 Then

If GUICtrlRead($LABEL_GENERAL_STATUS) <> "Action: Finding Gatherables" Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Finding Gatherables")

EndIf

For $H = 0 To UBound($TEMPITEMARRAY) - 1

$GATHERTARGET = 0

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTHERBS_FLAG_KEY, "0") = 1 Then

For $I = 0 To UBound($HERBS) - 1

If $TEMPITEMARRAY[$H][2] = $HERBS[$I] And $LASTGATHERED <> $TEMPITEMARRAY[$H][0] Then

$GATHERTARGET = $TEMPITEMARRAY[$H][0]

$GATHERTARGETNAME = $HERBS[$I]

$GATHERTARGETDIS = $TEMPITEMARRAY[$H][6]

$GATHERTARGETHOMEDIS = $TEMPITEMARRAY[$H][7]

$TEMPLASTTARX[2] = $TEMPITEMARRAY[$H][3]

$TEMPLASTTARX[1] = Round(($TEMPITEMARRAY[$H][3] + 4000) / 10, 2)

$TEMPLASTTARY[2] = $TEMPITEMARRAY[$H][4]

$TEMPLASTTARY[1] = Round(($TEMPITEMARRAY[$H][4] + 5500) / 10, 2)

$TEMPLASTTARZ[2] = $TEMPITEMARRAY[$H][5]

$TEMPLASTTARZ[1] = Round(($TEMPITEMARRAY[$H][5]) / 10, 2)

ExitLoop

EndIf

Next

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTRESOURCES_FLAG_KEY, "0") = 1 Then

For $I = 0 To UBound($RESOURCES) - 1

If $TEMPITEMARRAY[$H][2] = $RESOURCES[$I] And $LASTGATHERED <> $TEMPITEMARRAY[$H][0] Then

$GATHERTARGET = $TEMPITEMARRAY[$H][0]

$GATHERTARGETNAME = $RESOURCES[$I]

$GATHERTARGETDIS = $TEMPITEMARRAY[$H][6]

$GATHERTARGETHOMEDIS = $TEMPITEMARRAY[$H][7]

$TEMPLASTTARX[2] = $TEMPITEMARRAY[$H][3]

$TEMPLASTTARX[1] = Round(($TEMPITEMARRAY[$H][3] + 4000) / 10, 2)

$TEMPLASTTARY[2] = $TEMPITEMARRAY[$H][4]

$TEMPLASTTARY[1] = Round(($TEMPITEMARRAY[$H][4] + 5500) / 10, 2)

$TEMPLASTTARZ[2] = $TEMPITEMARRAY[$H][5]

$TEMPLASTTARZ[1] = Round(($TEMPITEMARRAY[$H][5]) / 10, 2)

ExitLoop

EndIf

Next

EndIf

If $GATHERTARGET <> 0 And $LASTGATHERED <> $GATHERTARGET Then

If $GATHERTARGETDIS < IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") And $GATHERTARGETHOMEDIS < IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Collecting Gatherable")

ADDHISTORY("Gathering " & $GATHERTARGETNAME)

$MOVEING = 1

GRABHERBRESOURCE($GATHERTARGET)

$GATHERING = 0

Return MAIN()

EndIf

Else

EndIf

Next

EndIf

$GATHERING = 0

Return $ARRAY

EndFunc

 

 

Func PETSUPPORT()

If IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_CHECK_KEY, "0") = "1" Then

Sleep(1)

GETPETHEALTH()

Sleep(1)

GETPETHUNGER()

If $PETHP < IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HP_KEY, "0") And $PETHP > 0 Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Healing Pet")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HEALKEY_KEY, "")))

Sleep(20)

EndIf

If $PETHUNGER > 0 And TimerDiff($TIMER_FEED_PET) > 60100 And $PETHP > 0 Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Feeding Pet")

Sleep(5)

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_FEEDKEY_KEY, "")))

$TIMER_FEED_PET = TimerInit()

Sleep(5)

EndIf

EndIf

$PETSUPPORTTIMER = TimerInit()

EndFunc

 

 

Func FLYUPVERTICAL()

If TimerDiff($FLYUPTIMER) > 500 And $HP > 0 Then

Local $NEWX, $NEWY, $NEWZ, $FLYSPEED, $SPEED, $DIRECTION, $MOVETYPE, $COUNTER, $TIME, $PACKET, $PACKETSIZE

$FLYSPEED = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_FLYSPEED, $PROCESS_INFORMATION, "Float")

$NEWX = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_X, $PROCESS_INFORMATION, "Float")

$NEWY = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Z, $PROCESS_INFORMATION, "Float") + ($FLYSPEED * 0.5)

$NEWZ = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Y, $PROCESS_INFORMATION, "Float")

$SPEED = Floor(($FLYSPEED * 256) + 0.5)

$DIRECTION = 0

$MOVETYPE = 97

$COUNTER = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_FLYCOUNTER, $PROCESS_INFORMATION, "UShort")

$TIME = 500

$PACKET = "0700"

$PACKET &= _HEX($NEWX, 8, "float")

$PACKET &= _HEX($NEWY, 8, "float")

$PACKET &= _HEX($NEWZ, 8, "float")

$PACKET &= _HEX($SPEED, 4)

$PACKET &= _HEX($DIRECTION, 2)

$PACKET &= _HEX(97, 2)

$PACKET &= _HEX($COUNTER, 4)

$PACKET &= _HEX($TIME, 4)

$PACKETSIZE = 22

_MEMORYWRITE($CHAR_DATA_BASE + 2304, $PROCESS_INFORMATION, $COUNTER + 1, "UShort")

_MEMORYWRITE($CHAR_DATA_BASE + 64, $PROCESS_INFORMATION, $NEWY, "Float")

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

$FLYUPTIMER = TimerInit()

Sleep(1)

_MEMORYWRITE($CHAR_DATA_BASE + $OFFSET_Z, $PROCESS_INFORMATION, $NEWY, "Float")

EndIf

EndFunc

 

 

Func FLYUPANGLE($MOVETOX, $MOVETOY, $MOVETOZ)

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

Local $FLAG = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG)

ADDHISTORY("FLYING " & $FLAG[1])

ADDHISTORY("MOVE " & $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, "966.302795410156", "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, "4159.5380859375", "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, "219.026138305664", "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHT, "66", "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG, $FLAG[1] + 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG2, "0")

EndFunc

 

 

Func GRABHERBRESOURCE($RESOURCEID)

If $HP > 0 Then

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD2)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFINISHED, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSTART, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONNOTSTART, 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONOBJECT, $RESOURCEID)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_OBJECTACTION, 4)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSETERROR, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSKILL, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

$ACTIONFLAG = 1

$MOVEFLAG = 1

Sleep(2)

$GT = TimerInit()

Do

POTONE()

PETDEF()

Sleep(5)

SITUATIONALAWARENESS()

If $TAR <> 0 Then

$TARGET = $TAR

$HADTARGET = 1

ADDHISTORY("Defending During Gathering")

KILLTARGET()

$KILL = 0

$LASTGATHERED = 0

$GATHERING = 0

$LASTGATHERED = 0

$MOVEFLAG = 0

$ACTIONFLAG = 0

EndIf

$GTIMER = TimerDiff($GT)

Until $ACTIONFLAG = 0 Or $HP = 0 Or $GTIMER > 50000

Local $TS = TimerInit()

Sleep(20)

Do

POTONE()

Sleep(5)

SITUATIONALAWARENESS()

Local $TIMER = TimerDiff($TS)

Until $ACTIONFLAG <> 0 Or $TIMER > 5000 Or $HP = 0

Do

POTONE()

Sleep(5)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0 Or $GTIMER > 50000

$LASTGATHERED = $RESOURCEID

EndIf

PETDEF()

EndFunc

 

 

Func MOVETOXYZ($MOVETOX, $MOVETOY, $MOVETOZ, $HIGHT)

$KILL = 0

If $MOVEMODE = 1 And $HP > 0 Or $MOVEMODE = 2 And $HP > 0 Then

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

Local $FLAG = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $MOVETOX, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $MOVETOY, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $MOVETOZ, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHT, $HIGHT, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG, $FLAG[1] + 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG2, "0")

Else

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $MOVETOX, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $MOVETOZ, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $MOVETOY, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE2, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

EndIf

$ACTIONFLAG = 1

Do

Sleep(10)

POTONE()

SITUATIONALAWARENESS()

If $TAR <> 0 Then

$KILL = 1

EndIf

Until $LASTTARDIS < $DISTANCE Or $ACTIONFLAG = 0 Or $KILL = 1 Or $HP = 0

$MOVEING = 0

EndFunc

 

 

Func DASHTOXYZ($MOVETOX, $MOVETOY, $MOVETOZ, $HIGHT)

$MOVEING = 1

Do

Sleep(10)

SITUATIONALAWARENESS()

Sleep(2)

Until $ACTIONFLAG = 0 Or $HP = 0 Or $TAR <> 0

If $HP > 0 Then

If $MOVEMODE = 1 Or $MOVEMODE = 2 And $HP > 0 Then

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

Local $FLAG = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $MOVETOX, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $MOVETOY, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $MOVETOZ, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHT, $HIGHT, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG, $FLAG[1] + 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG2, "0")

Else

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $MOVETOX, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $MOVETOZ, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $MOVETOY, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE2, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

EndIf

EndIf

Sleep(10)

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $TARDIS < 20 Or $ACTIONFLAG = 0 Or $HP = 0

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $X + 1, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $Z, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $Y, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE2, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0

$MOVEING = 0

EndFunc

 

 

Func TALKTONPC($NPCID)

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD2)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFINISHED, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSTART, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONNOTSTART, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONOBJECT, $NPCID)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_OBJECTACTION, "2")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSETERROR, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSKILL, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

EndFunc

 

 

Func SENDBUFF($BUFF_SEQ)

$KEY = IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $BUFF_SEQ, "0")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $BUFF_SEQ, "0")))

Sleep(Int(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_DELAY_KEY & $BUFF_SEQ, "0")) * 1000)

EndFunc

 

 

Func TIMERBUFFSSTART()

If IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FLAG_KEY, "0") = 1 Then

For $Q = 1 To IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, "1") Step +1

$BUFFS_TIMER[$Q] = TimerInit()

Next

EndIf

EndFunc

 

 

Func KILLTARGET()

If $CHARSTATE = 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

Local $ACTIVE_SKILL = 0

Local $LASTSPIRIT = $SPIRIT

Local $TS = TimerInit()

Local $KEY, $TIMER, $W8, $LOOT, $LOOTTIMES, $TEMPHOMEX, $TEMPHOMEY, $TEMPHOMEZ

If $TARGET <> 0 And $TAR = $TARGET Then

ADDHISTORY("Killing Monster #" & $KILLS_COUNT + 1 & " ID:[" & $TAR & "]")

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Killing Monster #" & $KILLS_COUNT + 1)

If IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETATTACK_CHECK_KEY, "0") = 1 Then

If $TARDIS > 17 And $TARHP = $TARMAXHP Then

$MOVEING = 1

$HIGHT = $LASTTARZ[2] / 10

DASHTOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $HIGHT)

Do

SETPETATTACK($TARGET)

Sleep(5)

SITUATIONALAWARENESS()

$TIMER = TimerDiff($TS)

Until $TARHP < $TARMAXHP Or $TAR = "" Or $TIMER > 10000 Or $HP = 0

Else

Do

SETPETATTACK($TARGET)

Sleep(5)

SITUATIONALAWARENESS()

$TIMER = TimerDiff($TS)

Until $TARHP < $TARMAXHP Or $TAR = "" Or $TIMER > 10000 Or $HP = 0

EndIf

EndIf

Do

Sleep(5)

SITUATIONALAWARENESS()

If $HP > 0 Then

FLYESCAPECHECK()

FLYMODE()

HPMPAUTOPOTCHECK()

GETPETSTATE()

PETSUPPORT()

EndIf

If $CHARSTATE = 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

$W8 = IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_DELAY_KEY & $ACTIVE_SKILL, "1")

If TimerDiff($SKILL_DELAY_CHECK[$ACTIVE_SKILL]) > ($W8 * 1000) And $CASTING = 0 Then

$ACTIVE_SKILL = $ACTIVE_SKILL + 1

If $ACTIVE_SKILL > $SKCOUNTCFG Then

$ACTIVE_SKILL = 1

EndIf

$SKILL_DELAY_CHECK[$ACTIVE_SKILL] = TimerInit()

$KEY = IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $ACTIVE_SKILL, "{F1}")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $ACTIVE_SKILL, "{F1}")))

EndIf

If $TARHP = $TARMAXHP Then

$TIMER = TimerDiff($TS)

If $TIMER > 30000 Then

Sleep(1)

DESELECTTARGET()

EndIf

EndIf

$TIMER = TimerDiff($TS)

Until $TAR = 0 Or $TIMER > 180000 Or $HP = 0

If $HP = 0 Then

EndIf

$TEMPHOMEX = $HOME_X

$TEMPHOMEY = $HOME_Y

$TEMPHOMEZ = $HOME_Z

$HOME_X = $LASTTARX[2]

$HOME_Y = $LASTTARY[2]

$HOME_Z = $LASTTARZ[2]

$LAST_KILLEDTIME = TimerInit()

$SPIRIT = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_SPIRIT, $PROCESS_INFORMATION)

$KILLS_COUNT = $KILLS_COUNT + 1

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, "0") = 1 Then

Sleep(10)

BUILDITEMARRAY()

EndIf

Local $TEMPITEMARRAY, $TEMPITEMARRAYSIZE, $COUNTER, $TEMPITEM, $TEMPITEMDIS

$TEMPITEMARRAY = $ITEMARRAY

$TEMPITEMARRAYSIZE = UBound($TEMPITEMARRAY)

If GUICtrlRead($LABEL_GENERAL_STATUS) <> "Action: Scanning Items" Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Scanning Items")

EndIf

For $N = 0 To $TEMPITEMARRAYSIZE - 1

If $TEMPITEMARRAY[$N][7] < 7 And $TEMPITEMARRAY[$N][7] > 0 Then

$COUNTER = $COUNTER + 1

$HIGHT = $TEMPITEMARRAY[$N][5] / 10

EndIf

Next

If $COUNTER > "" Then

$LOOT = 1

$LOOTTIMES = $COUNTER * 8

EndIf

If $TARDIS > 6 And $LOOT = 1 Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Moveing To Corpse")

Do

Sleep(5)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_MOVE_TO_CORPSE_KEY, "0") = 1 And IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, "0") = 1 Then

$MOVEING = 1

$MTLT = TimerInit()

Do

Sleep(5)

SITUATIONALAWARENESS()

$TIMER = TimerDiff($MTLT)

Until $CASTING = 0 Or $TIMER > 5000 Or $HP = 0

Sleep(1)

MOVETOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $HIGHT)

EndIf

$MOVEING = 0

$LASTGATHERED = 0

EndIf

If $LOOT = 1 And IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, "0") = 1 Then

If $LOOTTIMES = 1 Then

ADDHISTORY("Looting 1 Items")

Else

ADDHISTORY("Looting " & $LOOTTIMES / 8 & " Items")

Sleep(1)

PICKLOOT($LOOTTIMES)

EndIf

EndIf

$HOME_X = $TEMPHOMEX

$HOME_Y = $TEMPHOMEY

$HOME_Z = $TEMPHOMEZ

EndIf

$ATHOME = 0

EndFunc

 

 

Func PICKLOOT($MAX)

$PLT = TimerInit()

Do

Sleep(10)

SITUATIONALAWARENESS()

$TIMER = TimerDiff($PLT)

Until $CASTING = 0 Or $TIMER > 5000 Or $HP = 0

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, "0") = 1 Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Looting")

For $P = $MAX To 1 Step -1

$PKEY = IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_KEY, "0")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_KEY, "0")))

Sleep(2)

Next

If $REST = 1 Then

$REST = 0

Sleep(2)

ElseIf $HP > 0 Then

Sleep(10)

HPMPRESTORECHECK()

EndIf

EndIf

EndFunc

 

 

Func SELECTTARIDD($ID)

Local $PREMOTETHREAD, $VBUFFER, $LOOP, $RESULT, $OPCODE

$PREMOTEMEM = DllCall($KERNEL32, "int", "VirtualAllocEx", "int", $PROCESS_INFORMATION[1], "ptr", 0, "int", 70, "int", 4096, "int", 64)

$OPCODE &= "60"

$OPCODE &= "A1" & _HEX($REALBASEADDRESS)

$OPCODE &= "68" & _HEX($ID)

$OPCODE &= "8B4820"

$OPCODE &= "81C1" & _HEX(236)

$OPCODE &= "E8" & _HEX($SELECT_CALL - $PREMOTEMEM[0] - 5 - StringLen($OPCODE) / 2)

$OPCODE &= "61"

$OPCODE &= "C3"

$VBUFFER = DllStructCreate("byte[" & StringLen($OPCODE) / 2 & "]")

For $LOOP = 1 To DllStructGetSize($VBUFFER)

DllStructSetData($VBUFFER, 1, Dec(StringMid($OPCODE, ($LOOP - 1) * 2 + 1, 2)), $LOOP)

Next

DllCall($KERNEL32, "int", "WriteProcessMemory", "int", $PROCESS_INFORMATION[1], "int", $PREMOTEMEM[0], "int", DllStructGetPtr($VBUFFER), "int", DllStructGetSize($VBUFFER), "int", 0)

$HREMOTETHREAD = DllCall($KERNEL32, "int", "CreateRemoteThread", "int", $PROCESS_INFORMATION[1], "int", 0, "int", 0, "int", $PREMOTEMEM[0], "ptr", 0, "int", 0, "int", 0)

Do

$RESULT = DllCall("kernel32.dll", "int", "WaitForSingleObject", "int", $HREMOTETHREAD[0], "int", 50)

Until $RESULT[0] <> 258

Sleep(25)

DllCall($KERNEL32, "int", "CloseHandle", "int", $HREMOTETHREAD[0])

DllCall($KERNEL32, "ptr", "VirtualFreeEx", "hwnd", $PROCESS_INFORMATION[1], "int", $PREMOTEMEM[0], "int", 0, "int", 32768)

Return True

EndFunc

 

 

Func GETPETSTATE()

$PETNO = IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SLOT_KEY, "0")

If $PETNO = 0 Then

Else

Global $OFFSET_PETSTATE[4]

$OFFSET_PETSTATE[1] = Dec("34")

$OFFSET_PETSTATE[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETBASE, "")

$OFFSET_PETSTATE[3] = 8

Global $PETSTATE = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PETSTATE, "UShort")

$PETSTATE = $PETSTATE[1]

GETPETHEALTH()

If $PETHP = 0 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_REZKEY_KEY, "")))

Sleep(10)

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SUMMONKEY_KEY, "")))

Sleep(10)

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0

Sleep(1)

SETPETFOLLOW()

ElseIf $PETSTATE <> 0 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SUMMONKEY_KEY, "")))

Sleep(10)

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0

Sleep(1)

SETPETFOLLOW()

EndIf

EndIf

EndFunc

 

 

Func GETPETHEALTH()

$PETNO = IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SLOT_KEY, "0")

Global $OFFSET_PETHP[5]

$OFFSET_PETHP[1] = Dec("34")

$OFFSET_PETHP[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETBASE, "")

$OFFSET_PETHP[3] = 16 + (($PETNO - 1) * 4)

$OFFSET_PETHP[4] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETHP, "")

Global $PETHP = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PETHP)

$PETHP = $PETHP[1]

EndFunc

 

 

Func GETPETHUNGER()

$PETNO = IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SLOT_KEY, "0")

Global $OFFSET_PETHUNGER[5]

$OFFSET_PETHUNGER[1] = Dec("34")

$OFFSET_PETHUNGER[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETBASE, "")

$OFFSET_PETHUNGER[3] = 16 + (($PETNO - 1) * 4)

$OFFSET_PETHUNGER[4] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETHUNGER, "")

$PETHUNGER = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PETHUNGER)

$PETHUNGER = $PETHUNGER[1]

EndFunc

 

 

Func RESETSKILLDELAYS()

$SKILL_DELAY_CHECK[1] = TimerInit()

$SKILL_DELAY_CHECK[2] = TimerInit()

$SKILL_DELAY_CHECK[3] = TimerInit()

$SKILL_DELAY_CHECK[4] = TimerInit()

$SKILL_DELAY_CHECK[5] = TimerInit()

$SKILL_DELAY_CHECK[6] = TimerInit()

$SKILL_DELAY_CHECK[7] = TimerInit()

$SKILL_DELAY_CHECK[8] = TimerInit()

$SKILL_DELAY_CHECK[9] = TimerInit()

EndFunc

 

 

Func SELLITEMS()

Sleep(1)

BUILDINVENTORYARRAY()

Local $TEMPINVENTORYARRAY = $INVENTORYARRAY, $TEMPINVENTORYARRAYSIZE = UBound($TEMPINVENTORYARRAY), $BUYLIST, $DONOTSELLLIST, $DONOTSELL

_FILEREADTOARRAY("Afford Config/" & $NAME & "_BuyList.gat", $BUYLIST)

_FILEREADTOARRAY("Afford Config/" & $NAME & "_DoNotSellList.gat", $DONOTSELLLIST)

For $I = 1 To UBound($BUYLIST) - 1

ReDim $DONOTSELLLIST[uBound($DONOTSELLLIST) + 1]

$DONOTSELLLIST[uBound($DONOTSELLLIST) - 1] = $BUYLIST[$I]

Next

For $I = 0 To $TEMPINVENTORYARRAYSIZE - 1

$DONOTSELL = False

For $J = 1 To UBound($DONOTSELLLIST) - 1

If $TEMPINVENTORYARRAY[$I][1] = $DONOTSELLLIST[$J] Then

$DONOTSELL = True

ExitLoop

EndIf

Next

If $TEMPINVENTORYARRAY[$I][0] <> 0 And $DONOTSELL = False Then

$SELLID = $TEMPINVENTORYARRAY[$I][1]

$SELLAMOUNT = $TEMPINVENTORYARRAY[$I][2]

SELLITEM($SELLID, $I, $SELLAMOUNT)

Sleep(10)

EndIf

Next

EndFunc

 

 

Func BUYITEMS()

Sleep(1)

BUILDINVENTORYARRAY()

Local $BUYLIST, $BUYLISTQTY, $CURQTY, $BUYAMOUNT, $SHOPINDEX

_FILEREADTOARRAY("Afford Config/" & $NAME & "_BuyList.gat", $BUYLIST)

_FILEREADTOARRAY("Afford Config/" & $NAME & "_BuyListQTY.gat", $BUYLISTQTY)

For $I = 1 To UBound($BUYLIST) - 1

$CURQTY = 0

For $J = 0 To $INVENTORYARRAYSIZE - 1

If $BUYLIST[$I] = $INVENTORYARRAY[$J][1] Then

$CURQTY = $CURQTY + $INVENTORYARRAY[$J][2]

EndIf

Next

ADDHISTORY("buying items")

If 0 = 0 Then

ADDHISTORY("need pots")

If $BUYLIST[$I] = 8617 Then

$SHOPINDEX = 0

ElseIf $BUYLIST[$I] = 8618 Then

$SHOPINDEX = 1

ElseIf $BUYLIST[$I] = 8619 Then

$SHOPINDEX = 2

ElseIf $BUYLIST[$I] = 8620 Then

$SHOPINDEX = 3

ElseIf $BUYLIST[$I] = 8621 Then

$SHOPINDEX = 4

ElseIf $BUYLIST[$I] = 8612 Then

$SHOPINDEX = 5

ElseIf $BUYLIST[$I] = 8613 Then

$SHOPINDEX = 6

ElseIf $BUYLIST[$I] = 8614 Then

$SHOPINDEX = 7

ElseIf $BUYLIST[$I] = 8647 Then

$SHOPINDEX = 8

ElseIf $BUYLIST[$I] = 8648 Then

$SHOPINDEX = 9

ElseIf $BUYLIST[$I] = 8649 Then

$SHOPINDEX = 10

ElseIf $BUYLIST[$I] = 8650 Then

$SHOPINDEX = 11

ElseIf $BUYLIST[$I] = 8651 Then

$SHOPINDEX = 12

ElseIf $BUYLIST[$I] = 8642 Then

$SHOPINDEX = 13

ElseIf $BUYLIST[$I] = 8643 Then

$SHOPINDEX = 14

ElseIf $BUYLIST[$I] = 8644 Then

$SHOPINDEX = 15

Else

$SHOPINDEX = "N/A"

EndIf

ADDHISTORY("Have " & $CURQTY & " Of " & $BUYLIST[$I])

If $CURQTY < $BUYLISTQTY[$I] Then

$BUYAMOUNT = $BUYLISTQTY[$I] - $CURQTY

ADDHISTORY("$curqty = " & $CURQTY)

ADDHISTORY("$buylistqty = " & $BUYLISTQTY[$I])

ADDHISTORY("$buyamount = " & $BUYAMOUNT)

Do

BUILDINVENTORYARRAY()

Sleep(10)

$CURQTY = 0

For $K = 0 To $INVENTORYARRAYSIZE - 1

If $BUYLIST[$I] = $INVENTORYARRAY[$K][1] Then

$CURQTY = $CURQTY + $INVENTORYARRAY[$K][2]

EndIf

Next

$BUYAMOUNT = $BUYLISTQTY[$I] - $CURQTY

If $BUYAMOUNT < 100 And $BUYAMOUNT > 0 Then

$AMOUNT = $BUYAMOUNT

ADDHISTORY("Buying1 " & $AMOUNT & " of " & $BUYLIST[$I] & " Shop " & $SHOPINDEX)

BUYITEM($BUYLIST[$I], $SHOPINDEX, $AMOUNT)

$AMOUNT = $AMOUNT - $BUYAMOUNT

Sleep(20)

ElseIf $BUYAMOUNT > 100 Then

$AMOUNT = 100

ADDHISTORY("Buying2 " & $AMOUNT & " of " & $BUYLIST[$I] & " Shop " & $SHOPINDEX)

BUYITEM($BUYLIST[$I], $SHOPINDEX, $AMOUNT)

$BUYAMOUNT = $BUYAMOUNT - 100

Sleep(20)

EndIf

Until $BUYAMOUNT = 0

EndIf

Else

ADDHISTORY("noshopindex")

EndIf

Next

EndFunc

 

 

Func RESURRECT()

Sleep(10)

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Resurrecting")

Do

REZTOTOWN()

Sleep(50)

SITUATIONALAWARENESS()

Until $HP > 0

_SENDMESSAGE($HANDLE, 256, KEYCODE("{ESC}"))

Sleep(1)

GETPETSTATE()

Sleep(10)

FLYMODE()

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Returning to Battle")

$CURRENTRAIL = "Resurrect"

Sleep(1)

RUNRAIL()

EndFunc

 

 

Func RESTORECHARSTATE($MODE)

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Restoring")

ADDHISTORY("Restoring")

$KEY = IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")

If $CHARSTATE = 32 Then

Sleep(5)

ElseIf $CHARSTATE <> 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

$RESTTIMER = TimerInit()

If $MODE = 1 Then

Do

PETDEF()

Sleep(10)

SITUATIONALAWARENESS()

Sleep(1)

HPMPAUTOPOTCHECK()

If $TAR <> 0 Then

$TARGET = $TAR

$HADTARGET = 1

ADDHISTORY("Defending During Restore")

$REST = 1

Sleep(1)

KILLTARGET()

If $CHARSTATE <> 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

EndIf

$RESTTIMERDIFF = TimerDiff($RESTTIMER)

Until $RESTTIMERDIFF / 60000 > 3 Or GUICtrlRead($PERC_HP) > 98 Or $TAR <> 0 Or $HP = 0

ElseIf $MODE = 2 Then

Do

PETDEF()

Sleep(10)

SITUATIONALAWARENESS()

HPMPAUTOPOTCHECK()

If $TAR <> 0 Then

$TARGET = $TAR

ADDHISTORY("Defending During Restore")

$REST = 1

$HADTARGET = 1

Sleep(1)

KILLTARGET()

If $CHARSTATE <> 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

EndIf

$RESTTIMERDIFF = TimerDiff($RESTTIMER)

Until $RESTTIMERDIFF / 60000 > 3 Or GUICtrlRead($PERC_MP) > 98 Or $TAR <> 0 Or $HP = 0

EndIf

EndFunc

 

 

Func SETEXPLIST()

For $I = 0 To 150

$EXP_NEEDED[$I] = _MEMORYREAD($APP_BASE_ADDRESSEXP + ($I * 4), $PROCESS_INFORMATION)

Next

EndFunc

 

 

Func KEYCODE($KEY)

If $KEY == "{F1}" Then

Return 112

ElseIf $KEY == "{F2}" Then

Return 113

ElseIf $KEY == "{F3}" Then

Return 114

ElseIf $KEY == "{F4}" Then

Return 115

ElseIf $KEY == "{F5}" Then

Return 116

ElseIf $KEY == "{F6}" Then

Return 117

ElseIf $KEY == "{F7}" Then

Return 118

ElseIf $KEY == "{F8}" Then

Return 119

ElseIf $KEY == "{0}" Then

Return 48

ElseIf $KEY == "{1}" Then

Return 49

ElseIf $KEY == "{2}" Then

Return 50

ElseIf $KEY == "{3}" Then

Return 51

ElseIf $KEY == "{4}" Then

Return 52

ElseIf $KEY == "{5}" Then

Return 53

ElseIf $KEY == "{6}" Then

Return 54

ElseIf $KEY == "{7}" Then

Return 55

ElseIf $KEY == "{8}" Then

Return 56

ElseIf $KEY == "{9}" Then

Return 57

ElseIf $KEY == "{TAB}" Then

Return 9

ElseIf $KEY == "{LMB}" Then

Return 1

ElseIf $KEY == "{RMB}" Then

Return 2

ElseIf $KEY == "{SHIFT}" Then

Return 160

ElseIf $KEY == "{CTRL}" Then

Return 162

ElseIf $KEY == "{ALT}" Then

Return 18

ElseIf $KEY == "{SPACE}" Then

Return 32

ElseIf $KEY == "{ESC}" Then

Return 27

ElseIf $KEY == "{+}" Then

Return 107

ElseIf $KEY == "{-}" Then

Return 109

Else

Return "none"

EndIf

EndFunc

 

 

Func ADDHISTORY($TEXT)

If _GUICTRLEDIT_GETLINECOUNT($LOG) > 14 Then

GUICtrlSetData($LOG, "")

EndIf

$OLDLOGS = GUICtrlRead($LOG)

GUICtrlSetData($LOG, $TEXT & @CRLF & $OLDLOGS)

EndFunc

 

 

Func STOPCHECK()

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_RES_ON_DIE_KEY, 0) = 1 Then

If $HP = 0 Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Dead")

Do

Sleep(10)

SITUATIONALAWARENESS()

If $HP = 0 Then

Sleep(10)

RESURRECT()

EndIf

Sleep(2)

Until $HP > 0

EndIf

EndIf

EndFunc

 

 

Func GETREALXYZ($RAWX, $RAWY, $RAWZ)

Local $REALXYZ

$REALX = ($RAWX + 4000) / 10

$REALY = ($RAWY + 5500) / 10

$REALZ = $RAWZ / 10

Return $REALX & "," & $REALY & "," & $REALZ

EndFunc

 

 

Func GETGRADE($X1, $Y1, $Z1, $X2, $Y2, $Z2)

Local $RISE, $RUN, $GRADE

$RISE = GETSLOPEDISTANCE($X1, $Y1, $Z1, $X2, $Y2, $Z2)

$RUN = GETDISTANCE($X1, $Y1, $X2, $Y2)

$GRADE = ($RUN / $RISE) * 100

Return $GRADE

EndFunc

 

 

Func GETDISTANCE($X1, $Y1, $X2, $Y2)

GETREALXYZ($X1, $Y1, "")

Local $DIS

$DIS = Round(10 * Sqrt(($X1 - $X2) ^ 2 + ($Y1 - $Y2) ^ 2), 1)

Return $DIS

EndFunc

 

 

Func GETSLOPEDISTANCE($X1, $Y1, $Z1, $X2, $Y2, $Z2)

Local $DIS

$DIS = Round(10 * Sqrt(($X1 - $X2) ^ 2 + ($Y1 - $Y2) ^ 2 + ($Z1 - $Z2) ^ 2), 1)

Return $DIS

EndFunc

 

 

Func STRADDCOMMA($SSTR, $SSEPERATOR = -1, $SEND = -1)

If $SSEPERATOR = -1 Or $SSEPERATOR = Default Then $SSEPERATOR = ","

If $SEND = -1 Or $SEND = Default Then $SEND = "."

Local $ANUM = StringSplit($SSTR, $SEND), $NHOLD, $ASRE, $FUB, $IADD

If UBound($ANUM) > 2 Then

$ASRE = StringRegExp($ANUM[1], "(\d+)(\d{3})", 3)

$FUB = True

Else

$ASRE = StringRegExp($SSTR, "(\d+)(\d{3})", 3)

EndIf

If UBound($ASRE) = 2 Then

While IsArray($ASRE)

$NHOLD = $SSEPERATOR & $ASRE[1] & $NHOLD

$ASRE = StringRegExp($ASRE[0], "(\d+)(\d{3})", 3)

$IADD += 1

WEnd

EndIf

If $FUB And $NHOLD Then

Return SetError(0, 0, StringTrimRight($SSTR, ($IADD + 1) * 3) & $NHOLD & $SEND & $ANUM[2])

ElseIf $NHOLD Then

Return SetError(0, 0, StringTrimRight($SSTR, $IADD * 3) & $NHOLD)

EndIf

Return SetError(1, 0, $SSTR)

EndFunc

 

 

Func _HEX($VALUE, $SIZE = 8, $TYPE = "int")

Local $TMP1, $TMP2, $I

If ($TYPE = "int") Then

$TMP1 = StringRight("000000000" & Hex($VALUE), $SIZE)

ElseIf ($TYPE = "float") Then

$TMP1 = StringRight("000000000" & _FLOATTOHEX($VALUE), $SIZE)

EndIf

For $I = 0 To StringLen($TMP1) / 2 - 1

$TMP2 = $TMP2 & StringMid($TMP1, StringLen($TMP1) - 1 - 2 * $I, 2)

Next

Return $TMP2

EndFunc

 

 

Func _FLOATTOHEX($FLOATVAL)

$SF = DllStructCreate("float")

$SB = DllStructCreate("ptr", DllStructGetPtr($SF))

If $FLOATVAL = "" Then Exit

DllStructSetData($SF, 1, $FLOATVAL)

$RETURN = DllStructGetData($SB, 1)

Return $RETURN

EndFunc

 

 

Func REV($STRING)

Local $ALL

For $I = StringLen($STRING) + 1 To 1 Step -2

$ALL = $ALL & StringMid($STRING, $I, 2)

Next

Return $ALL

EndFunc

 

 

Func _PROCESSIDPATH($VPID)

Local $OBJWMISERVICE, $OCOLITEMS

Local $SNOEXEPATH = ""

Local Const $WBEMFLAGRETURNIMMEDIATELY = 16

Local Const $WBEMFLAGFORWARDONLY = 32

Local $RETERR_PROCESSDOESNTEXIST = 1

Local $RETERR_PROCESSPATHUNKNOWN = 2

Local $RETERR_PROCESSNOTFOUND = 3

Local $RETERR_OBJCREATEERR = 4

Local $RETERR_UNKNOWNERR = 5

If Not ProcessExists($VPID) Then

SetError($RETERR_PROCESSDOESNTEXIST)

Return $SNOEXEPATH

EndIf

$OBJWMISERVICE = ObjGet("winmgmts:\\localhost\root\CIMV2")

$OCOLITEMS = $OBJWMISERVICE.ExecQuery("SELECT * FROM Win32_Process", "WQL", $WBEMFLAGRETURNIMMEDIATELY + $WBEMFLAGFORWARDONLY)

If IsObj($OCOLITEMS) Then

For $OBJITEM In $OCOLITEMS

If $VPID = $OBJITEM.ProcessId Then

If $OBJITEM.ExecutablePath = "0" Then

If FileExists(@SystemDir & "\" & $OBJITEM.Caption) Then

Return @SystemDir & "\" & $OBJITEM.Caption

Else

SetError($RETERR_PROCESSPATHUNKNOWN)

Return $SNOEXEPATH

EndIf

Else

Return $OBJITEM.Executablepath

EndIf

EndIf

Next

SetError($RETERR_PROCESSNOTFOUND)

Return $SNOEXEPATH

Else

SetError($RETERR_OBJCREATEERR)

Return $SNOEXEPATH

EndIf

SetError($RETERR_UNKNOWNERR)

Return $SNOEXEPATH

EndFunc

 

 

Func RENAMEWINDOW()

If $ANSWER Then

WinSetTitle($ANSWER, "", $NAME)

Else

Global $APP_TITLE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_BASEADDRESS_ROOT_KEY, $CFG_BASEADDRESS_APP_KEY, "Element Client"), $PROCESS_ID = WinGetProcess($APP_TITLE), $PROCESS_INFORMATION = _MEMORYOPEN($PROCESS_ID), $HANDLE = ControlGetHandle($APP_TITLE, "", "")

EndIf

If @error Then

If @error Then

MsgBox(0, "Can´t Find Perfect World", "Impossible to detect your Perfect World. Review settings in " & $SOFTWARE_OFFSET_CONFIG & ". Set the correct value for " & $CFG_BASEADDRESS_APP_KEY & " and for " & $CFG_BASEADDRESS_KEY & " properties.")

Exit

EndIf

EndIf

EndFunc

 

 

Func SITUATIONALAWARENESS()

If TimerDiff($CHATTIMER) > 10000 Then

BUILDCHATARRAY()

If $WHISPER = 1 Then

SoundPlay("Alien.wav")

$WHISPER = 0

EndIf

$CHATTIMER = TimerInit()

EndIf

$NAME = _MEMORYREAD(_MEMORYREAD($CHAR_DATA_BASE + $OFFSET_NAME, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

If $NAME <> "" Then

$CLASS = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_CLASS, $PROCESS_INFORMATION)

$LVL = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_LVL, $PROCESS_INFORMATION)

Else

$LVL = "0"

$CLASS = "8"

EndIf

$CHARID = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_CHARID, $PROCESS_INFORMATION)

$HP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_HP, $PROCESS_INFORMATION)

$MAXHP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_MAX_HP, $PROCESS_INFORMATION)

$HPPERC = ($HP / $MAXHP) * 100

$MP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_MP, $PROCESS_INFORMATION)

$MAXMP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_MAX_MP, $PROCESS_INFORMATION)

$EXP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_EXP, $PROCESS_INFORMATION)

$STR = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_STR, $PROCESS_INFORMATION)

$DEX = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_DEX, $PROCESS_INFORMATION)

$VIT = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_VIT, $PROCESS_INFORMATION)

$MAG = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_MAG, $PROCESS_INFORMATION)

$SPIRIT = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_SPIRIT, $PROCESS_INFORMATION)

$GOLD = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_GOLD, $PROCESS_INFORMATION)

$CHI = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_CHI, $PROCESS_INFORMATION)

$AP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_AP, $PROCESS_INFORMATION)

$X = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_X, $PROCESS_INFORMATION, "float")

$Y = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Y, $PROCESS_INFORMATION, "float")

$Z = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Z, $PROCESS_INFORMATION, "float")

$TEMPACTIONFLAG = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG)

$MOVEMODE = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_MOVEMODE, $PROCESS_INFORMATION)

$CHARSTATE = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_CHARSTATE, $PROCESS_INFORMATION, "byte")

$ACTIONFLAG = $TEMPACTIONFLAG[1]

$CASTING = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_CASTING, $PROCESS_INFORMATION)

BUILDGLOBALDATA()

EndFunc

 

 

Func BUILDGLOBALDATA()

BUILDPLAYERARRAY()

BUILDNPCARRAY()

Local $TAR_TEMP, $TEMPNPCARRAY, $TEMPPLAYERARRAY, $SELECTED

$TEMPNPCARRAY = $NPCARRAY

$TEMPPLAYERARRAY = $PLAYERARRAY

$TAR_TEMP = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_TAR)

$SELECTED = 0

If TimerDiff($GATHERARRAYTIMER) > 5000 Then

_FILEREADTOARRAY("Afford Config/" & $NAME & "_HerbsToLoot.gat", $HERBS)

_FILEREADTOARRAY("Afford Config/" & $NAME & "_ResourcesToLoot.gat", $RESOURCES)

$GATHERARRAYTIMER = TimerInit()

EndIf

If $TAR_TEMP[1] = 0 Then

$TAR = 0

Else

$TEMPNPCARRAY = $NPCARRAY

$TEMPNPCARRAYSIZE = $NPCARRAYSIZE

For $X = 0 To $TEMPNPCARRAYSIZE - 1

If $TAR_TEMP[1] = $TEMPNPCARRAY[$X][0] Then

$TAR = $TAR_TEMP[1]

$SELECTED = 1

ExitLoop

EndIf

Next

If $SELECTED = 1 Then

$TARNAME = $TEMPNPCARRAY[$X][1]

$TARLVL = $TEMPNPCARRAY[$X][2]

$TARHP = $TEMPNPCARRAY[$X][3]

$TARMAXHP = $TEMPNPCARRAY[$X][4]

If $TEMPNPCARRAY[$X][5] < 9 Then

$TARSPEC = $SELECTED_SPECIAL_INFO[$TEMPNPCARRAY[$X][5]]

EndIf

$TARX = Round(($TEMPNPCARRAY[$X][6] + 4000) / 10, 1)

$TARY = Round(($TEMPNPCARRAY[$X][7] + 5500) / 10, 1)

$TARZ = Round($TEMPNPCARRAY[$X][8] / 10, 1)

If $TARX <> 400 And $TARY <> 550 Then

$LASTTARX[1] = Round(($TEMPNPCARRAY[$X][6] + 4000) / 10, 1)

$LASTTARX[2] = $TEMPNPCARRAY[$X][6]

$LASTTARY[1] = Round(($TEMPNPCARRAY[$X][7] + 5500) / 10, 1)

$LASTTARY[2] = $TEMPNPCARRAY[$X][7]

$LASTTARZ[1] = Round($TEMPNPCARRAY[$X][8] / 10, 1)

$LASTTARZ[2] = $TEMPNPCARRAY[$X][8]

$TARDIS = $TEMPNPCARRAY[$X][10]

$TARHOMEDIS = $TEMPNPCARRAY[$X][11]

EndIf

Else

$TEMPPLAYERARRAY = $PLAYERARRAY

$TEMPPLAYERARRAYSIZE = $PLAYERARRAYSIZE

For $X = 0 To $TEMPPLAYERARRAYSIZE - 1

If $TAR_TEMP[1] = $TEMPPLAYERARRAY[$X][0] Then

$TAR = $TAR_TEMP[1]

$TARNAME = $TEMPPLAYERARRAY[$X][0]

$SELECTED = 2

ExitLoop

EndIf

Next

If $SELECTED = 2 Then

$TARNAME = $TEMPPLAYERARRAY[$X][1]

$TARLVL = $TEMPPLAYERARRAY[$X][2]

$TARHP = $TEMPPLAYERARRAY[$X][3]

$TARMAXHP = $TEMPPLAYERARRAY[$X][4]

$TARSPEC = $CHAR_CLASS_INFO[$TEMPPLAYERARRAY[$X][5]]

$TARX = Round(($TEMPPLAYERARRAY[$X][6] + 4000) / 10, 1)

$TARY = Round(($TEMPPLAYERARRAY[$X][7] + 5500) / 10, 1)

$TARZ = Round($TEMPPLAYERARRAY[$X][8] / 10, 1)

If $TARX <> 400 And $TARY <> 550 Then

$LASTTARX[1] = Round(($TEMPPLAYERARRAY[$X][6] + 4000) / 10, 1)

$LASTTARX[2] = $TEMPPLAYERARRAY[$X][6]

$LASTTARY[1] = Round(($TEMPPLAYERARRAY[$X][7] + 5500) / 10, 1)

$LASTTARY[2] = $TEMPPLAYERARRAY[$X][7]

$LASTTARZ[1] = Round($TEMPPLAYERARRAY[$X][8] / 10, 1)

$LASTTARZ[2] = $TEMPPLAYERARRAY[$X][8]

$TARDIS = $TEMPPLAYERARRAY[$X][10]

$TARHOMEDIS = $TEMPPLAYERARRAY[$X][11]

EndIf

EndIf

EndIf

EndIf

UPDATEGUIDATA()

EndFunc

 

 

Func UPDATEGUIDATA()

If GUICtrlRead($CHK_ANTIKS) <> IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_AKS_KEY, "0") Then

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_AKS_KEY, GUICtrlRead($CHK_ANTIKS))

EndIf

If GUICtrlRead($CHK_HBN) <> IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HBN_KEY, "0") Then

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HBN_KEY, GUICtrlRead($CHK_HBN))

EndIf

If GUICtrlRead($CHK_FZ) <> IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_FREEZE_KEY, "0") Then

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_FREEZE_KEY, GUICtrlRead($CHK_FZ))

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_FREEZE_KEY, "0") = 1 Then

$FZ = _MEMORYREAD($APP_BASE_ADDRESSFZ, $PROCESS_INFORMATION)

If $FZ <> 1 Then

_MEMORYWRITE($APP_BASE_ADDRESSFZ, $PROCESS_INFORMATION, "1")

EndIf

EndIf

If GUICtrlRead($LABEL_NAME) <> $NAME Then

GUICtrlSetData($LABEL_NAME, $NAME)

EndIf

If GUICtrlRead($LABEL_LVL) <> $LVL Then

GUICtrlSetData($LABEL_LVL, $LVL)

EndIf

If GUICtrlRead($LABEL_CLASS) <> $CHAR_CLASS_INFO[$CLASS] Then

GUICtrlSetData($LABEL_CLASS, $CHAR_CLASS_INFO[$CLASS])

EndIf

If GUICtrlRead($PERC_HP) <> $HP / $MAXHP * 100 Then

GUICtrlSetData($PERC_HP, $HP / $MAXHP * 100)

GUICtrlSetData($LABEL_HP, STRADDCOMMA($HP) & "/" & STRADDCOMMA($MAXHP))

EndIf

If GUICtrlRead($PERC_MP) <> $MP / $MAXMP * 100 Then

GUICtrlSetData($PERC_MP, $MP / $MAXMP * 100)

GUICtrlSetData($LABEL_MP, STRADDCOMMA($MP) & "/" & STRADDCOMMA($MAXMP))

EndIf

If GUICtrlRead($LABEL_EXP) <> Round($EXP / $EXP_NEEDED[$LVL] * 100, 2) & "%" Then

GUICtrlSetData($PERC_EXP, Round($EXP / $EXP_NEEDED[$LVL] * 100, 2))

GUICtrlSetData($LABEL_EXP, Round($EXP / $EXP_NEEDED[$LVL] * 100, 2) & "%")

EndIf

If GUICtrlRead($LABEL_NAME) = "" Then

GUICtrlSetData($LABEL_EXP, "0%")

EndIf

If GUICtrlRead($LABEL_LVL) = 0 Then

GUICtrlSetData($LABEL_LVL, $LVL)

EndIf

If GUICtrlRead($LABEL_NAME) = "" Then

GUICtrlSetData($LABEL_XYZ, "000/000/000")

ElseIf GUICtrlRead($LABEL_XYZ) <> Round(($X + 4000) / 10, 2) & "/" & Round(($Y + 5500) / 10, 2) & "/" & Round($Z / 10, 1) Then

$MOVEFLAG = 1

GUICtrlSetData($LABEL_XYZ, Round(($X + 4000) / 10, 2) & "/" & Round(($Y + 5500) / 10, 2) & "/" & Round($Z / 10, 1))

Else

$MOVEFLAG = 0

EndIf

If GUICtrlRead($LABEL_STR) <> $STR Then

GUICtrlSetData($LABEL_STR, $STR)

EndIf

If GUICtrlRead($LABEL_DEX) <> $DEX Then

GUICtrlSetData($LABEL_DEX, $DEX)

EndIf

If GUICtrlRead($LABEL_VIT) <> $VIT Then

GUICtrlSetData($LABEL_VIT, $VIT)

EndIf

If GUICtrlRead($LABEL_MAG) <> $MAG Then

GUICtrlSetData($LABEL_MAG, $MAG)

EndIf

If GUICtrlRead($LABEL_SPIRIT) <> $SPIRIT Then

GUICtrlSetData($LABEL_SPIRIT, $SPIRIT)

EndIf

If GUICtrlRead($LABEL_GOLD) <> $GOLD Then

GUICtrlSetData($LABEL_GOLD, $GOLD)

EndIf

If Not $TAR Then

If GUICtrlRead($LABEL_TARNAME) <> "None" Then

GUICtrlSetData($LABEL_TARNAME, "None")

EndIf

If $MOVEING = 1 Then

$LASTTARDIS = GETDISTANCE(($X + 4000) / 10, ($Y + 5500) / 10, $LASTTARX[1], $LASTTARY[1])

GUICtrlSetData($LABEL_TARDIST, $LASTTARDIS & "m")

Else

GUICtrlSetData($LABEL_TARDIST, "0m")

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") = 0 Then

GUICtrlSetData($LABEL_RADCENTER, "Infinite Radius")

Else

GUICtrlSetData($LABEL_RADCENTER, "Hunt By Radius ON")

EndIf

If GUICtrlRead($LABEL_TARSPEC) <> "None" Then

GUICtrlSetData($LABEL_TARSPEC, "None")

EndIf

If GUICtrlRead($PERC_TARHP) <> "0" Then

GUICtrlSetData($PERC_TARHP, "0")

EndIf

If GUICtrlRead($LABEL_TARHP) <> "0/0" Then

GUICtrlSetData($LABEL_TARHP, "0/0")

EndIf

Else

If GUICtrlRead($LABEL_TARNAME) <> $TARNAME & " [" & $TARLVL & "]" Then

GUICtrlSetData($LABEL_TARNAME, $TARNAME & " [" & $TARLVL & "]")

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") = 0 Then

If GUICtrlRead($LABEL_TARDIST) <> $TARDIS Then

GUICtrlSetData($LABEL_TARDIST, $TARDIS & "m")

EndIf

Else

If GUICtrlRead($LABEL_TARDIST) <> $TARDIS & "m" Then

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") = 0 Then

GUICtrlSetData($LABEL_RADCENTER, "0 = No Limit")

Else

GUICtrlSetData($LABEL_RADCENTER, "Dist: " & $TARHOMEDIS & "m")

EndIf

GUICtrlSetData($LABEL_TARDIST, $TARDIS & "m")

EndIf

EndIf

If GUICtrlRead($LABEL_TARSPEC) <> $TARSPEC Then

GUICtrlSetData($LABEL_TARSPEC, $TARSPEC)

EndIf

If GUICtrlRead($LABEL_TARHP) <> STRADDCOMMA($TARHP) & "/" & STRADDCOMMA($TARMAXHP) Then

GUICtrlSetData($PERC_TARHP, $TARHP / $TARMAXHP * 100)

GUICtrlSetData($LABEL_TARHP, STRADDCOMMA($TARHP) & "/" & STRADDCOMMA($TARMAXHP))

EndIf

EndIf

EndFunc

 

 

Func BUILDPLAYERARRAY()

Local $ARRAY[1][12], $SORTEDPLAYERLIST, $PLAYERCOUNTPOINTER, $PLAYERCOUNT, $PLAYERPOINTER

$PLAYERCOUNT = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PLAYERCOUNT)

If $PLAYERCOUNT[1] <> 0 Then

ReDim $ARRAY[$PLAYERCOUNT[1]][12]

For $P = 0 To ($PLAYERCOUNT[1] - 1)

$PLAYERPOINTER = _MEMORYREAD($PLAYER_DATA_BASE[1] + $P * 4, $PROCESS_INFORMATION)

$ARRAY[$P][0] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERID, $PROCESS_INFORMATION)

$ARRAY[$P][1] = _MEMORYREAD(_MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERNAME + 0, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

$ARRAY[$P][2] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERLVL, $PROCESS_INFORMATION)

$ARRAY[$P][3] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERHP, $PROCESS_INFORMATION)

$ARRAY[$P][4] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERMAXHP, $PROCESS_INFORMATION)

$ARRAY[$P][5] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERCLASS, $PROCESS_INFORMATION)

$ARRAY[$P][6] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERX, $PROCESS_INFORMATION, "float")

$ARRAY[$P][7] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERY, $PROCESS_INFORMATION, "float")

$ARRAY[$P][8] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERZ, $PROCESS_INFORMATION, "float")

$ARRAY[$P][9] = $PLAYERPOINTER

$ARRAY[$P][10] = GETSLOPEDISTANCE(($X + 4000) / 10, ($Y + 5500) / 10, $Z / 10, ($ARRAY[$P][6] + 4000) / 10, ($ARRAY[$P][7] + 5500) / 10, $ARRAY[$P][8] / 10)

$ARRAY[$P][11] = GETSLOPEDISTANCE(($HOME_X + 4000) / 10, ($HOME_Y + 5500) / 10, $HOME_Z / 10, ($ARRAY[$P][6] + 4000) / 10, ($ARRAY[$P][7] + 5500) / 10, $ARRAY[$P][8] / 10)

Next

EndIf

_ARRAYSORT($ARRAY, "", "", "", 10)

Global $PLAYERARRAY = $ARRAY, $PLAYERARRAYSIZE = $PLAYERCOUNT[1]

Sleep(1)

EndFunc

 

 

Func BUILDNPCARRAY()

Local $ARRAY[1][17], $SORTEDNPCLIST, $NPCCOUNT, $NPCPOINTER

Global $OFFSET_PETID[4]

$OFFSET_PETID[1] = Dec("34")

$OFFSET_PETID[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETBASE, "")

$OFFSET_PETID[3] = Dec("3C")

Global $PETID = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PETID)

$NPCCOUNT = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_NPCCOUNT)

If $NPCCOUNT[1] <> 0 Then

ReDim $ARRAY[$NPCCOUNT[1]][17]

For $N = 0 To ($NPCCOUNT[1] - 1)

$NPCPOINTER = _MEMORYREAD($NPC_DATA_BASE[1] + $N * 4, $PROCESS_INFORMATION)

$ARRAY[$N][0] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCID, $PROCESS_INFORMATION)

$ARRAY[$N][1] = _MEMORYREAD(_MEMORYREAD($NPCPOINTER + $OFFSET_NPCNAME, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

$ARRAY[$N][2] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCLVL, $PROCESS_INFORMATION)

$ARRAY[$N][3] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCHP, $PROCESS_INFORMATION)

$ARRAY[$N][4] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCMAXHP, $PROCESS_INFORMATION)

$ARRAY[$N][5] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCSPECIAL, $PROCESS_INFORMATION)

$ARRAY[$N][6] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCX, $PROCESS_INFORMATION, "float")

$ARRAY[$N][7] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCY, $PROCESS_INFORMATION, "float")

$ARRAY[$N][8] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCZ, $PROCESS_INFORMATION, "float")

$ARRAY[$N][9] = $NPCPOINTER

$ARRAY[$N][10] = GETSLOPEDISTANCE(($X + 4000) / 10, ($Y + 5500) / 10, $Z / 10, ($ARRAY[$N][6] + 4000) / 10, ($ARRAY[$N][7] + 5500) / 10, $ARRAY[$N][8] / 10)

$ARRAY[$N][11] = GETSLOPEDISTANCE(($HOME_X + 4000) / 10, ($HOME_Y + 5500) / 10, $HOME_Z / 10, ($ARRAY[$N][6] + 4000) / 10, ($ARRAY[$N][7] + 5500) / 10, $ARRAY[$N][8] / 10)

$ARRAY[$N][12] = _MEMORYREAD($NPCPOINTER + Dec("2DC"), $PROCESS_INFORMATION)

$ARRAY[$N][13] = _MEMORYREAD($NPCPOINTER + Dec("2E0"), $PROCESS_INFORMATION)

$ARRAY[$N][14] = _MEMORYREAD($NPCPOINTER + Dec("2B8"), $PROCESS_INFORMATION)

$ARRAY[$N][15] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCPAI, $PROCESS_INFORMATION)

$ARRAY[$N][16] = $PETID[1]

Next

EndIf

_ARRAYSORT($ARRAY, "", "", "", 10)

Global $NPCARRAY = $ARRAY, $NPCARRAYSIZE = $NPCCOUNT[1]

Sleep(1)

EndFunc

 

 

Func BUILDITEMARRAY()

Local $ARRAY[1][8], $POINTER, $ITEM_BASE, $COUNTER

For $I = 0 To 768

$POINTER = _MEMORYREAD(_MEMORYREAD($ITEM_DATA_BASE[1] + $I * 4, $PROCESS_INFORMATION) + 4, $PROCESS_INFORMATION)

If $POINTER <> 0 Then

ReDim $ARRAY[$COUNTER + 1][8]

$ARRAY[$COUNTER][0] = _MEMORYREAD($POINTER + $OFFSET_ITEMID, $PROCESS_INFORMATION)

$ARRAY[$COUNTER][1] = _MEMORYREAD($POINTER + $OFFSET_ITEMSN, $PROCESS_INFORMATION)

$ARRAY[$COUNTER][2] = _MEMORYREAD(_MEMORYREAD($POINTER + $OFFSET_ITEMNAME, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

$ARRAY[$COUNTER][3] = _MEMORYREAD($POINTER + $OFFSET_ITEMX, $PROCESS_INFORMATION, "float")

$ARRAY[$COUNTER][4] = _MEMORYREAD($POINTER + $OFFSET_ITEMY, $PROCESS_INFORMATION, "float")

$ARRAY[$COUNTER][5] = _MEMORYREAD($POINTER + $OFFSET_ITEMZ, $PROCESS_INFORMATION, "float")

$ARRAY[$COUNTER][6] = GETSLOPEDISTANCE(($X + 4000) / 10, ($Y + 5500) / 10, $Z / 10, ($ARRAY[$COUNTER][3] + 4000) / 10, ($ARRAY[$COUNTER][4] + 5500) / 10, $ARRAY[$COUNTER][5] / 10)

$ARRAY[$COUNTER][7] = GETSLOPEDISTANCE(($HOME_X + 4000) / 10, ($HOME_Y + 5500) / 10, $HOME_Z / 10, ($ARRAY[$COUNTER][3] + 4000) / 10, ($ARRAY[$COUNTER][4] + 5500) / 10, $ARRAY[$COUNTER][5] / 10)

$COUNTER += 1

EndIf

Next

_ARRAYSORT($ARRAY, "", "", "", 6)

Global $ITEMARRAY = $ARRAY, $ITEMARRAYSIZE = $COUNTER - 1

Sleep(1)

EndFunc

 

 

Func BUILDINVENTORYARRAY()

Local $ARRAY[1][7], $POINTER, $INVENTORY_BASE, $COUNTER, $INVENTORYSIZE

$INVENTORYSIZE = _MEMORYREAD(_MEMORYREAD($CHAR_DATA_BASE + 3180, $PROCESS_INFORMATION) + 16, $PROCESS_INFORMATION)

$POINTER = _MEMORYREAD(_MEMORYREAD($CHAR_DATA_BASE + 3180, $PROCESS_INFORMATION) + 12, $PROCESS_INFORMATION)

For $I = 0 To $INVENTORYSIZE - 1

$INVENTORY_BASE = _MEMORYREAD($POINTER + $I * 4, $PROCESS_INFORMATION)

ReDim $ARRAY[$I + 1][7]

$ARRAY[$I][0] = _MEMORYREAD($INVENTORY_BASE, $PROCESS_INFORMATION)

$ARRAY[$I][1] = _MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYID, $PROCESS_INFORMATION)

$ARRAY[$I][2] = _MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYSTACKAMOUNT, $PROCESS_INFORMATION)

$ARRAY[$I][3] = _MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYMAXSTACKAMOUNT, $PROCESS_INFORMATION)

$ARRAY[$I][4] = _MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYSELLPRICE, $PROCESS_INFORMATION)

$ARRAY[$I][5] = _MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYBUYPRICE, $PROCESS_INFORMATION)

$ARRAY[$I][6] = _MEMORYREAD(_MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYDESCRIPTION, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

Next

If $ARRAY[$INVENTORYSIZE - 1][0] <> "" Then

$PACKFULL = True

Else

$PACKFULL = False

EndIf

Global $INVENTORYARRAY = $ARRAY, $INVENTORYARRAYSIZE = $INVENTORYSIZE - 1

Sleep(1)

EndFunc

 

 

Func BUILDDONOTSELLLIST()

Sleep(1)

BUILDINVENTORYARRAY()

Local $TEMPINVENTORYARRAY = $INVENTORYARRAY

Local $ARRAY[1]

For $I = 0 To UBound($TEMPINVENTORYARRAY) - 1

If $TEMPINVENTORYARRAY[$I][1] <> 0 Then

_ARRAYSEARCH($ARRAY, $TEMPINVENTORYARRAY[$I][1])

If @error = 6 Then

ReDim $ARRAY[uBound($ARRAY) + 1]

$ARRAY[uBound($ARRAY) - 1] = $TEMPINVENTORYARRAY[$I][1]

EndIf

EndIf

Next

Local $BUYLIST[1]

$BUYLIST[0] = "Insert Item ID's That You Wish To Purchase At Apothocary, Each On A Seperate Line (Delete This Text)"

Local $BUYLISTQTY[1]

$BUYLISTQTY[0] = "Insert Quantities Of The Item ID's In The Buy List, Each On A Seperate Line (Delete This Text)"

_FILEWRITEFROMARRAY("Afford Config/" & $NAME & "_DoNotSellList.gat", $ARRAY, 1)

_FILEWRITEFROMARRAY("Afford Config/" & $NAME & "_BuyList.gat", $BUYLIST, 1)

_FILEWRITEFROMARRAY("Afford Config/" & $NAME & "_BuyListQTY.gat", $BUYLISTQTY, 1)

EndFunc

 

 

Func SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

Local $PREMOTETHREAD, $VBUFFER, $LOOP, $RESULT, $OPCODE, $PROCESSHANDLE, $PACKETADDRESS

$PROCESSHANDLE = $PROCESS_INFORMATION[1]

$FUNCTIONADDRESS = DllCall($KERNEL32, "int", "VirtualAllocEx", "int", $PROCESSHANDLE, "ptr", 0, "int", 70, "int", 4096, "int", 64)

$PACKETADDRESS = DllCall($KERNEL32, "int", "VirtualAllocEx", "int", $PROCESSHANDLE, "ptr", 0, "int", $PACKETSIZE, "int", 4096, "int", 64)

$OPCODE &= "60"

$OPCODE &= "B8" & _HEX($SENDPACKETADDRESS)

$OPCODE &= "8B0D" & _HEX($REALBASEADDRESS)

$OPCODE &= "8B4920"

$OPCODE &= "BF" & _HEX($PACKETADDRESS[0])

$OPCODE &= "6A" & _HEX($PACKETSIZE, 2)

$OPCODE &= "57"

$OPCODE &= "FFD0"

$OPCODE &= "61"

$OPCODE &= "C3"

$VBUFFER = DllStructCreate("byte[" & StringLen($OPCODE) / 2 & "]")

For $LOOP = 1 To DllStructGetSize($VBUFFER)

DllStructSetData($VBUFFER, 1, Dec(StringMid($OPCODE, ($LOOP - 1) * 2 + 1, 2)), $LOOP)

Next

DllCall($KERNEL32, "int", "WriteProcessMemory", "int", $PROCESSHANDLE, "int", $FUNCTIONADDRESS[0], "int", DllStructGetPtr($VBUFFER), "int", DllStructGetSize($VBUFFER), "int", 0)

$VBUFFER = DllStructCreate("byte[" & StringLen($PACKET) / 2 & "]")

For $LOOP = 1 To DllStructGetSize($VBUFFER)

DllStructSetData($VBUFFER, 1, Dec(StringMid($PACKET, ($LOOP - 1) * 2 + 1, 2)), $LOOP)

Next

DllCall($KERNEL32, "int", "WriteProcessMemory", "int", $PROCESSHANDLE, "int", $PACKETADDRESS[0], "int", DllStructGetPtr($VBUFFER), "int", DllStructGetSize($VBUFFER), "int", 0)

$HREMOTETHREAD = DllCall($KERNEL32, "int", "CreateRemoteThread", "int", $PROCESSHANDLE, "int", 0, "int", 0, "int", $FUNCTIONADDRESS[0], "ptr", 0, "int", 0, "int", 0)

Do

$RESULT = DllCall("kernel32.dll", "int", "WaitForSingleObject", "int", $HREMOTETHREAD[0], "int", 50)

Until $RESULT[0] <> 258

DllCall($KERNEL32, "int", "CloseHandle", "int", $HREMOTETHREAD[0])

DllCall($KERNEL32, "ptr", "VirtualFreeEx", "hwnd", $PROCESSHANDLE, "int", $FUNCTIONADDRESS[0], "int", 0, "int", 32768)

DllCall($KERNEL32, "ptr", "VirtualFreeEx", "hwnd", $PROCESSHANDLE, "int", $PACKETADDRESS[0], "int", 0, "int", 32768)

Return True

EndFunc

 

 

Func LOGOUT()

Local $PACKET, $PACKETSIZE

$PACKET = "0100"

$PACKET &= "01000000"

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SELECTTARID($TARGETID)

Local $PACKET, $PACKETSIZE

$PACKET = "0200"

$PACKET &= _HEX($TARGETID)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REGULARATTACK($AFTERSKILL)

Local $PACKET, $PACKETSIZE

$PACKET = "0300"

$PACKET &= _HEX($AFTERSKILL, 2)

$PACKETSIZE = 3

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func PICKUPITEM($UNIQUEITEMID, $ITEMTYPEID)

Local $PACKET, $PACKETSIZE

$PACKET = "0600"

$PACKET &= _HEX($UNIQUEITEMID)

$PACKET &= _HEX($ITEMTYPEID)

$PACKETSIZE = 10

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func DESELECTTARGET()

Local $PACKET, $PACKETSIZE

$PACKET = "0800"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func UPDATEINVPOSITION($INVPOSITION)

Local $PACKET, $PACKETSIZE

$PACKET = "0900"

$PACKET &= _HEX($INVPOSITION, 2)

$PACKETSIZE = 3

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SWAPITEMININV($INVINDEX1, $INVINDEX2)

Local $PACKET, $PACKETSIZE

$PACKET = "0C00"

$PACKET &= _HEX($INVINDEX1, 2)

$PACKET &= _HEX($INVINDEX2, 2)

$PACKETSIZE = 4

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SPLITSTACKITEMININV($INVINDEXSOURCE, $INVINDEXDESTINATION, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "0D00"

$PACKET &= _HEX($INVINDEXSOURCE, 2)

$PACKET &= _HEX($INVINDEXDESTINATION, 2)

$PACKET &= _HEX($AMOUNT, 4)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func DROPITEMONFLOOR($INVINDEXSOURCE, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "0E00"

$PACKET &= _HEX($INVINDEXSOURCE, 2)

$PACKET &= _HEX($AMOUNT, 4)

$PACKETSIZE = 5

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SWAPEQUIP($EQUIPINDEX1, $EQUIPINDEX2)

Local $PACKET, $PACKETSIZE

$PACKET = "1000"

$PACKET &= _HEX($EQUIPINDEX1, 2)

$PACKET &= _HEX($EQUIPINDEX2, 2)

$PACKETSIZE = 4

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SWAPEQUIPWITHINV($INVINDEX, $EQUIPINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "1100"

$PACKET &= _HEX($INVINDEX, 2)

$PACKET &= _HEX($EQUIPINDEX, 2)

$PACKETSIZE = 4

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func DROPGOLD($AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "1400"

$PACKET &= _HEX($INVINDEX)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func UPDATESTATS()

Local $PACKET, $PACKETSIZE

$PACKET = "1500"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func STARTNPCDIALOGUE($NPCID)

Local $PACKET, $PACKETSIZE

$PACKET = "2300"

$PACKET &= _HEX($NPCID)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func USEITEM($INDEX, $ITEMTYPEID, $EQUIP = 0)

Local $PACKET, $PACKETSIZE

$PACKET = "2800"

$PACKET &= _HEX($EQUIP, 2)

$PACKET &= "01"

$PACKET &= _HEX($INDEX, 2)

$PACKET &= "00"

$PACKET &= _HEX($ITEMTYPEID)

$PACKETSIZE = 10

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func USESKILL($SKILLID, $TARGETID)

Local $PACKET, $PACKETSIZE

$PACKET = "2900"

$PACKET &= _HEX($SKILLID)

$PACKET &= "0001"

$PACKET &= _HEX($TARGETID)

$PACKETSIZE = 12

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func CANCELACTION()

Local $PACKET, $PACKETSIZE

$PACKET = "2A00"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func STARTMEDITATING()

Local $PACKET, $PACKETSIZE

$PACKET = "2E00"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func STOPMEDITATING()

Local $PACKET, $PACKETSIZE

$PACKET = "2F00"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func USEEMOTION($EMOTEINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "3000"

$PACKET &= _HEX($EMOTEINDEX, 4)

$PACKETSIZE = 4

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SWAPITEMINBANK($BANKINDEX1, $BANKINDEX2)

Local $PACKET, $PACKETSIZE

$PACKET = "3800"

$PACKET &= "03"

$PACKET &= _HEX($BANKINDEX1, 2)

$PACKET &= _HEX($BANKINDEX2, 2)

$PACKETSIZE = 5

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SPLITSTACKITEMINBANK($BANKINDEXSOURCE, $BANKINDEXDESTINATION, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "3900"

$PACKET &= "03"

$PACKET &= _HEX($BANKINDEXSOURCE, 2)

$PACKET &= _HEX($BANKINDEXDESTINATION, 2)

$PACKET &= _HEX($AMOUNT, 4)

$PACKETSIZE = 7

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SWAPITEMBANKANDINV($BANKINDEX, $INVINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "3A00"

$PACKET &= "03"

$PACKET &= _HEX($BANKINDEX, 2)

$PACKET &= _HEX($INVINDEX, 2)

$PACKETSIZE = 5

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SPLITSTACKITEMINBANKTOINV($BANKINDEXSOURCE, $INVINDEXDESTINATION, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "3B00"

$PACKET &= "03"

$PACKET &= _HEX($BANKINDEXSOURCE, 2)

$PACKET &= _HEX($INVINDEXDESTINATION, 2)

$PACKET &= _HEX($AMOUNT, 4)

$PACKETSIZE = 7

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SPLITSTACKITEMININVTOBANK($INVINDEXSOURCE, $BANKINDEXDESTINATION, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "3C00"

$PACKET &= "03"

$PACKET &= _HEX($INVINDEXSOURCE, 2)

$PACKET &= _HEX($BANKINDEXDESTINATION, 2)

$PACKET &= _HEX($AMOUNT, 4)

$PACKETSIZE = 7

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func USESKILLWITHOUTCASTTIME($SKILLID, $TARGETID)

Local $PACKET, $PACKETSIZE

$PACKET = "5000"

$PACKET &= _HEX($SKILLID)

$PACKET &= "0001"

$PACKET &= _HEX($TARGETID)

$PACKETSIZE = 12

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func INITIATESETTINGUPCATSHOP()

Local $PACKET, $PACKETSIZE

$PACKET = "5400"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func TOGGLEFASHIONDISPLAY()

Local $PACKET, $PACKETSIZE

$PACKET = "5500"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func INCREASEFLYSPEED($START)

Local $PACKET, $PACKETSIZE

$PACKET = "5A00"

$PACKET &= _HEX($START)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SUMMONPET($PETINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "6400"

$PACKET &= _HEX($PETINDEX)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func RECALLPET()

Local $PACKET, $PACKETSIZE

$PACKET = "6500"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETMODE($PETMODE)

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= "00000000"

$PACKET &= "03000000"

$PACKET &= _HEX($PETMODE)

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETFOLLOW()

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= "00000000"

$PACKET &= "02000000"

$PACKET &= "00000000"

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETSTOP()

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= "00000000"

$PACKET &= "02000000"

$PACKET &= "01000000"

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETATTACK($TARGETID)

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= _HEX($TARGETID)

$PACKET &= "01"

$PACKET &= "00000000"

$PACKETSIZE = 11

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETUSESKILL($TARGETID, $SKILLID)

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= _HEX($TARGETID)

$PACKET &= "04000000"

$PACKET &= _HEX($SKILLID)

$PACKET &= "00"

$PACKETSIZE = 15

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETSTANDARDSKILL($SKILLID)

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= "00000000"

$PACKET &= "05000000"

$PACKET &= _HEX($SKILLID)

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func USEGENIESKILL($SKILLID, $TARGETID)

Local $PACKET, $PACKETSIZE

$PACKET = "7400"

$PACKET &= _HEX($SKILLID, 4)

$PACKET &= "0001"

$PACKET &= _HEX($TARGETID)

$PACKETSIZE = 10

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func FEEDEQUIPPEDGENIE($INVINDEX, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "7500"

$PACKET &= _HEX($INVINDEX, 2)

$PACKET &= _HEX($AMOUNT)

$PACKETSIZE = 7

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func ACCEPTQUEST($QUESTID)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "07000000"

$PACKET &= "04000000"

$PACKET &= _HEX($QUESTID)

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func HANDINQUEST($QUESTID, $OPTIONINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "06000000"

$PACKET &= "08000000"

$PACKET &= _HEX($QUESTID)

$PACKET &= _HEX($OPTIONINDEX)

$PACKET &= "09000001"

$PACKETSIZE = 18

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SELLITEM($ITEMTYPEID, $INVINDEX, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "02000000"

$PACKET &= "10000000"

$PACKET &= "01000000"

$PACKET &= _HEX($ITEMTYPEID)

$PACKET &= _HEX($INVINDEX)

$PACKET &= _HEX($AMOUNT)

$PACKETSIZE = 26

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func BUYITEM($ITEMTYPEID, $SHOPINDEX, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "01000000"

$PACKET &= "1c000000"

$PACKET &= "00000000"

$PACKET &= "00000000"

$PACKET &= "00000000"

$PACKET &= "01000000"

$PACKET &= _HEX($ITEMTYPEID)

$PACKET &= _HEX($SHOPINDEX)

$PACKET &= _HEX($AMOUNT)

$PACKETSIZE = 38

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REPAIRALL()

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "03000000"

$PACKET &= "06000000"

$PACKET &= "FFFFFFFF"

$PACKET &= "0000"

$PACKETSIZE = 16

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REPAIRITEM($ITEMTYPEID, $ISEQUIPPED, $LOCATIONINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "03000000"

$PACKET &= "06000000"

$PACKET &= _HEX($ITEMTYPEID)

$PACKET &= _HEX($ISEQUIPPED, 2)

$PACKET &= _HEX($LOCATIONINDEX, 2)

$PACKETSIZE = 16

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func UPGRADESKILL($SKILLID)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "09000000"

$PACKET &= "04000000"

$PACKET &= _HEX($SKILLID)

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REZTOTOWN()

Local $PACKET, $PACKETSIZE

$PACKET = "0400"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REZWITHSCROLL()

Local $PACKET, $PACKETSIZE

$PACKET = "0500"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REZACCEPT()

Local $PACKET, $PACKETSIZE

$PACKET = "5700"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func STARTORSTOP()

If $STOP = True Then

GUICtrlSetData($BUTTON_START, "Stop")

GUICtrlSetOnEvent($BUTTON_START, "StartOrStop")

GUICtrlSetData($MENUITEM4, "Stop")

GUICtrlSetOnEvent($MENUITEM4, "StartOrStop")

GUICtrlSetData($LOG, "")

ADDHISTORY("[[[Afford Bot Started]]]")

$TIMER_APOTHOCARY_RAIL = TimerInit()

$STOP = False

Else

GUICtrlSetData($BUTTON_START, "Start")

GUICtrlSetOnEvent($BUTTON_START, "StartOrStop")

GUICtrlSetData($MENUITEM4, "Start")

GUICtrlSetOnEvent($MENUITEM4, "StartOrStop")

ADDHISTORY("[[[Afford Bot Stopped]]]")

$STOP = True

EndIf

EndFunc

 

 

Func SETHOMEXYZ()

$HOME_X = $X

$HOME_Y = $Y

$HOME_Z = $Z

If Not @error Then

$ATTACK_RAD = GUICtrlRead($INPT_RAD)

If GUICtrlRead($INPT_RAD) <> 0 Then

ADDHISTORY("Base = " & Round(($HOME_X + 4000) / 10, 1) & "/" & Round(($HOME_Y + 5500) / 10, 1) & " With A " & GUICtrlRead($INPT_RAD) & " Radius")

Else

ADDHISTORY("Base = " & Round(($HOME_X + 4000) / 10, 1) & "/" & Round(($HOME_Y + 5500) / 10, 1) & " With No Radius")

EndIf

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, GUICtrlRead($INPT_RAD))

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEX_KEY, $HOME_X)

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEY_KEY, $HOME_Y)

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEZ_KEY, $HOME_Z)

EndIf

EndFunc

 

 

Func DONATE()

ShellExecute($DEFAULT_BROWSER_PATH, "

É necessário se cadastrar para acessar o conteúdo.
)

EndFunc

 

 

Func WINDOWCLOSECLICKED()

Local $SOFTWAREWINPOS

$SOFTWAREWINPOS = WinGetPos($SOFTWARE_TITLE)

If $SOFTWAREWINPOS[0] <> 32000 Then

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_X, $SOFTWAREWINPOS[0])

EndIf

If $SOFTWAREWINPOS[1] <> 32000 Then

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_Y, $SOFTWAREWINPOS[1])

EndIf

Exit

EndFunc

 

 

Func SETSKILLS()

Global $FORM_SKILL = GUICreate("Skills", 250, 400, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowSkillCloseClicked")

GUISwitch($FORM_SKILL)

GUISetBkColor(65280)

GUISetFont(9, 800, 0, "MS Sans Serif")

Global $HISTORY = GUICtrlCreateGroup("Skill List", 0, 0, 250, 399)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($HISTORY), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetTip(-1, "Skills List")

Global $SCOMBOKEY[9], $SKCOUNT, $LABELSK1[9], $LABELSK2[9], $LABELSK3[9], $SDELAY[9], $FORM_SKILL

$SKCOUNTCFG = IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_UBOUND_KEY, 1)

GUISetFont(8, 800, 0, "Arial")

Global $BUTTON_ADD_SKILL = GUICtrlCreateButton("Add", 75, 28, 50, 18)

GUICtrlSetOnEvent(-1, "AddSkill")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $BUTTON_REMOVE_SKILL = GUICtrlCreateButton("Remove", 130, 28, 50, 18)

GUICtrlSetOnEvent(-1, "RemoveSkill")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $BUTTON_SAVE_SKILLS = GUICtrlCreateButton("Save", 185, 28, 50, 18)

GUICtrlSetOnEvent(-1, "SaveSkills")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

For $SKCOUNT = 1 To IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_UBOUND_KEY, 1) Step +1

$LABELSK1[$SKCOUNT] = GUICtrlCreateLabel("Key", 20, 57 + ($SKCOUNT - 1) * 42, 30, 20)

GUICtrlSetColor(-1, 0)

$SCOMBOKEY[$SKCOUNT] = GUICtrlCreateCombo("", 50, 55 + ($SKCOUNT - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $SKCOUNT, "{F1}"))

$LABELSK2[$SKCOUNT] = GUICtrlCreateLabel("Delay", 120, 57 + ($SKCOUNT - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$SDELAY[$SKCOUNT] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_DELAY_KEY & $SKCOUNT, "1"), 155, 55 + ($SKCOUNT - 1) * 42, 40, 20)

$LABELSK3[$SKCOUNT] = GUICtrlCreateLabel("Secs", 200, 57 + ($SKCOUNT - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

Next

$SKCOUNT = $SKCOUNT - 1

GUISetState(@SW_SHOW, $FORM_SKILL)

EndFunc

 

 

Func ADDSKILL()

GUISwitch($FORM_SKILL)

$SKCOUNTCFG = $SKCOUNTCFG + 1

If $SKCOUNTCFG >= 9 Then

$SKCOUNTCFG = 9

MsgBox(0, "Error", "Max Skills Reached")

Else

$LABELSK1[$SKCOUNTCFG] = GUICtrlCreateLabel("Key", 20, 57 + ($SKCOUNTCFG - 1) * 42, 30, 20)

GUICtrlSetColor(-1, 0)

$SCOMBOKEY[$SKCOUNTCFG] = GUICtrlCreateCombo("", 50, 55 + ($SKCOUNTCFG - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $SKCOUNTCFG, "{F1}"))

$LABELSK2[$SKCOUNTCFG] = GUICtrlCreateLabel("Delay", 120, 57 + ($SKCOUNTCFG - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$SDELAY[$SKCOUNTCFG] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_DELAY_KEY & $SKCOUNTCFG, "1"), 155, 55 + ($SKCOUNTCFG - 1) * 42, 40, 20)

$LABELSK3[$SKCOUNTCFG] = GUICtrlCreateLabel("secs", 200, 57 + ($SKCOUNTCFG - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

EndIf

EndFunc

 

 

Func REMOVESKILL()

GUISwitch($FORM_SKILL)

If $SKCOUNTCFG < 2 Then

$SKCOUNTCFG = 1

MsgBox(0, "Error", "Minimum Skills Reached")

Else

GUICtrlDelete($SCOMBOKEY[$SKCOUNTCFG])

GUICtrlDelete($LABELSK1[$SKCOUNTCFG])

GUICtrlDelete($LABELSK2[$SKCOUNTCFG])

GUICtrlDelete($LABELSK3[$SKCOUNTCFG])

GUICtrlDelete($SDELAY[$SKCOUNTCFG])

$SKCOUNTCFG = $SKCOUNTCFG - 1

EndIf

EndFunc

 

 

Func SAVESKILLS()

$COUNT = 1

$MAX = $SKCOUNTCFG

$ACTIVE_SKILL = 1

IniWrite($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_UBOUND_KEY, $MAX)

IniWrite($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $COUNT, GUICtrlRead($SCOMBOKEY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_DELAY_KEY & $COUNT, GUICtrlRead($SDELAY[$COUNT]))

Do

$COUNT = $COUNT + 1

IniWrite($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $COUNT, GUICtrlRead($SCOMBOKEY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_DELAY_KEY & $COUNT, GUICtrlRead($SDELAY[$COUNT]))

Sleep(2)

Until $COUNT >= $MAX

GUIDelete($FORM_SKILL)

EndFunc

 

 

Func WINDOWSKILLCLOSECLICKED()

GUIDelete($FORM_SKILL)

EndFunc

 

 

Func SETLIFESUPPORT()

Global $FORM_LIFESUPPORT = GUICreate("Life Support", 621, 320, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowLifeSupportCloseClicked")

GUISwitch($FORM_LIFESUPPORT)

GUISetBkColor(65280)

Global $CHECK_AUTO_REST_HP, $CHECK_AUTO_REST_MP, $SLIDE_AUTO_REST_HP, $SLIDE_AUTO_REST_MP, $REST_KEY

Global $GROUP_AUTO_REST = GUICtrlCreateGroup("Automatic Rest", 5, 5, 160, 215)

GUICtrlSetOnEvent(-1, "SaveAutoPotRest")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_AUTO_REST), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetTip(-1, "Bot Status")

Global $CHECK_AUTO_REST_HP = GUICtrlCreateCheckbox("Restore HP", 20, 25, 90, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTO_REST_HP), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_KEY, "0") = 1 Then

$STATE = $GUI_CHECKED

Else

$STATE = $GUI_UNCHECKED

EndIf

GUICtrlSetState(-1, $STATE)

Global $SLIDE_AUTO_REST_HP = GUICtrlCreateSlider(25, 50, 100, 20)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_PERC_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetLimit(-1, 100, 0)

GUICtrlCreateLabel("0 50 100% HP", 30, 70, 120, 20)

GUICtrlSetColor(-1, 0)

Global $CHECK_AUTO_REST_MP = GUICtrlCreateCheckbox("Restore MP", 20, 100, 90, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTO_REST_MP), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 255)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $SLIDE_AUTO_REST_MP = GUICtrlCreateSlider(25, 130, 100, 20)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_PERC_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetLimit(-1, 100, 0)

GUICtrlCreateLabel("0 50 100% MP", 30, 150, 120, 20)

GUICtrlSetColor(-1, 0)

GUICtrlCreateLabel("Key:", 20, 180, 50, 20)

GUICtrlSetColor(-1, 0)

Global $REST_KEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "--"), 60, 180, 50, 20)

GUICtrlSetData(-1, $KEYCODE, "")

Global $CHECK_AUTO_PICK, $AUTO_PICK_TIMES, $AUTO_PICK_KEY

Global $GROUP_AUTO_PICK = GUICtrlCreateGroup("Automatic Get Loot", 170, 5, 445, 75)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_AUTO_PICK), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

Global $CHECK_AUTO_PICK = GUICtrlCreateCheckbox("Auto Loot", 185, 25, 80, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTO_PICK), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 8388736)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

GUICtrlCreateLabel("Key:", 275, 28, 40, 20)

GUICtrlSetColor(-1, 0)

Global $AUTO_PICK_KEY = GUICtrlCreateCombo("", 305, 25, 50, 50)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_KEY, "--"))

Global $CHECK_AUTO_PICKHERBS = GUICtrlCreateCheckbox("Get Herbs", 185, 50, 80, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTO_PICKHERBS), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 32768)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTHERBS_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $CHECK_AUTO_PICKRESOURCES = GUICtrlCreateCheckbox("Get Resources", 285, 50, 120, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTO_PICKRESOURCES), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 8404992)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTRESOURCES_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $BUTTON_RESETMININGFILES = GUICtrlCreateButton("Reset Files", 410, 52, 80, 18)

GUICtrlSetOnEvent(-1, "ResetMiningFiles")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $CHECK_MOVE_TO_CORPSE = GUICtrlCreateCheckbox("Move To Corpse", 375, 25, 120, 18)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_MOVE_TO_CORPSE), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_MOVE_TO_CORPSE_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $CHECK_AUTOPOT_FLAG_HP, $CHECK_AUTOPOT_FLAG_MP, $SLIDE_AUTOPOT_HP, $SLIDE_AUTOPOT_MP, $AUTOPOT_HP_PERC, $AUTOPOT_MP_PERC

Global $AUTOPOT_HP_KEY, $AUTOPOT_MP_KEY

Global $CHECK_RES_ON_DIE

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

Global $GROUP_AUTOPOT = GUICtrlCreateGroup("Automatic Pot", 170, 85, 445, 135)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_AUTOPOT), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

Global $CHECK_AUTOPOT_FLAG_HP = GUICtrlCreateCheckbox("Auto-Pot HP", 185, 105, 90, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTOPOT_FLAG_HP), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_FLAG_KEY, "0") = 1 Then

$STATE = $GUI_CHECKED

Else

$STATE = $GUI_UNCHECKED

EndIf

GUICtrlSetState(-1, $STATE)

Global $SLIDE_AUTOPOT_HP = GUICtrlCreateSlider(190, 135, 100, 20)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_PERC_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetLimit(-1, 100, 0)

GUICtrlCreateLabel("0 50 100% HP", 195, 155, 120, 20)

GUICtrlSetColor(-1, 0)

GUICtrlCreateLabel("Key:", 185, 182, 50, 20)

GUICtrlSetColor(-1, 0)

Global $AUTOPOT_HP_KEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_KEY, "--"), 210, 180, 45, 20)

GUICtrlSetData(-1, $KEYCODE, "")

Global $AUTOPOT_HP_TIMER = GUICtrlCreateInput("", 260, 180, 20, 21)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_TIMER, "1"))

GUICtrlCreateLabel("Sec", 285, 182, 20, 20)

GUICtrlSetColor(-1, 0)

Global $AUTOHP_KEY, $CHECK_AUTOHP_FLAG, $SLIDE_AUTOHP, $AUTOHP_PERC, $CFG_HEAL_AUTOHP_FLAG_KEY = $NAME & "--" & "AUTOHPFlag", $CFG_HEAL_AUTOHP_PERC_KEY = $NAME & "--" & "AUTOHPPerc", $CFG_HEAL_AUTOHP_KEY = $NAME & "--" & "AUTOHPKey"

Global $CHECK_AUTOHP_FLAG = GUICtrlCreateCheckbox("Auto-HP 2", 330, 105, 90, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTOHP_FLAG), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $SLIDE_AUTOHP = GUICtrlCreateSlider(335, 135, 100, 20)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_PERC_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetLimit(-1, 100, 0)

GUICtrlCreateLabel("0 50 100% HP", 340, 155, 120, 20)

GUICtrlSetColor(-1, 0)

GUICtrlCreateLabel("Key:", 330, 182, 50, 20)

GUICtrlSetColor(-1, 0)

Global $AUTOHP_KEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_KEY, "--"), 355, 180, 45, 20)

GUICtrlSetData(-1, $KEYCODE, "")

Global $AUTOHP_TIMER = GUICtrlCreateInput("", 405, 180, 20, 21)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_TIMER, "1"))

GUICtrlCreateLabel("Sec", 430, 182, 20, 20)

GUICtrlSetColor(-1, 0)

Global $CHECK_AUTOPOT_FLAG_MP = GUICtrlCreateCheckbox("Auto-Pot MP", 475, 105, 90, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTOPOT_FLAG_MP), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 255)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $SLIDE_AUTOPOT_MP = GUICtrlCreateSlider(480, 135, 100, 20)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_PERC_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetLimit(-1, 100, 0)

GUICtrlCreateLabel("0 50 100% MP", 485, 155, 120, 20)

GUICtrlSetColor(-1, 0)

GUICtrlCreateLabel("Key:", 475, 182, 50, 20)

GUICtrlSetColor(-1, 0)

Global $AUTOPOT_MP_KEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_KEY, "--"), 500, 180, 45, 20)

GUICtrlSetData(-1, $KEYCODE, "")

Global $GROUP_AUTO_RAIL = GUICtrlCreateGroup("Rail Systems", 5, 220, 505, 95)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_AUTO_RAIL), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetTip(-1, "Bot Status")

Global $CHECK_RES_ON_DIE = GUICtrlCreateCheckbox("Res On Die", 20, 240, 120, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_RES_ON_DIE), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_RES_ON_DIE_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $BUTTON_SETRESURRECTRAIL = GUICtrlCreateButton("Set Rail", 165, 240, 80, 18)

GUICtrlSetOnEvent(-1, "SetResurrectRail")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $BUTTON_TESTRESURRECTRAIL = GUICtrlCreateButton("Test Rail", 255, 240, 80, 18)

GUICtrlSetOnEvent(-1, "RunResurrectRail")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $CHECK_APOTHOCARY_RAIL = GUICtrlCreateCheckbox("Apothocary Rail", 20, 262, 120, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_APOTHOCARY_RAIL), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_RAIL_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $BUTTON_SETAPOTHOCARYRAIL = GUICtrlCreateButton("Set Rail", 165, 262, 80, 18)

GUICtrlSetOnEvent(-1, "SetApothocaryRail")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $BUTTON_TESAPOTHOCARYRAIL = GUICtrlCreateButton("Test Rail", 255, 262, 80, 18)

GUICtrlSetOnEvent(-1, "RunApothocaryRail")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlCreateLabel("How Often:", 350, 264, 60, 20)

GUICtrlSetColor(-1, 0)

Global $APOTHOCARY_TIMER = GUICtrlCreateInput("", 410, 262, 30, 18)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_TIMER_KEY, "1"))

GUICtrlCreateLabel("Hours", 445, 264, 60, 20)

GUICtrlSetColor(-1, 0)

Global $BUTTON_SETDONOTSELLLIST = GUICtrlCreateButton("Set Do Not Sell List", 165, 284, 170, 18)

GUICtrlSetOnEvent(-1, "BuildDoNotSellList")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlCreateLabel("<- Will not sell any items in pack", 350, 286, 150, 20)

GUICtrlSetColor(-1, 0)

Global $CHK_FLYMODE = GUICtrlCreateCheckbox("FLYMODE", 20, 286, 120, 18)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHK_FLYMODE), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

GUICtrlCreateLabel("<= CPU Throttle", 535, 228, 80, 30)

GUICtrlSetColor(-1, 0)

Global $SLIDE_CPUTHROTTLE = GUICtrlCreateSlider(513, 226, 18, 90, BitOR($TBS_VERT, $TBS_AUTOTICKS, $TBS_NOTICKS))

GUICtrlSetLimit(-1, 750, 100)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_CPU_THROTTLE_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetColor(-1, 0)

Global $BUTTON_SAVE_AUTOPOTREST = GUICtrlCreateButton("Save", 534, 298, 80, 18)

GUICtrlSetOnEvent(-1, "SaveAutoPotRest")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUISetState(@SW_SHOW, $FORM_LIFESUPPORT)

EndFunc

 

 

Func SETRESURRECTRAIL()

$CURRENTRAIL = "Resurrect"

$RAIL_LIST_COUNT = 0

ToolTip("Now go back to the game!", 0, 0)

WinWaitActive($APP_TITLE)

ToolTip("Go to nearest Teleport Master and press F11. Run to hunting ground pressing F11 every 20+ meters", 0, 0)

HotKeySet("{F11}", "SaveRailPointInList")

EndFunc

 

 

Func RUNRESURRECTRAIL()

$CURRENTRAIL = "Resurrect"

RUNRAIL()

EndFunc

 

 

Func SETAPOTHOCARYRAIL()

ToolTip("Now go back to the game!", 0, 0)

WinWaitActive($APP_TITLE)

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, 0)

ToolTip("Go to nearest Apothocary, select it, and press Shift + F10", 0, 0)

HotKeySet("+{F10}", "SetApothocaryID")

Sleep(2)

Do

SITUATIONALAWARENESS()

Sleep(10)

Until IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, "") <> 0

HotKeySet("+{F10}", "")

ADDHISTORY("Set Apothocary ID = " & IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, ""))

$CURRENTRAIL = "Apothocary"

$RAIL_LIST_COUNT = 0

ToolTip("Now go back to the game!", 0, 0)

WinWaitActive($APP_TITLE)

ToolTip("press F11 now, Run to hunting ground pressing F11 every 20+ meters", 0, 0)

HotKeySet("{F11}", "SaveRailPointInList")

EndFunc

 

 

Func SETAPOTHOCARYID()

If $TARDIS < 20 Then

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, $TAR)

Else

ToolTip("Stand closer to Apothocary ", 0, 0)

EndIf

EndFunc

 

 

Func RUNAPOTHOCARYRAIL()

$CURRENTRAIL = "Apothocary"

If $HP > 0 Then

Sleep(10)

FLYMODE()

RUNRAIL()

EndIf

Sleep(1)

BUILDNPCARRAY()

Local $TEMPNPCARRAY[1][13], $TEMPNPCARRAYSIZE

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Running Apothocary Rail")

$TEMPNPCARRAY = $NPCARRAY

$TEMPNPCARRAYSIZE = UBound($TEMPNPCARRAY)

For $A = 0 To $TEMPNPCARRAYSIZE - 1

If IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, "") = $TEMPNPCARRAY[$A][0] And $TEMPNPCARRAY[$A][10] < 30 Then

Sleep(1)

TALKTONPC(IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, ""))

Sleep(10)

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0

Sleep(20)

REPAIRALL()

Sleep(20)

SELLITEMS()

Sleep(20)

BUYITEMS()

Sleep(20)

_SENDMESSAGE($HANDLE, 256, KEYCODE("{ESC}"))

Sleep(200)

RUNAPOTHOCARYRAIL()

$TIMER_APOTHOCARY_RAIL = TimerInit()

EndIf

Next

EndFunc

 

 

Func TALKTOAPOTHOCARY()

ADDHISTORY("Trying to talk to NPC")

Sleep(1)

TALKTONPC(IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, ""))

EndFunc

 

 

Func RUNRAIL()

If Round(10 * Sqrt((($X + 4000) / 10 - Round((IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & "1", "0") + 4000) / 10, 2)) ^ 2 + (($Y + 5500) / 10 - Round((IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & "1", "0") + 5500) / 10, 2)) ^ 2 + ($Z / 10 - Round(IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & "1", "0") / 10, 2)) ^ 2), 1) < Round(10 * Sqrt((($X + 4000) / 10 - Round((IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, ""), "0") + 4000) / 10, 2)) ^ 2 + (($Y + 5500) / 10 - Round((IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, ""), "0") + 5500) / 10, 2)) ^ 2 + (($Z / 10) - Round(IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, ""), "0") / 10, 2)) ^ 2), 1) Then

$RAIL_LIST_COUNT = 0

Do

Sleep(10)

SITUATIONALAWARENESS()

If $HP > 0 Then

FLYMODE()

HPMPAUTOPOTCHECK()

EndIf

Sleep(1)

If $KILL = 0 Then

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT + 1

$MOVEING = 1

$LASTTARX[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARX[1] = Round(($LASTTARX[2] + 4000) / 10, 2)

$LASTTARZ[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARZ[1] = Round(($LASTTARZ[2]) / 10, 2)

$LASTTARY[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARY[1] = Round(($LASTTARY[2] + 5500) / 10, 2)

MOVETOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $LASTTARZ[1])

If $KILL = 1 Then

If $TAR <> 0 Then

ADDHISTORY("Defending During Movement")

$TARGET = $TAR

$HADTARGET = 1

Sleep(1)

KILLTARGET()

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT - 1

Sleep(2)

EndIf

EndIf

ElseIf $KILL = 1 Then

$KILL = 0

$LASTTARX[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARX[1] = Round(($LASTTARX[2] + 4000) / 10, 2)

$LASTTARZ[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARZ[1] = Round(($LASTTARZ[2]) / 10, 2)

$LASTTARY[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARY[1] = Round(($LASTTARY[2] + 5500) / 10, 2)

MOVETOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $LASTTARZ[1])

If $TAR <> 0 Then

ADDHISTORY("Defending During Movement")

$TARGET = $TAR

$HADTARGET = 1

Sleep(1)

KILLTARGET()

EndIf

EndIf

If $STOP = True Then

Return

EndIf

Sleep(1)

Until $RAIL_LIST_COUNT >= "251" Or $RAIL_LIST_COUNT >= IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, "") Or $HP = 0

Else

$RAIL_LIST_COUNT = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, "")

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT - 1

Do

Sleep(10)

SITUATIONALAWARENESS()

If $HP > 0 Then

FLYMODE()

HPMPAUTOPOTCHECK()

EndIf

Sleep(1)

If $KILL = 0 Then

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT - 1

$MOVEING = 1

$LASTTARX[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARX[1] = Round(($LASTTARX[2] + 4000) / 10, 2)

$LASTTARZ[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARZ[1] = Round(($LASTTARZ[2]) / 10, 2)

$LASTTARY[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARY[1] = Round(($LASTTARY[2] + 5500) / 10, 2)

Sleep(10)

MOVETOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $LASTTARZ[1])

If $KILL = 1 Then

If $TAR <> 0 Then

ADDHISTORY("Defending During Movement")

$TARGET = $TAR

$HADTARGET = 1

Sleep(10)

KILLTARGET()

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT + 1

Sleep(2)

EndIf

EndIf

ElseIf $KILL = 1 Then

$KILL = 0

$LASTTARX[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARX[1] = Round(($LASTTARX[2] + 4000) / 10, 2)

$LASTTARZ[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARZ[1] = Round(($LASTTARZ[2]) / 10, 2)

$LASTTARY[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARY[1] = Round(($LASTTARY[2] + 5500) / 10, 2)

Sleep(10)

MOVETOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $LASTTARZ[1])

If $TAR <> 0 Then

ADDHISTORY("Defending During Movement")

$TARGET = $TAR

$HADTARGET = 1

Sleep(1)

KILLTARGET()

EndIf

EndIf

If $STOP = True Then

Return

EndIf

Sleep(1)

Until $RAIL_LIST_COUNT = 1 Or $HP = 0

EndIf

$MOVEING = 0

EndFunc

 

 

Func SAVERAILPOINTINLIST()

HotKeySet("{F10}", "EndRailPointList")

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT + 1

If $RAIL_LIST_COUNT <= 250 Then

If $RAIL_LIST_COUNT <= 249 Then

ToolTip("Rail Point " & $RAIL_LIST_COUNT & " Saved" & @CRLF & "Run to next point and press F11 to set or F10 To end", 0, 0)

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, $RAIL_LIST_COUNT)

Else

ToolTip("Rail Point " & $RAIL_LIST_COUNT & " Saved" & @CRLF & "Maximum Rail Points Reached", 0, 0)

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, $RAIL_LIST_COUNT)

EndIf

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_X, $PROCESS_INFORMATION, "float"))

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Y, $PROCESS_INFORMATION, "float"))

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Z, $PROCESS_INFORMATION, "float"))

Sleep(15)

ToolTip("")

Else

ToolTip("Max Rail Points Reached. Test Rail for Errors", 0, 0)

EndIf

EndFunc

 

 

Func ENDRAILPOINTLIST()

ToolTip("Rail Finished, Test Rail for Errors", 0, 0)

Sleep(10)

ToolTip("")

HotKeySet("{F10}")

HotKeySet("{F11}")

EndFunc

 

 

Func RESETMININGFILES()

Global $HERBS[31] = ["", "Nectar", "Salvia Root", "Ageratum", "Golden Herb", "Tranquillia Herb", "Elderwood", "Elecampane", "Realgar", "Palo Herb", "Tuckahoe", "Crane Herb", "Black Henbane", "Fleece-flower Root", "Green Berry", "Ligumaloes Wood", "Valdia Root", "Serpentine Herb", "Ox Bezoar", "Tulip", "Perfumedew Herb", "Butterfly Herb", "Tiger-ear Herb", "Red Berry", "Worm Sprouts", "White Berry", "Devilwood", "Scented Fungus", "Tiery Herb", "Longen Herb"]

_FILEWRITEFROMARRAY("Afford Config/" & $NAME & "_HerbsToLoot.gat", $HERBS, 1)

Global $RESOURCES[23] = ["", "Withered Tree Root", "Old Tree Root", "Willow Stake", "Peatree Stake", "Dragonwood Stake", "Cinnabar Ore", "Iron Ore", "Black Iron Ore", "Manganese Iron Ore", "Hsuan Iron Ore", "Meteorite Iron Ore", "Sandstone Rock", "Gravel Pile", "Rubstone Rock", "Corundum Rock", "Granite ROck", "Rough Coal Stack", "Coal Stack", "Fine Coal Stack", "Volcanic Coal Stack", "Lava Coal Stack"]

_FILEWRITEFROMARRAY("Afford Config/" & $NAME & "_ResourcesToLoot.gat", $RESOURCES, 1)

EndFunc

 

 

Func SAVEAUTOPOTREST()

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_KEY, GUICtrlRead($CHECK_AUTO_REST_HP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_PERC_KEY, GUICtrlRead($SLIDE_AUTO_REST_HP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_KEY, GUICtrlRead($CHECK_AUTO_REST_MP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_PERC_KEY, GUICtrlRead($SLIDE_AUTO_REST_MP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, GUICtrlRead($REST_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, GUICtrlRead($CHK_FLYMODE))

IniWrite($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, GUICtrlRead($CHECK_AUTO_PICK))

IniWrite($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_KEY, GUICtrlRead($AUTO_PICK_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_TIMES_KEY, GUICtrlRead($AUTO_PICK_TIMES))

IniWrite($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTHERBS_FLAG_KEY, GUICtrlRead($CHECK_AUTO_PICKHERBS))

IniWrite($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTRESOURCES_FLAG_KEY, GUICtrlRead($CHECK_AUTO_PICKRESOURCES))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_FLAG_KEY, GUICtrlRead($CHECK_AUTOPOT_FLAG_HP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_PERC_KEY, GUICtrlRead($SLIDE_AUTOPOT_HP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_KEY, GUICtrlRead($AUTOPOT_HP_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_TIMER, GUICtrlRead($AUTOPOT_HP_TIMER))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_FLAG_KEY, GUICtrlRead($CHECK_AUTOHP_FLAG))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_PERC_KEY, GUICtrlRead($SLIDE_AUTOHP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_KEY, GUICtrlRead($AUTOHP_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_TIMER, GUICtrlRead($AUTOHP_TIMER))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_FLAG_KEY, GUICtrlRead($CHECK_AUTOPOT_FLAG_MP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_PERC_KEY, GUICtrlRead($SLIDE_AUTOPOT_MP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_KEY, GUICtrlRead($AUTOPOT_MP_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_RES_ON_DIE_KEY, GUICtrlRead($CHECK_RES_ON_DIE))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_MOVE_TO_CORPSE_KEY, GUICtrlRead($CHECK_MOVE_TO_CORPSE))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_RAIL_KEY, GUICtrlRead($CHECK_APOTHOCARY_RAIL))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_TIMER_KEY, GUICtrlRead($APOTHOCARY_TIMER))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_CPU_THROTTLE_KEY, GUICtrlRead($SLIDE_CPUTHROTTLE))

GUIDelete($FORM_LIFESUPPORT)

EndFunc

 

 

Func WINDOWLIFESUPPORTCLOSECLICKED()

HotKeySet("{F11}")

HotKeySet("{F10}")

GUIDelete($FORM_LIFESUPPORT)

EndFunc

 

 

Func SETPETSUPPORT()

Global $FORM_PETSUPPORT = GUICreate("Pet Support", 250, 259, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowPetSupportCloseClicked")

GUISetBkColor(65280)

GUISwitch($FORM_PETSUPPORT)

Global $GROUP_PETSUPPORT = GUICtrlCreateGroup("Pet Support", 0, 0, 250, 400)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_PETSUPPORT), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

Global $PETNO = IniRead("smurfit.ini", "WF Pet", "petslot", "1")

Global $CHECK_HEALPET = GUICtrlCreateCheckbox("Auto Heal Pet", 5, 20, 100, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_HEALPET), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_CHECK_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $CHECK_PETATTACK = GUICtrlCreateCheckbox("Pet Attack First", 120, 20, 125, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_PETATTACK), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETATTACK_CHECK_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $GROUP_PETSETTING = GUICtrlCreateGroup("Auto Heal Pet Settings", 25, 40, 200, 196)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_PETSETTING), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

Global $LABEL_PETSLOT = GUICtrlCreateLabel("Pet Slot :", 90, 61, 52, 18)

GUICtrlSetColor(-1, 0)

Global $LABEL_PETHEALHP = GUICtrlCreateLabel("HP To Heal At :", 58, 91, 79, 18)

GUICtrlSetColor(-1, 0)

Global $LABEL_PETHEALKEY = GUICtrlCreateLabel("Heal Pet Key :", 65, 119, 70, 18)

GUICtrlSetColor(-1, 0)

Global $LABEL_PETFEEDKEY = GUICtrlCreateLabel("Feed Pet Key :", 63, 148, 70, 18)

GUICtrlSetColor(-1, 0)

Global $LABEL_PETSUMMONKEY = GUICtrlCreateLabel("Summon Pet Key :", 47, 177, 90, 18)

GUICtrlSetColor(-1, 0)

Global $LABEL_PETREZKEY = GUICtrlCreateLabel("Rez Pet Key :", 69, 203, 90, 18)

GUICtrlSetColor(-1, 0)

Global $INPUT_PETSLOT = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SLOT_KEY, "0"), 148, 59, 50, 22)

Global $INPUT_PETHP = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HP_KEY, "0"), 148, 88, 50, 22)

Global $INPUT_PETHEALKEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HEALKEY_KEY, "--"), 148, 117, 50, 22)

GUICtrlSetData(-1, $KEYCODE, "")

Global $INPUT_PETFEEDKEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_FEEDKEY_KEY, "--"), 148, 146, 50, 22)

GUICtrlSetData(-1, $KEYCODE, "")

Global $INPUT_PETSUMMONKEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SUMMONKEY_KEY, "--"), 148, 175, 50, 22)

GUICtrlSetData(-1, $KEYCODE, "")

Global $INPUT_PETREZKEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_REZKEY_KEY, "--"), 148, 203, 50, 22)

GUICtrlSetData(-1, $KEYCODE, "")

Global $BUTTON_SAVE_PETSETTING = GUICtrlCreateButton("Save", 146, 239, 80, 18)

GUICtrlSetOnEvent(-1, "SaveSetPetSupport")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUISetState(@SW_SHOW, $FORM_PETSUPPORT)

EndFunc

 

 

Func SAVESETPETSUPPORT()

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_CHECK_KEY, GUICtrlRead($CHECK_HEALPET))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SLOT_KEY, GUICtrlRead($INPUT_PETSLOT))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HP_KEY, GUICtrlRead($INPUT_PETHP))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETATTACK_CHECK_KEY, GUICtrlRead($CHECK_PETATTACK))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HEALKEY_KEY, GUICtrlRead($INPUT_PETHEALKEY))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_FEEDKEY_KEY, GUICtrlRead($INPUT_PETFEEDKEY))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SUMMONKEY_KEY, GUICtrlRead($INPUT_PETSUMMONKEY))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_REZKEY_KEY, GUICtrlRead($INPUT_PETREZKEY))

GUIDelete($FORM_PETSUPPORT)

EndFunc

 

 

Func WINDOWPETSUPPORTCLOSECLICKED()

GUIDelete($FORM_PETSUPPORT)

EndFunc

 

 

Func SETAUTOBUFFS()

Global $FORM_BUFFS = GUICreate("Auto-Buff", 370, 230, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowAutoBuffCloseClicked")

GUISetBkColor(65280)

GUISwitch($FORM_BUFFS)

Global $BUFFSCOMBOKEY[9], $BUFFSCOUNT, $LABELBUFFS1[9], $LABELBUFFS2[9], $LABELBUFFS3[9], $LABELBUFFS4[9], $LABELBUFFS5[9], $BUFFSDELAY[9], $BUFFSFREQUENCY[9]

Global $BUFFS_FLAG

$SKCOUNTCFG_BUFFS = IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, 1)

$GROUP_BUFFS = GUICtrlCreateGroup("Buffs", 0, 0, 370, 230)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_BUFFS), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

$BUTTON_ADD_BUFFS = GUICtrlCreateButton("Add", 75, 28, 50, 18)

GUICtrlSetOnEvent(-1, "AddBuffs")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$BUTTON_REMOVE_BUFFS = GUICtrlCreateButton("Remove", 130, 28, 50, 18)

GUICtrlSetOnEvent(-1, "RemoveBuffs")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$BUTTON_SAVE_BUFFS = GUICtrlCreateButton("Save", 185, 28, 50, 18)

GUICtrlSetOnEvent(-1, "SaveBuffs")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$BUFFS_FLAG = GUICtrlCreateCheckbox("Use Auto-Buff", 250, 28, 100, 18)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($BUFFS_FLAG), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

For $BUFFSCOUNT = 1 To IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, 1) Step +1

$LABELBUFFS1[$BUFFSCOUNT] = GUICtrlCreateLabel("Key", 20, 57 + ($BUFFSCOUNT - 1) * 42, 30, 20)

GUICtrlSetColor(-1, 0)

$BUFFSCOMBOKEY[$BUFFSCOUNT] = GUICtrlCreateCombo("", 50, 55 + ($BUFFSCOUNT - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $BUFFSCOUNT, "{F1}"))

$LABELBUFFS2[$BUFFSCOUNT] = GUICtrlCreateLabel("Delay", 120, 57 + ($BUFFSCOUNT - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$BUFFSDELAY[$BUFFSCOUNT] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_DELAY_KEY & $BUFFSCOUNT, "1"), 155, 55 + ($BUFFSCOUNT - 1) * 42, 40, 20)

$LABELBUFFS3[$BUFFSCOUNT] = GUICtrlCreateLabel("secs", 200, 57 + ($BUFFSCOUNT - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

$LABELBUFFS4[$BUFFSCOUNT] = GUICtrlCreateLabel("Interval", 235, 57 + ($BUFFSCOUNT - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$BUFFSFREQUENCY[$BUFFSCOUNT] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FREQUENCY_KEY & $BUFFSCOUNT, "1"), 280, 55 + ($BUFFSCOUNT - 1) * 42, 40, 20)

$LABELBUFFS5[$BUFFSCOUNT] = GUICtrlCreateLabel("mins", 325, 57 + ($BUFFSCOUNT - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

Next

$BUFFSCOUNT = $BUFFSCOUNT - 1

GUISetState(@SW_SHOW, $FORM_BUFFS)

EndFunc

 

 

Func ADDBUFFS()

GUISwitch($FORM_BUFFS)

$SKCOUNTCFG_BUFFS = $SKCOUNTCFG_BUFFS + 1

If $SKCOUNTCFG_BUFFS >= 5 Then

$SKCOUNTCFG_BUFFS = 4

MsgBox(0, "Error", "Max Auto-Buffs Reached")

Else

$LABELBUFFS1[$SKCOUNTCFG_BUFFS] = GUICtrlCreateLabel("Key", 20, 57 + ($SKCOUNTCFG_BUFFS - 1) * 42, 30, 20)

GUICtrlSetColor(-1, 0)

$BUFFSCOMBOKEY[$SKCOUNTCFG_BUFFS] = GUICtrlCreateCombo("", 50, 55 + ($SKCOUNTCFG_BUFFS - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $SKCOUNTCFG_BUFFS, "{F1}"))

$LABELBUFFS2[$SKCOUNTCFG_BUFFS] = GUICtrlCreateLabel("Delay", 120, 57 + ($SKCOUNTCFG_BUFFS - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$BUFFSDELAY[$SKCOUNTCFG_BUFFS] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_DELAY_KEY & $SKCOUNTCFG_BUFFS, "1"), 155, 55 + ($SKCOUNTCFG_BUFFS - 1) * 42, 40, 20)

$LABELBUFFS3[$SKCOUNTCFG_BUFFS] = GUICtrlCreateLabel("secs", 200, 57 + ($SKCOUNTCFG_BUFFS - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

$LABELBUFFS4[$SKCOUNTCFG_BUFFS] = GUICtrlCreateLabel("Interval", 235, 57 + ($SKCOUNTCFG_BUFFS - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$BUFFSFREQUENCY[$SKCOUNTCFG_BUFFS] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FREQUENCY_KEY & $BUFFSCOUNT, "1"), 280, 55 + ($SKCOUNTCFG_BUFFS - 1) * 42, 40, 20)

$LABELBUFFS5[$SKCOUNTCFG_BUFFS] = GUICtrlCreateLabel("mins", 325, 57 + ($SKCOUNTCFG_BUFFS - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

EndIf

EndFunc

 

 

Func REMOVEBUFFS()

GUISwitch($FORM_BUFFS)

If $SKCOUNTCFG_BUFFS < 2 Then

$SKCOUNTCFG_BUFFS = 1

MsgBox(0, "Error", "Minimum Auto-Buffs Reached")

Else

GUICtrlDelete($BUFFSCOMBOKEY[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($LABELBUFFS1[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($LABELBUFFS2[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($LABELBUFFS3[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($LABELBUFFS4[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($LABELBUFFS5[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($BUFFSDELAY[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($BUFFSFREQUENCY[$SKCOUNTCFG_BUFFS])

$SKCOUNTCFG_BUFFS = $SKCOUNTCFG_BUFFS - 1

EndIf

EndFunc

 

 

Func SAVEBUFFS()

$COUNT = 1

$MAX = $SKCOUNTCFG_BUFFS

$ACTIVE_BUFFS = 1

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, $MAX)

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FLAG_KEY, GUICtrlRead($BUFFS_FLAG))

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $COUNT, GUICtrlRead($BUFFSCOMBOKEY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_DELAY_KEY & $COUNT, GUICtrlRead($BUFFSDELAY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FREQUENCY_KEY & $COUNT, GUICtrlRead($BUFFSFREQUENCY[$COUNT]))

Do

$COUNT = $COUNT + 1

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $COUNT, GUICtrlRead($BUFFSCOMBOKEY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_DELAY_KEY & $COUNT, GUICtrlRead($BUFFSDELAY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FREQUENCY_KEY & $COUNT, GUICtrlRead($BUFFSFREQUENCY[$COUNT]))

Sleep(25)

Until $COUNT >= $MAX

GUIDelete($FORM_BUFFS)

EndFunc

 

 

Func WINDOWAUTOBUFFCLOSECLICKED()

GUIDelete($FORM_BUFFS)

EndFunc

 

 

Func SETCHANGEWEAPONS()

Global $FORM_WEAPONS = GUICreate("Auto Rotate Weapon", 340, 230, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowChangeWeaponsCloseClicked")

GUISetBkColor(65280)

GUISwitch($FORM_WEAPONS)

Global $WEAPONSCOMBOKEY[9], $WEAPONSCOUNT, $LABELWEAPONS1[9], $WEAPONS_DELAY

Global $WEAPONS_FLAG

$SKCOUNTCFG_WEAPONS = IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_UBOUND_KEY, 1)

$GROUP_WEAPONS = GUICtrlCreateGroup("Rotate Weapon", 10, 10, 185, 210)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_WEAPONS), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

$BUTTON_ADD_WEAPONS = GUICtrlCreateButton("Add", 25, 28, 50, 18)

GUICtrlSetOnEvent(-1, "AddWeapon")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$BUTTON_REMOVE_WEAPONS = GUICtrlCreateButton("Remove", 80, 28, 50, 18)

GUICtrlSetOnEvent(-1, "RemoveWeapon")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$BUTTON_SAVE_WEAPONS = GUICtrlCreateButton("Save", 135, 28, 50, 18)

GUICtrlSetOnEvent(-1, "SaveWeapons")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$WEAPONS_FLAG = GUICtrlCreateCheckbox("Use Rotate Weapon", 200, 28, 135, 18)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($WEAPONS_FLAG), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

$LABEL_WEAPONS_DELAY = GUICtrlCreateLabel("Interval (In Minutes)", 200, 55, 130, 18)

GUICtrlSetColor(-1, 0)

$WEAPONS_DELAY = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_DELAY_KEY, "180"), 200, 75, 50, 20)

For $WEAPONSCOUNT = 1 To IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_UBOUND_KEY, 1) Step +1

$LABELWEAPONS1[$WEAPONSCOUNT] = GUICtrlCreateLabel("Weapon " & $WEAPONSCOUNT, 20, 57 + ($WEAPONSCOUNT - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$WEAPONSCOMBOKEY[$WEAPONSCOUNT] = GUICtrlCreateCombo("", 90, 55 + ($WEAPONSCOUNT - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $WEAPONSCOUNT, "{F1}"))

Next

$WEAPONSCOUNT = $WEAPONSCOUNT - 1

GUISetState(@SW_SHOW, $FORM_WEAPONS)

EndFunc

 

 

Func ADDWEAPON()

GUISwitch($FORM_WEAPONS)

$SKCOUNTCFG_WEAPONS = $SKCOUNTCFG_WEAPONS + 1

If $SKCOUNTCFG_WEAPONS >= 5 Then

$SKCOUNTCFG_WEAPONS = 4

MsgBox(0, "Error", "Max Change Weapons Reached")

Else

$LABELWEAPONS1[$SKCOUNTCFG_WEAPONS] = GUICtrlCreateLabel("Weapon " & $SKCOUNTCFG_WEAPONS, 20, 57 + ($SKCOUNTCFG_WEAPONS - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$WEAPONSCOMBOKEY[$SKCOUNTCFG_WEAPONS] = GUICtrlCreateCombo("", 90, 55 + ($SKCOUNTCFG_WEAPONS - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $SKCOUNTCFG_WEAPONS, "{F1}"))

EndIf

EndFunc

 

 

Func REMOVEWEAPON()

GUISwitch($FORM_WEAPONS)

If $SKCOUNTCFG_WEAPONS < 2 Then

$SKCOUNTCFG_WEAPONS = 1

MsgBox(0, "Error", "Minimum Change Weapons Reached")

Else

GUICtrlDelete($WEAPONSCOMBOKEY[$SKCOUNTCFG_WEAPONS])

GUICtrlDelete($LABELWEAPONS1[$SKCOUNTCFG_WEAPONS])

$SKCOUNTCFG_WEAPONS = $SKCOUNTCFG_WEAPONS - 1

EndIf

EndFunc

 

 

Func SAVEWEAPONS()

$COUNT = 1

$MAX = $SKCOUNTCFG_WEAPONS

$ACTIVE_WEAPONS = 0

IniWrite($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_UBOUND_KEY, $MAX)

IniWrite($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_FLAG_KEY, GUICtrlRead($WEAPONS_FLAG))

IniWrite($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_DELAY_KEY, GUICtrlRead($WEAPONS_DELAY))

IniWrite($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $COUNT, GUICtrlRead($WEAPONSCOMBOKEY[$COUNT]))

Do

$COUNT = $COUNT + 1

IniWrite($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $COUNT, GUICtrlRead($WEAPONSCOMBOKEY[$COUNT]))

Sleep(2)

Until $COUNT >= $MAX

GUIDelete($FORM_WEAPONS)

EndFunc

 

 

Func WINDOWCHANGEWEAPONSCLOSECLICKED()

GUIDelete($FORM_WEAPONS)

EndFunc

 

 

Func SETFLYESCAPE()

Global $FORM_FLYESCAPE = GUICreate("Fly Escape", 255, 170, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowFlyEscapeCloseClicked")

GUISetBkColor(65280)

GUISwitch($FORM_FLYESCAPE)

Global $CHECK_FLYESCAPE, $FLYESCAPE_KEY, $FLYESCAPE_DAMAGE_KEY, $FLY_ESCAPE_SPACE_KEY, $BUTTON_FLY_ESCAPE_SAVE

$GROUP_FLYESCAPE = GUICtrlCreateGroup(" Fly Escape Options ", 0, 0, 255, 135)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_FLYESCAPE), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

$CHECK_FLYESCAPE = GUICtrlCreateCheckbox("Try To Fly To Escape Death", 15, 25, 200, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_FLYESCAPE), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

GUICtrlCreateLabel("Key to Fly:", 15, 55, 50, 20)

GUICtrlSetColor(-1, 0)

$FLYESCAPE_KEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "--"), 125, 50, 50, 20)

GUICtrlSetData(-1, $KEYCODE, "")

GUICtrlCreateLabel("Danage to Fly:", 15, 85, 100, 20)

GUICtrlSetColor(-1, 0)

$FLYESCAPE_DAMAGE_KEY = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_DAMAGE_KEY, "0"), 125, 80, 50, 20)

GUICtrlCreateLabel("Fly to Z =", 15, 110, 110, 20)

GUICtrlSetColor(-1, 0)

$FLY_ESCAPE_SPACE_KEY = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_SPACE_KEY, "0"), 125, 105, 50, 20)

$BUTTON_FLY_ESCAPE_SAVE = GUICtrlCreateButton("Save", 170, 140, 80, 20)

GUICtrlSetOnEvent(-1, "SaveFlyToEscape")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUISetState(@SW_SHOW, $FORM_FLYESCAPE)

EndFunc

 

 

Func SAVEFLYTOESCAPE()

IniWrite($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_FLAG_KEY, GUICtrlRead($CHECK_FLYESCAPE))

IniWrite($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, GUICtrlRead($FLYESCAPE_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_DAMAGE_KEY, GUICtrlRead($FLYESCAPE_DAMAGE_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_SPACE_KEY, GUICtrlRead($FLY_ESCAPE_SPACE_KEY))

GUIDelete($FORM_FLYESCAPE)

EndFunc

 

 

Func WINDOWFLYESCAPECLOSECLICKED()

GUIDelete($FORM_FLYESCAPE)

EndFunc

 

 

Func SET_MOBLIST()

Sleep(1)

BUILDNPCARRAY()

$MOBLISTFORMOPEN = 1

Global $FORM_MOBLIST = GUICreate("Target List", 260, 200, -1, -1, -1, -1, $PROPHETBOT)

GUISetBkColor(65280)

Global $MOBMENUITEM1 = GUICtrlCreateMenu("&File")

Global $MOBMENUITEM4 = GUICtrlCreateMenuItem("Exit", $MOBMENUITEM1)

GUICtrlSetOnEvent(-1, "WindowMobListCloseClicked")

Global $MOBMENUITEM2 = GUICtrlCreateMenu("&Options")

Global $MOBMENUITEM5 = GUICtrlCreateMenuItem("Add To MobList", $MOBMENUITEM2)

GUICtrlSetOnEvent(-1, "SetMobList")

Global $MOBMENUITEM6 = GUICtrlCreateMenuItem("Reset MobList", $MOBMENUITEM2)

GUICtrlSetOnEvent(-1, "ResetMobList")

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowMobListCloseClicked")

GUISwitch($FORM_MOBLIST)

GUISetState(@SW_SHOW, $FORM_MOBLIST)

Global $LABEL_LIST_MOB = GUICtrlCreateLabel("Current Target List (Max: 100)", 5, 5, 250, 20)

GUICtrlSetColor(-1, 0)

GUICtrlSetColor(-1, 0)

Global $LIST_MOB = GUICtrlCreateListView("#|ID", 5, 0, 220, 190)

Sleep(1)

REFRESHMOBLIST()

EndFunc

 

 

Func RESETMOBLIST()

$COUNT = 0

Do

$COUNT = $COUNT + 1

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTER_KEY & $COUNT, "")

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTERNAME_KEY & $COUNT, "")

Sleep(10)

Until $COUNT > IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1)

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, "0")

$MOB_LIST_COUNT = 0

Sleep(1)

REFRESHMOBLIST()

MsgBox(0, "MobList Reseted", "The MobList Was Reseted!")

EndFunc

 

 

Func REFRESHMOBLIST()

If $MOBLISTFORMOPEN = 1 Then

GUICtrlDelete($LIST_MOB)

GUICtrlCreateListView("#|ID|NAME ", 5, 25, 250, 150)

$COUNT = 0

Do

$COUNT = $COUNT + 1

GUICtrlCreateListViewItem($COUNT & ")|" & IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTER_KEY & $COUNT, "") & "|" & IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTERNAME_KEY & $COUNT, ""), $LIST_MOB)

Sleep(1)

Until $COUNT >= IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1)

EndIf

EndFunc

 

 

Func SETMOBLIST()

ToolTip("Now go back to the game!", 0, 0)

WinWaitActive($APP_TITLE)

ToolTip("Select the monster that you want to fight then press F11. You can do that 100 times.", 0, 0)

HotKeySet("{F11}", "SaveMobInMobList")

EndFunc

 

 

Func SAVEMOBINMOBLIST()

HotKeySet("{F10}", "EndSelectMobList")

IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1)

$MOB_LIST_COUNT = IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1) + 1

If $MOB_LIST_COUNT <= 100 Then

If Not @error Then

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTER_KEY & $MOB_LIST_COUNT, $TAR)

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTERNAME_KEY & $MOB_LIST_COUNT, $TARNAME)

If $MOB_LIST_COUNT <= 99 Then

ToolTip("Monster " & $MOB_LIST_COUNT & " Saved" & @CRLF & "Select another monsters and press F11 to set or F10 To end", 0, 0)

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, $MOB_LIST_COUNT)

Else

ToolTip("Monster " & $MOB_LIST_COUNT & " Saved" & @CRLF & "Now Press Start/F9 to start Bot", 0, 0)

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, $MOB_LIST_COUNT)

EndIf

Sleep(10)

ToolTip("")

Else

ToolTip("Error!" & @error)

EndIf

Else

ToolTip("Max Monsters Reached. Now Press Start/F9 to start Bot", 0, 0)

EndIf

Sleep(1)

REFRESHMOBLIST()

EndFunc

 

 

Func ENDSELECTMOBLIST()

ToolTip("Set MobList Finished, Now Press F9 to Start", 0, 0)

Sleep(10)

ToolTip("")

HotKeySet("{F10}")

HotKeySet("{F11}")

EndFunc

 

 

Func WINDOWMOBLISTCLOSECLICKED()

$MOBLISTFORMOPEN = 0

HotKeySet("{F11}")

HotKeySet("{F10}")

GUIDelete($FORM_MOBLIST)

EndFunc

 

 

Func SET_ABOUTPROPHET()

Global $FORM_ABOUT = GUICreate("About Afford", 301, 237, 397, 300)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowAboutProphetCloseClicked")

GUISetBkColor(65280)

GUISwitch($FORM_ABOUT)

Global $GROUP_ABOUT = GUICtrlCreateGroup("About Afford", 2, 0, 297, 234)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_ABOUT), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUISetState(@SW_SHOW, $FORM_ABOUT)

EndFunc

 

 

Func ONLINESUPPORT()

ShellExecute($DEFAULT_BROWSER_PATH, "

É necessário se cadastrar para acessar o conteúdo.
)

EndFunc

 

 

Func WINDOWABOUTPROPHETCLOSECLICKED()

GUIDelete($FORM_ABOUT)

EndFunc

 

 

Link para o comentário
Compartilhar em outros sites

Eu testei... Cara Obrigado ta muito foda :D podem baixar sem medo ele funfa rlx :D só tem 1 probleminha ele não cata todos os drops do mob. Ex um mob dropa 3 itens ele vai lá pega apenas 1 e volta a mobar. Aqui eu dei um jeitinho de melhorar isso, na aba skills eu coloquei a ação de catar itens para ser usado de 1 em 1 segundo ai quando o char passa perto de algum drop q não pegou ele pega :D

 

Vlw mesm o único prophet funcional que encontrei

 

Mto bom bot...mas tem esse pproblema dos drops...por favor resolva...e parabens!

Link para o comentário
Compartilhar em outros sites

Tudo bem aceitei o desafio e fiz engenharia reversa no seu .exe e na mesma hora recompilei enviando para o VT o qual me deu o seguinte resultado

É necessário se cadastrar para acessar o conteúdo.

pode notar que somente os 2 virus de senpre , ou seja o falso scan, "Trojan.Spy.Gen.b" e o " Trojan.Agent/Gen-Goo", nada de Keylogger conforme supracitado

 

Agora vou lhe dizer uma coisa a respeito da DESCOMPILAÇÃO do autoit, ele simplismente converte para .AU3 apenas os codigos dele, no caso quando se ingeta um KL ele vai no adress do .exe e coloca o codigo especifico, e na descompilação esse adress não é copiado. no caso não é só descompilar conforme voce citou, pois para constatar que o ,exe esta infectado teria que usar o ollydbg e abrir os 2 .exe e ir comparando adress por adress , visto que o KL usado não foi o ardamax, e ver qual adress esta modificado. enfim tenho mais coisa importante pra fazer qeu ficar brincando de engenharia reversa em um codigo .exe que foi provado ser KL,

 

enfim apenas respondi o uqe voce indagou , o seu 1.5.2 até que prove oa contrario esta limpo, mas o 1.0 com certeza nao.. enfim encerro aqui ..

 

codigo descompilado do afford 1.0

 

#RequireAdmin

#region

#AutoIt3Wrapper_icon=icon.ico

#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

 

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 $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 $TAGGDIPEN*****PARAM = "byte GUID[16];dword Count;dword Type;ptr Values"

Global Const $TAGGDIPEN*****PARAMS = "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 $TAGGDIPPEN*****PARAMS = "dword Count;byte Params[0]"

Global Const $TAGHDITEM = "uint Mask;int XY;ptr Text;handle hBMP;int TextMax;int Fmt;lparam Param;int Image;int Order;uint Type;ptr pFilter;uint State"

Global Const $TAGNMHDDISPINFO = $TAGNMHDR & ";int Item;uint Mask;ptr Text;int TextMax;int Image;lparam lParam"

Global Const $TAGNMHDFILTERBTNCLICK = $TAGNMHDR & ";int Item;" & $TAGRECT

Global Const $TAGNMHEADER = $TAGNMHDR & ";int Item;int Button;ptr pItem"

Global Const $TAGGETIPADDRESS = "byte Field4;byte Field3;byte Field2;byte Field1"

Global Const $TAGNMIPADDRESS = $TAGNMHDR & ";int Field;int Value"

Global Const $TAGLVFINDINFO = "uint Flags;ptr Text;lparam Param;" & $TAGPOINT & ";uint Direction"

Global Const $TAGLVHITTESTINFO = $TAGPOINT & ";uint Flags;int Item;int SubItem"

Global Const $TAGLVITEM = "uint Mask;int Item;int SubItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;lparam Param;" & "int Indent;int GroupID;uint Columns;ptr pColumns"

Global Const $TAGNMLISTVIEW = $TAGNMHDR & ";int Item;int SubItem;uint NewState;uint OldState;uint Changed;" & "long ActionX;long ActionY;lparam Param"

Global Const $TAGNMLVCUSTOMDRAW = $TAGNMHDR & ";dword dwDrawStage;handle hdc;long Left;long Top;long Right;long Bottom;" & "dword_ptr dwItemSpec;uint uItemState;lparam lItemlParam" & ";dword clrText;dword clrTextBk;int iSubItem;dword dwItemType;dword clrFace;int iIconEffect;" & "int iIconPhase;int iPartId;int iStateId;long TextLeft;long TextTop;long TextRight;long TextBottom;uint uAlign"

Global Const $TAGNMLVDISPINFO = $TAGNMHDR & ";" & $TAGLVITEM

Global Const $TAGNMLVFINDITEM = $TAGNMHDR & ";" & $TAGLVFINDINFO

Global Const $TAGNMLVGETINFOTIP = $TAGNMHDR & ";dword Flags;ptr Text;int TextMax;int Item;int SubItem;lparam lParam"

Global Const $TAGNMITEMACTIVATE = $TAGNMHDR & ";int Index;int SubItem;uint NewState;uint OldState;uint Changed;" & $TAGPOINT & ";lparam lParam;uint KeyFlags"

Global Const $TAGNMLVKEYDOWN = $TAGNMHDR & ";align 1;word VKey;uint Flags"

Global Const $TAGNMLVSCROLL = $TAGNMHDR & ";int DX;int DY"

Global Const $TAGMCHITTESTINFO = "uint Size;" & $TAGPOINT & ";uint Hit;" & $TAGSYSTEMTIME

Global Const $TAGMCMONTHRANGE = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short Span"

Global Const $TAGMCRANGE = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short MinSet;short MaxSet"

Global Const $TAGMCSELRANGE = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds"

Global Const $TAGNMDAYSTATE = $TAGNMHDR & ";" & $TAGSYSTEMTIME & ";int DayState;ptr pDayState"

Global Const $TAGNMSELCHANGE = $TAGNMHDR & ";word BegYear;word BegMonth;word BegDOW;word BegDay;" & "word BegHour;word BegMinute;word BegSecond;word BegMSeconds;word EndYear;word EndMonth;word EndDOW;" & "word EndDay;word EndHour;word EndMinute;word EndSecond;word EndMSeconds"

Global Const $TAGNMOBJECTNOTIFY = $TAGNMHDR & ";int Item;ptr piid;ptr pObject;long Result"

Global Const $TAGNMTCKEYDOWN = $TAGNMHDR & ";word VKey;uint Flags"

Global Const $TAGTVITEM = "uint Mask;handle hItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;int SelectedImage;" & "int Children;lparam Param"

Global Const $TAGTVITEMEX = $TAGTVITEM & ";int Integral"

Global Const $TAGNMTREEVIEW = $TAGNMHDR & ";uint Action;uint OldMask;handle OldhItem;uint OldState;uint OldStateMask;" & "ptr OldText;int OldTextMax;int OldImage;int OldSelectedImage;int OldChildren;lparam OldParam;uint NewMask;handle NewhItem;" & "uint NewState;uint NewStateMask;ptr NewText;int NewTextMax;int NewImage;int NewSelectedImage;int NewChildren;" & "lparam NewParam;long PointX;long PointY"

Global Const $TAGNMTVCUSTOMDRAW = $TAGNMHDR & ";dword DrawStage;handle HDC;long Left;long Top;long Right;long Bottom;" & "dword_ptr ItemSpec;uint ItemState;lparam ItemParam;dword ClrText;dword ClrTextBk;int Level"

Global Const $TAGNMTVDISPINFO = $TAGNMHDR & ";" & $TAGTVITEM

Global Const $TAGNMTVGETINFOTIP = $TAGNMHDR & ";ptr Text;int TextMax;handle hItem;lparam lParam"

Global Const $TAGTVHITTESTINFO = $TAGPOINT & ";uint Flags;handle Item"

Global Const $TAGNMTVKEYDOWN = $TAGNMHDR & ";word VKey;uint Flags"

Global Const $TAGNMMOUSE = $TAGNMHDR & ";dword_ptr ItemSpec;dword_ptr ItemData;" & $TAGPOINT & ";lparam HitInfo"

Global Const $TAGTOKEN_PRIVILEGES = "dword Count;int64 LUID;dword Attributes"

Global Const $TAGIMAGEINFO = "handle hBitmap;handle hMask;int Unused1;int Unused2;" & $TAGRECT

Global Const $TAGMENUINFO = "dword Size;INT Mask;dword Style;uint YMax;handle hBack;dword ContextHelpID;ulong_ptr MenuData"

Global Const $TAGMENUITEMINFO = "uint Size;uint Mask;uint Type;uint State;uint ID;handle SubMenu;handle BmpChecked;handle BmpUnchecked;" & "ulong_ptr ItemData;ptr TypeData;uint CCH;handle BmpItem"

Global Const $TAGREBARBANDINFO = "uint cbSize;uint fMask;uint fStyle;dword clrFore;dword clrBack;ptr lpText;uint cch;" & "int iImage;hwnd hwndChild;uint cxMinChild;uint cyMinChild;uint cx;handle hbmBack;uint wID;uint cyChild;uint cyMaxChild;" & "uint cyIntegral;uint cxIdeal;lparam lParam;uint cxHeader"

Global Const $TAGNMREBARAUTOBREAK = $TAGNMHDR & ";uint uBand;uint wID;lparam lParam;uint uMsg;uint fStyleCurrent;bool fAutoBreak"

Global Const $TAGNMRBAUTOSIZE = $TAGNMHDR & ";bool fChanged;long TargetLeft;long TargetTop;long TargetRight;long TargetBottom;" & "long ActualLeft;long ActualTop;long ActualRight;long ActualBottom"

Global Const $TAGNMREBAR = $TAGNMHDR & ";dword dwMask;uint uBand;uint fStyle;uint wID;laram lParam"

Global Const $TAGNMREBARCHEVRON = $TAGNMHDR & ";uint uBand;uint wID;lparam lParam;" & $TAGRECT & ";lparam lParamNM"

Global Const $TAGNMREBARCHILDSIZE = $TAGNMHDR & ";uint uBand;uint wID;long CLeft;long CTop;long CRight;long CBottom;" & "long BLeft;long BTop;long BRight;long BBottom"

Global Const $TAGCOLORSCHEME = "dword Size;dword BtnHighlight;dword BtnShadow"

Global Const $TAGNMTOOLBAR = $TAGNMHDR & ";int iItem;" & "int iBitmap;int idCommand;byte fsState;byte fsStyle;align;dword_ptr dwData;int_ptr iString" & ";int cchText;ptr pszText;" & $TAGRECT

Global Const $TAGNMTBHOTITEM = $TAGNMHDR & ";int idOld;int idNew;dword dwFlags"

Global Const $TAGTBBUTTON = "int Bitmap;int Command;byte State;byte Style;align;dword_ptr Param;int_ptr String"

Global Const $TAGTBBUTTONINFO = "uint Size;dword Mask;int Command;int Image;byte State;byte Style;word CX;dword_ptr Param;ptr Text;int TextMax"

Global Const $TAGNETRESOURCE = "dword Scope;dword Type;dword DisplayType;dword Usage;ptr LocalName;ptr RemoteName;ptr Comment;ptr Provider"

Global Const $TAGOVERLAPPED = "ulong_ptr Internal;ulong_ptr InternalHigh;dword Offset;dword OffsetHigh;handle hEvent"

Global Const $TAGOPENFILENAME = "dword StructSize;hwnd hwndOwner;handle hInstance;ptr lpstrFilter;ptr lpstrCustomFilter;" & "dword nMaxCustFilter;dword nFilterIndex;ptr lpstrFile;dword nMaxFile;ptr lpstrFileTitle;dword nMaxFileTitle;" & "ptr lpstrInitialDir;ptr lpstrTitle;dword Flags;word nFileOffset;word nFileExtension;ptr lpstrDefExt;lparam lCustData;" & "ptr lpfnHook;ptr lpTemplateName;ptr pvReserved;dword dwReserved;dword FlagsEx"

Global Const $TAGBITMAPINFO = "dword Size;long Width;long Height;word Planes;word BitCount;dword Compression;dword SizeImage;" & "long XPelsPerMeter;long YPelsPerMeter;dword ClrUsed;dword ClrImportant;dword RGBQuad"

Global Const $TAGBLENDFUNCTION = "byte Op;byte Flags;byte Alpha;byte Format"

Global Const $TAGGUID = "dword Data1;word Data2;word Data3;byte Data4[8]"

Global Const $TAGWINDOWPLACEMENT = "uint length; uint flags;uint showCmd;long ptMinPosition[2];long ptMaxPosition[2];long rcNormalPosition[4]"

Global Const $TAGWINDOWPOS = "hwnd hWnd;hwnd InsertAfter;int X;int Y;int CX;int CY;uint Flags"

Global Const $TAGSCROLLINFO = "uint cbSize;uint fMask;int nMin;int nMax;uint nPage;int nPos;int nTrackPos"

Global Const $TAGSCROLLBARINFO = "dword cbSize;" & $TAGRECT & ";int dxyLineButton;int xyThumbTop;" & "int xyThumbBottom;int reserved;dword rgstate[6]"

Global Const $TAGLOGFONT = "long Height;long Width;long Escapement;long Orientation;long Weight;byte Italic;byte Underline;" & "byte Strikeout;byte CharSet;byte OutPrecision;byte ClipPrecision;byte Quality;byte PitchAndFamily;wchar FaceName[32]"

Global Const $TAGKBDLLHOOKSTRUCT = "dword vkCode;dword scanCode;dword flags;dword time;ulong_ptr dwExtraInfo"

Global Const $TAGPROCESS_INFORMATION = "handle hProcess;handle hThread;dword ProcessID;dword ThreadID"

Global Const $TAGSTARTUPINFO = "dword Size;ptr Reserved1;ptr Desktop;ptr Title;dword X;dword Y;dword XSize;dword YSize;dword XCountChars;" & "dword YCountChars;dword FillAttribute;dword Flags;word ShowWindow;word Reserved2;ptr Reserved3;handle StdInput;" & "handle StdOutput;handle StdError"

Global Const $TAGSECURITY_ATTRIBUTES = "dword Length;ptr Descriptor;bool InheritHandle"

Global Const $TAGWIN32_FIND_DATA = "dword dwFileAttributes; dword ftCreationTime[2]; dword ftLastAccessTime[2]; dword ftLastWriteTime[2]; dword nFileSizeHigh; dword nFileSizeLow; dword dwReserved0; dword dwReserved1; wchar cFileName[260]; wchar cAlternateFileName[14]"

Global Const $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 $ERROR_NO_TOKEN = 1008

Global Const $SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege"

Global Const $SE_AUDIT_NAME = "SeAuditPrivilege"

Global Const $SE_BACKUP_NAME = "SeBackupPrivilege"

Global Const $SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege"

Global Const $SE_CREATE_GLOBAL_NAME = "SeCreateGlobalPrivilege"

Global Const $SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege"

Global Const $SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege"

Global Const $SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege"

Global Const $SE_DEBUG_NAME = "SeDebugPrivilege"

Global Const $SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege"

Global Const $SE_IMPERSONATE_NAME = "SeImpersonatePrivilege"

Global Const $SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege"

Global Const $SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege"

Global Const $SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege"

Global Const $SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege"

Global Const $SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege"

Global Const $SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege"

Global Const $SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege"

Global Const $SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege"

Global Const $SE_RESTORE_NAME = "SeRestorePrivilege"

Global Const $SE_SECURITY_NAME = "SeSecurityPrivilege"

Global Const $SE_SHUTDOWN_NAME = "SeShutdownPrivilege"

Global Const $SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege"

Global Const $SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege"

Global Const $SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege"

Global Const $SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege"

Global Const $SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege"

Global Const $SE_TCB_NAME = "SeTcbPrivilege"

Global Const $SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege"

Global Const $SE_UNDOCK_NAME = "SeUndockPrivilege"

Global Const $SE_PRIVILEGE_ENABLED_BY_DEFAULT = 1

Global Const $SE_PRIVILEGE_ENABLED = 2

Global Const $SE_PRIVILEGE_REMOVED = 4

Global Const $SE_PRIVILEGE_USED_FOR_ACCESS = -2147483648

Global Const $TOKENUSER = 1

Global Const $TOKENGROUPS = 2

Global Const $TOKENPRIVILEGES = 3

Global Const $TOKENOWNER = 4

Global Const $TOKENPRIMARYGROUP = 5

Global Const $TOKENDEFAULTDACL = 6

Global Const $TOKENSOURCE = 7

Global Const $TOKENTYPE = 8

Global Const $TOKENIMPERSONATIONLEVEL = 9

Global Const $TOKENSTATISTICS = 10

Global Const $TOKENRESTRICTEDSIDS = 11

Global Const $TOKENSESSIONID = 12

Global Const $TOKENGROUPSANDPRIVILEGES = 13

Global Const $TOKENSESSIONREFERENCE = 14

Global Const $TOKENSANDBOXINERT = 15

Global Const $TOKENAUDITPOLICY = 16

Global Const $TOKENORIGIN = 17

Global Const $TOKENELEVATIONTYPE = 18

Global Const $TOKENLINKEDTOKEN = 19

Global Const $TOKENELEVATION = 20

Global Const $TOKENHASRESTRICTIONS = 21

Global Const $TOKENACCESSINFORMATION = 22

Global Const $TOKENVIRTUALIZATIONALLOWED = 23

Global Const $TOKENVIRTUALIZATIONENABLED = 24

Global Const $TOKENINTEGRITYLEVEL = 25

Global Const $TOKENUIACCESS = 26

Global Const $TOKENMANDATORYPOLICY = 27

Global Const $TOKENLOGONSID = 28

Global Const $TOKEN_ASSIGN_PRIMARY = 1

Global Const $TOKEN_DUPLICATE = 2

Global Const $TOKEN_IMPERSONATE = 4

Global Const $TOKEN_QUERY = 8

Global Const $TOKEN_QUERY_SOURCE = 16

Global Const $TOKEN_ADJUST_PRIVILEGES = 32

Global Const $TOKEN_ADJUST_GROUPS = 64

Global Const $TOKEN_ADJUST_DEFAULT = 128

Global Const $TOKEN_ADJUST_SESSIONID = 256

 

Func _WINAPI_GETLASTERROR($CURERR = @error, $CUREXT = @extended)

Local $ARESULT = DllCall("kernel32.dll", "dword", "GetLastError")

Return SetError($CURERR, $CUREXT, $ARESULT[0])

EndFunc

 

 

Func _WINAPI_SETLASTERROR($IERRCODE, $CURERR = @error, $CUREXT = @extended)

DllCall("kernel32.dll", "none", "SetLastError", "dword", $IERRCODE)

Return SetError($CURERR, $CUREXT)

EndFunc

 

 

Func _SECURITY__ADJUSTTOKENPRIVILEGES($HTOKEN, $FDISABLEALL, $PNEWSTATE, $IBUFFERLEN, $PPREVSTATE = 0, $PREQUIRED = 0)

Local $ARESULT = DllCall("advapi32.dll", "bool", "AdjustTokenPrivileges", "handle", $HTOKEN, "bool", $FDISABLEALL, "ptr", $PNEWSTATE, "dword", $IBUFFERLEN, "ptr", $PPREVSTATE, "ptr", $PREQUIRED)

If @error Then Return SetError(@error, @extended, False)

Return $ARESULT[0]

EndFunc

 

 

Func _SECURITY__GETACCOUNTSID($SACCOUNT, $SSYSTEM = "")

Local $AACCT = _SECURITY__LOOKUPACCOUNTNAME($SACCOUNT, $SSYSTEM)

If @error Then Return SetError(@error, 0, 0)

Return _SECURITY__STRINGSIDTOSID($AACCT[0])

EndFunc

 

 

Func _SECURITY__GETLENGTHSID($PSID)

If Not _SECURITY__ISVALIDSID($PSID) Then Return SetError(-1, 0, 0)

Local $ARESULT = DllCall("advapi32.dll", "dword", "GetLengthSid", "ptr", $PSID)

If @error Then Return SetError(@error, @extended, 0)

Return $ARESULT[0]

EndFunc

 

 

Func _SECURITY__GETTOKENINFORMATION($HTOKEN, $ICLASS)

Local $ARESULT = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $HTOKEN, "int", $ICLASS, "ptr", 0, "dword", 0, "dword*", 0)

If @error Then Return SetError(@error, @extended, 0)

If Not $ARESULT[0] Then Return 0

Local $TBUFFER = DllStructCreate("byte[" & $ARESULT[5] & "]")

Local $PBUFFER = DllStructGetPtr($TBUFFER)

$ARESULT = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $HTOKEN, "int", $ICLASS, "ptr", $PBUFFER, "dword", $ARESULT[5], "dword*", 0)

If @error Then Return SetError(@error, @extended, 0)

If Not $ARESULT[0] Then Return 0

Return $TBUFFER

EndFunc

 

 

Func _SECURITY__IMPERSONATESELF($ILEVEL = 2)

Local $ARESULT = DllCall("advapi32.dll", "bool", "ImpersonateSelf", "int", $ILEVEL)

If @error Then Return SetError(@error, @extended, False)

Return $ARESULT[0]

EndFunc

 

 

Func _SECURITY__ISVALIDSID($PSID)

Local $ARESULT = DllCall("advapi32.dll", "bool", "IsValidSid", "ptr", $PSID)

If @error Then Return SetError(@error, @extended, False)

Return $ARESULT[0]

EndFunc

 

 

Func _SECURITY__LOOKUPACCOUNTNAME($SACCOUNT, $SSYSTEM = "")

Local $TDATA = DllStructCreate("byte SID[256]")

Local $PSID = DllStructGetPtr($TDATA, "SID")

Local $ARESULT = DllCall("advapi32.dll", "bool", "LookupAccountNameW", "wstr", $SSYSTEM, "wstr", $SACCOUNT, "ptr", $PSID, "dword*", 256, "wstr", "", "dword*", 256, "int*", 0)

If @error Then Return SetError(@error, @extended, 0)

If Not $ARESULT[0] Then Return 0

Local $AACCT[3]

$AACCT[0] = _SECURITY__SIDTOSTRINGSID($PSID)

$AACCT[1] = $ARESULT[5]

$AACCT[2] = $ARESULT[7]

Return $AACCT

EndFunc

 

 

Func _SECURITY__LOOKUPACCOUNTSID($VSID)

Local $PSID, $AACCT[3]

If IsString($VSID) Then

Local $TSID = _SECURITY__STRINGSIDTOSID($VSID)

$PSID = DllStructGetPtr($TSID)

Else

$PSID = $VSID

EndIf

If Not _SECURITY__ISVALIDSID($PSID) Then Return SetError(-1, 0, 0)

Local $ARESULT = DllCall("advapi32.dll", "bool", "LookupAccountSidW", "ptr", 0, "ptr", $PSID, "wstr", "", "dword*", 256, "wstr", "", "dword*", 256, "int*", 0)

If @error Then Return SetError(@error, @extended, 0)

If Not $ARESULT[0] Then Return 0

Local $AACCT[3]

$AACCT[0] = $ARESULT[3]

$AACCT[1] = $ARESULT[5]

$AACCT[2] = $ARESULT[7]

Return $AACCT

EndFunc

 

 

Func _SECURITY__LOOKUPPRIVILEGEVALUE($SSYSTEM, $SNAME)

Local $ARESULT = DllCall("advapi32.dll", "int", "LookupPrivilegeValueW", "wstr", $SSYSTEM, "wstr", $SNAME, "int64*", 0)

If @error Then Return SetError(@error, @extended, 0)

Return SetError(0, $ARESULT[0], $ARESULT[3])

EndFunc

 

 

Func _SECURITY__OPENPROCESSTOKEN($HPROCESS, $IACCESS)

Local $ARESULT = DllCall("advapi32.dll", "int", "OpenProcessToken", "handle", $HPROCESS, "dword", $IACCESS, "ptr", 0)

If @error Then Return SetError(@error, @extended, 0)

Return SetError(0, $ARESULT[0], $ARESULT[3])

EndFunc

 

 

Func _SECURITY__OPENTHREADTOKEN($IACCESS, $HTHREAD = 0, $FOPENASSELF = False)

If $HTHREAD = 0 Then $HTHREAD = DllCall("kernel32.dll", "handle", "GetCurrentThread")

If @error Then Return SetError(@error, @extended, 0)

Local $ARESULT = DllCall("advapi32.dll", "bool", "OpenThreadToken", "handle", $HTHREAD[0], "dword", $IACCESS, "int", $FOPENASSELF, "ptr*", 0)

If @error Then Return SetError(@error, @extended, 0)

Return SetError(0, $ARESULT[0], $ARESULT[4])

EndFunc

 

 

Func _SECURITY__OPENTHREADTOKENEX($IACCESS, $HTHREAD = 0, $FOPENASSELF = False)

Local $HTOKEN = _SECURITY__OPENTHREADTOKEN($IACCESS, $HTHREAD, $FOPENASSELF)

If $HTOKEN = 0 Then

If _WINAPI_GETLASTERROR() <> $ERROR_NO_TOKEN Then Return SetError(-3, _WINAPI_GETLASTERROR(), 0)

If Not _SECURITY__IMPERSONATESELF() Then Return SetError(-1, _WINAPI_GETLASTERROR(), 0)

$HTOKEN = _SECURITY__OPENTHREADTOKEN($IACCESS, $HTHREAD, $FOPENASSELF)

If $HTOKEN = 0 Then Return SetError(-2, _WINAPI_GETLASTERROR(), 0)

EndIf

Return $HTOKEN

EndFunc

 

 

Func _SECURITY__SETPRIVILEGE($HTOKEN, $SPRIVILEGE, $FENABLE)

Local $ILUID = _SECURITY__LOOKUPPRIVILEGEVALUE("", $SPRIVILEGE)

If $ILUID = 0 Then Return SetError(-1, 0, False)

Local $TCURRSTATE = DllStructCreate($TAGTOKEN_PRIVILEGES)

Local $PCURRSTATE = DllStructGetPtr($TCURRSTATE)

Local $ICURRSTATE = DllStructGetSize($TCURRSTATE)

Local $TPREVSTATE = DllStructCreate($TAGTOKEN_PRIVILEGES)

Local $PPREVSTATE = DllStructGetPtr($TPREVSTATE)

Local $IPREVSTATE = DllStructGetSize($TPREVSTATE)

Local $TREQUIRED = DllStructCreate("int Data")

Local $PREQUIRED = DllStructGetPtr($TREQUIRED)

DllStructSetData($TCURRSTATE, "Count", 1)

DllStructSetData($TCURRSTATE, "LUID", $ILUID)

If Not _SECURITY__ADJUSTTOKENPRIVILEGES($HTOKEN, False, $PCURRSTATE, $ICURRSTATE, $PPREVSTATE, $PREQUIRED) Then Return SetError(-2, @error, False)

DllStructSetData($TPREVSTATE, "Count", 1)

DllStructSetData($TPREVSTATE, "LUID", $ILUID)

Local $IATTRIBUTES = DllStructGetData($TPREVSTATE, "Attributes")

If $FENABLE Then

$IATTRIBUTES = BitOR($IATTRIBUTES, $SE_PRIVILEGE_ENABLED)

Else

$IATTRIBUTES = BitAND($IATTRIBUTES, BitNOT($SE_PRIVILEGE_ENABLED))

EndIf

DllStructSetData($TPREVSTATE, "Attributes", $IATTRIBUTES)

If Not _SECURITY__ADJUSTTOKENPRIVILEGES($HTOKEN, False, $PPREVSTATE, $IPREVSTATE, $PCURRSTATE, $PREQUIRED) Then Return SetError(-3, @error, False)

Return True

EndFunc

 

 

Func _SECURITY__SIDTOSTRINGSID($PSID)

If Not _SECURITY__ISVALIDSID($PSID) Then Return SetError(-1, 0, "")

Local $ARESULT = DllCall("advapi32.dll", "int", "ConvertSidToStringSidW", "ptr", $PSID, "ptr*", 0)

If @error Then Return SetError(@error, @extended, "")

If Not $ARESULT[0] Then Return ""

Local $TBUFFER = DllStructCreate("wchar Text[256]", $ARESULT[2])

Local $SSID = DllStructGetData($TBUFFER, "Text")

DllCall("Kernel32.dll", "ptr", "LocalFree", "ptr", $ARESULT[2])

Return $SSID

EndFunc

 

 

Func _SECURITY__SIDTYPESTR($ITYPE)

Switch $ITYPE

Case 1

Return "User"

Case 2

Return "Group"

Case 3

Return "Domain"

Case 4

Return "Alias"

Case 5

Return "Well Known Group"

Case 6

Return "Deleted Account"

Case 7

Return "Invalid"

Case 8

Return "Invalid"

Case 9

Return "Computer"

Case Else

Return "Unknown SID Type"

EndSwitch

EndFunc

 

 

Func _SECURITY__STRINGSIDTOSID($SSID)

Local $ARESULT = DllCall("advapi32.dll", "bool", "ConvertStringSidToSidW", "wstr", $SSID, "ptr*", 0)

If @error Then Return SetError(@error, @extended, 0)

If Not $ARESULT[0] Then Return 0

Local $ISIZE = _SECURITY__GETLENGTHSID($ARESULT[2])

Local $TBUFFER = DllStructCreate("byte Data[" & $ISIZE & "]", $ARESULT[2])

Local $TSID = DllStructCreate("byte Data[" & $ISIZE & "]")

DllStructSetData($TSID, "Data", DllStructGetData($TBUFFER, "Data"))

DllCall("kernel32.dll", "ptr", "LocalFree", "ptr", $ARESULT[2])

Return $TSID

EndFunc

 

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

 

 

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 $_UDF_GLOBALIDS_OFFSET = 2

Global Const $_UDF_GLOBALID_MAX_WIN = 16

Global Const $_UDF_STARTID = 10000

Global Const $_UDF_GLOBALID_MAX_IDS = 55535

Global Const $__UDFGUICONSTANT_WS_VISIBLE = 268435456

Global Const $__UDFGUICONSTANT_WS_CHILD = 1073741824

Global $_UDF_GLOBALIDS_USED[$_UDF_GLOBALID_MAX_WIN][$_UDF_GLOBALID_MAX_IDS + $_UDF_GLOBALIDS_OFFSET + 1]

 

Func __UDF_GETNEXTGLOBALID($HWND)

Local $NCTRLID, $IUSEDINDEX = -1, $FALLUSED = True

If Not WinExists($HWND) Then Return SetError(-1, -1, 0)

For $IINDEX = 0 To $_UDF_GLOBALID_MAX_WIN - 1

If $_UDF_GLOBALIDS_USED[$IINDEX][0] <> 0 Then

If Not WinExists($_UDF_GLOBALIDS_USED[$IINDEX][0]) Then

For $X = 0 To UBound($_UDF_GLOBALIDS_USED, 2) - 1

$_UDF_GLOBALIDS_USED[$IINDEX][$X] = 0

Next

$_UDF_GLOBALIDS_USED[$IINDEX][1] = $_UDF_STARTID

$FALLUSED = False

EndIf

EndIf

Next

For $IINDEX = 0 To $_UDF_GLOBALID_MAX_WIN - 1

If $_UDF_GLOBALIDS_USED[$IINDEX][0] = $HWND Then

$IUSEDINDEX = $IINDEX

ExitLoop

EndIf

Next

If $IUSEDINDEX = -1 Then

For $IINDEX = 0 To $_UDF_GLOBALID_MAX_WIN - 1

If $_UDF_GLOBALIDS_USED[$IINDEX][0] = 0 Then

$_UDF_GLOBALIDS_USED[$IINDEX][0] = $HWND

$_UDF_GLOBALIDS_USED[$IINDEX][1] = $_UDF_STARTID

$FALLUSED = False

$IUSEDINDEX = $IINDEX

ExitLoop

EndIf

Next

EndIf

If $IUSEDINDEX = -1 And $FALLUSED Then Return SetError(16, 0, 0)

If $_UDF_GLOBALIDS_USED[$IUSEDINDEX][1] = $_UDF_STARTID + $_UDF_GLOBALID_MAX_IDS Then

For $IIDINDEX = $_UDF_GLOBALIDS_OFFSET To UBound($_UDF_GLOBALIDS_USED, 2) - 1

If $_UDF_GLOBALIDS_USED[$IUSEDINDEX][$IIDINDEX] = 0 Then

$NCTRLID = ($IIDINDEX - $_UDF_GLOBALIDS_OFFSET) + 10000

$_UDF_GLOBALIDS_USED[$IUSEDINDEX][$IIDINDEX] = $NCTRLID

Return $NCTRLID

EndIf

Next

Return SetError(-1, $_UDF_GLOBALID_MAX_IDS, 0)

EndIf

$NCTRLID = $_UDF_GLOBALIDS_USED[$IUSEDINDEX][1]

$_UDF_GLOBALIDS_USED[$IUSEDINDEX][1] += 1

$_UDF_GLOBALIDS_USED[$IUSEDINDEX][($NCTRLID - 10000) + $_UDF_GLOBALIDS_OFFSET] = $NCTRLID

Return $NCTRLID

EndFunc

 

 

Func __UDF_FREEGLOBALID($HWND, $IGLOBALID)

If $IGLOBALID - $_UDF_STARTID < 0 Or $IGLOBALID - $_UDF_STARTID > $_UDF_GLOBALID_MAX_IDS Then Return SetError(-1, 0, False)

For $IINDEX = 0 To $_UDF_GLOBALID_MAX_WIN - 1

If $_UDF_GLOBALIDS_USED[$IINDEX][0] = $HWND Then

For $X = $_UDF_GLOBALIDS_OFFSET To UBound($_UDF_GLOBALIDS_USED, 2) - 1

If $_UDF_GLOBALIDS_USED[$IINDEX][$X] = $IGLOBALID Then

$_UDF_GLOBALIDS_USED[$IINDEX][$X] = 0

Return True

EndIf

Next

Return SetError(-3, 0, False)

EndIf

Next

Return SetError(-2, 0, False)

EndFunc

 

 

Func __UDF_DEBUGPRINT($STEXT, $ILINE = @ScriptLineNumber, $ERR = @error, $EXT = @extended)

ConsoleWrite("!===========================================================" & @CRLF & "+======================================================" & @CRLF & "-->Line(" & StringFormat("%04d", $ILINE) & "):" & @TAB & $STEXT & @CRLF & "+======================================================" & @CRLF)

Return SetError($ERR, $EXT, 1)

EndFunc

 

 

Func __UDF_VALIDATECLASSNAME($HWND, $SCLASSNAMES)

__UDF_DEBUGPRINT("This is for debugging only, set the debug variable to false before submitting")

If _WINAPI_ISCLASSNAME($HWND, $SCLASSNAMES) Then Return True

Local $SSEPARATOR = Opt("GUIDataSeparatorChar")

$SCLASSNAMES = StringReplace($SCLASSNAMES, $SSEPARATOR, ",")

__UDF_DEBUGPRINT("Invalid Class Type(s):" & @LF & @TAB & "Expecting Type(s): " & $SCLASSNAMES & @LF & @TAB & "Received Type : " & _WINAPI_GETCLASSNAME($HWND))

Exit

EndFunc

 

Global $__GHSBLASTWND

Global $DEBUG_SB = False

Global Const $__STATUSBARCONSTANT_CLASSNAME = "msctls_statusbar32"

Global Const $__STATUSBARCONSTANT_WM_SIZE = 5

Global Const $__STATUSBARCONSTANT_CLR_DEFAULT = -16777216

Global Const $TAGBORDERS = "int BX;int BY;int RX"

 

Func _GUICTRLSTATUSBAR_CREATE($HWND, $VPARTEDGE = -1, $VPARTTEXT = "", $ISTYLES = -1, $IEXSTYLES = -1)

If Not IsHWnd($HWND) Then Return SetError(1, 0, 0)

Local $ISTYLE = BitOR($__UDFGUICONSTANT_WS_CHILD, $__UDFGUICONSTANT_WS_VISIBLE)

If $ISTYLES = -1 Then $ISTYLES = 0

If $IEXSTYLES = -1 Then $IEXSTYLES = 0

Local $APARTWIDTH[1], $APARTTEXT[1]

If @NumParams > 1 Then

If IsArray($VPARTEDGE) Then

$APARTWIDTH = $VPARTEDGE

Else

$APARTWIDTH[0] = $VPARTEDGE

EndIf

If @NumParams = 2 Then

ReDim $APARTTEXT[uBound($APARTWIDTH)]

Else

If IsArray($VPARTTEXT) Then

$APARTTEXT = $VPARTTEXT

Else

$APARTTEXT[0] = $VPARTTEXT

EndIf

If UBound($APARTWIDTH) <> UBound($APARTTEXT) Then

Local $ILAST

If UBound($APARTWIDTH) > UBound($APARTTEXT) Then

$ILAST = UBound($APARTTEXT)

ReDim $APARTTEXT[uBound($APARTWIDTH)]

For $X = $ILAST To UBound($APARTTEXT) - 1

$APARTWIDTH[$X] = ""

Next

Else

$ILAST = UBound($APARTWIDTH)

ReDim $APARTWIDTH[uBound($APARTTEXT)]

For $X = $ILAST To UBound($APARTWIDTH) - 1

$APARTWIDTH[$X] = $APARTWIDTH[$X - 1] + 75

Next

$APARTWIDTH[uBound($APARTTEXT) - 1] = -1

EndIf

EndIf

EndIf

If Not IsHWnd($HWND) Then $HWND = HWnd($HWND)

If @NumParams > 3 Then $ISTYLE = BitOR($ISTYLE, $ISTYLES)

EndIf

Local $NCTRLID = __UDF_GETNEXTGLOBALID($HWND)

If @error Then Return SetError(@error, @extended, 0)

Local $HWNDSBAR = _WINAPI_CREATEWINDOWEX($IEXSTYLES, $__STATUSBARCONSTANT_CLASSNAME, "", $ISTYLE, 0, 0, 0, 0, $HWND, $NCTRLID)

If @error Then Return SetError(@error, @extended, 0)

If @NumParams > 1 Then

_GUICTRLSTATUSBAR_SETPARTS($HWNDSBAR, UBound($APARTWIDTH), $APARTWIDTH)

For $X = 0 To UBound($APARTTEXT) - 1

_GUICTRLSTATUSBAR_SETTEXT($HWNDSBAR, $APARTTEXT[$X], $X)

Next

EndIf

Return $HWNDSBAR

EndFunc

 

 

Func _GUICTRLSTATUSBAR_DESTROY(ByRef $HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

If Not _WINAPI_ISCLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME) Then Return SetError(2, 2, False)

Local $DESTROYED = 0

If IsHWnd($HWND) Then

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

Local $NCTRLID = _WINAPI_GETDLGCTRLID($HWND)

Local $HPARENT = _WINAPI_GETPARENT($HWND)

$DESTROYED = _WINAPI_DESTROYWINDOW($HWND)

Local $IRET = __UDF_FREEGLOBALID($HPARENT, $NCTRLID)

If Not $IRET Then

EndIf

Else

Return SetError(1, 1, False)

EndIf

EndIf

If $DESTROYED Then $HWND = 0

Return $DESTROYED <> 0

EndFunc

 

 

Func _GUICTRLSTATUSBAR_EMBEDCONTROL($HWND, $IPART, $HCONTROL, $IFIT = 4)

Local $ARECT = _GUICTRLSTATUSBAR_GETRECT($HWND, $IPART)

Local $IBARX = $ARECT[0]

Local $IBARY = $ARECT[1]

Local $IBARW = $ARECT[2] - $IBARX

Local $IBARH = $ARECT[3] - $IBARY

Local $ICONX = $IBARX

Local $ICONY = $IBARY

Local $ICONW = _WINAPI_GETWINDOWWIDTH($HCONTROL)

Local $ICONH = _WINAPI_GETWINDOWHEIGHT($HCONTROL)

If $ICONW > $IBARW Then $ICONW = $IBARW

If $ICONH > $IBARH Then $ICONH = $IBARH

Local $IPADX = ($IBARW - $ICONW) / 2

Local $IPADY = ($IBARH - $ICONH) / 2

If $IPADX < 0 Then $IPADX = 0

If $IPADY < 0 Then $IPADY = 0

If BitAND($IFIT, 1) = 1 Then $ICONX = $IBARX + $IPADX

If BitAND($IFIT, 2) = 2 Then $ICONY = $IBARY + $IPADY

If BitAND($IFIT, 4) = 4 Then

$IPADX = _GUICTRLSTATUSBAR_GETBORDERSRECT($HWND)

$IPADY = _GUICTRLSTATUSBAR_GETBORDERSVERT($HWND)

$ICONX = $IBARX

If _GUICTRLSTATUSBAR_ISSIMPLE($HWND) Then $ICONX += $IPADX

$ICONY = $IBARY + $IPADY

$ICONW = $IBARW - ($IPADX * 2)

$ICONH = $IBARH - ($IPADY * 2)

EndIf

_WINAPI_SETPARENT($HCONTROL, $HWND)

_WINAPI_MOVEWINDOW($HCONTROL, $ICONX, $ICONY, $ICONW, $ICONH)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETBORDERS($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $TBORDERS = DllStructCreate($TAGBORDERS)

Local $PBORDERS = DllStructGetPtr($TBORDERS)

Local $IRET

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $SB_GETBORDERS, 0, $PBORDERS, 0, "wparam", "ptr")

Else

Local $ISIZE = DllStructGetSize($TBORDERS)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ISIZE, $TMEMMAP)

$IRET = _SENDMESSAGE($HWND, $SB_GETBORDERS, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PBORDERS, $ISIZE)

_MEMFREE($TMEMMAP)

EndIf

Local $ABORDERS[3]

If $IRET = 0 Then Return SetError(-1, -1, $ABORDERS)

$ABORDERS[0] = DllStructGetData($TBORDERS, "BX")

$ABORDERS[1] = DllStructGetData($TBORDERS, "BY")

$ABORDERS[2] = DllStructGetData($TBORDERS, "RX")

Return $ABORDERS

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETBORDERSHORZ($HWND)

Local $ABORDERS = _GUICTRLSTATUSBAR_GETBORDERS($HWND)

Return SetError(@error, @extended, $ABORDERS[0])

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETBORDERSRECT($HWND)

Local $ABORDERS = _GUICTRLSTATUSBAR_GETBORDERS($HWND)

Return SetError(@error, @extended, $ABORDERS[2])

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETBORDERSVERT($HWND)

Local $ABORDERS = _GUICTRLSTATUSBAR_GETBORDERS($HWND)

Return SetError(@error, @extended, $ABORDERS[1])

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETCOUNT($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $SB_GETPARTS)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETHEIGHT($HWND)

Local $TRECT = _GUICTRLSTATUSBAR_GETRECTEX($HWND, 0)

Return DllStructGetData($TRECT, "Bottom") - DllStructGetData($TRECT, "Top") - (_GUICTRLSTATUSBAR_GETBORDERSVERT($HWND) * 2)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETICON($HWND, $IINDEX = 0)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $SB_GETICON, $IINDEX, 0, 0, "wparam", "lparam", "hwnd")

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETPARTS($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $ICOUNT = _GUICTRLSTATUSBAR_GETCOUNT($HWND)

Local $TPARTS = DllStructCreate("int[" & $ICOUNT & "]")

Local $PPARTS = DllStructGetPtr($TPARTS)

Local $APARTS[$ICOUNT + 1]

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

$APARTS[0] = _SENDMESSAGE($HWND, $SB_GETPARTS, $ICOUNT, $PPARTS, 0, "wparam", "ptr")

Else

Local $IPARTS = DllStructGetSize($TPARTS)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IPARTS, $TMEMMAP)

$APARTS[0] = _SENDMESSAGE($HWND, $SB_GETPARTS, $ICOUNT, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PPARTS, $IPARTS)

_MEMFREE($TMEMMAP)

EndIf

For $II = 1 To $ICOUNT

$APARTS[$II] = DllStructGetData($TPARTS, 1, $II)

Next

Return $APARTS

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETRECT($HWND, $IPART)

Local $TRECT = _GUICTRLSTATUSBAR_GETRECTEX($HWND, $IPART)

If @error Then Return SetError(@error, 0, 0)

Local $ARECT[4]

$ARECT[0] = DllStructGetData($TRECT, "Left")

$ARECT[1] = DllStructGetData($TRECT, "Top")

$ARECT[2] = DllStructGetData($TRECT, "Right")

$ARECT[3] = DllStructGetData($TRECT, "Bottom")

Return $ARECT

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETRECTEX($HWND, $IPART)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $TRECT = DllStructCreate($TAGRECT)

Local $PRECT = DllStructGetPtr($TRECT)

Local $IRET

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $SB_GETRECT, $IPART, $PRECT, 0, "wparam", "ptr")

Else

Local $IRECT = DllStructGetSize($TRECT)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IRECT, $TMEMMAP)

$IRET = _SENDMESSAGE($HWND, $SB_GETRECT, $IPART, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PRECT, $IRECT)

_MEMFREE($TMEMMAP)

EndIf

Return SetError($IRET = 0, 0, $TRECT)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETTEXT($HWND, $IPART)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER = _GUICTRLSTATUSBAR_GETTEXTLENGTH($HWND, $IPART)

If $IBUFFER = 0 Then Return SetError(1, 0, "")

Local $TBUFFER

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TBUFFER = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TBUFFER)

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

_SENDMESSAGE($HWND, $SB_GETTEXTW, $IPART, $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

If $FUNICODE Then

_SENDMESSAGE($HWND, $SB_GETTEXTW, $IPART, $PMEMORY, 0, "wparam", "ptr")

Else

_SENDMESSAGE($HWND, $SB_GETTEXT, $IPART, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMREAD($TMEMMAP, $PMEMORY, $PBUFFER, $IBUFFER)

_MEMFREE($TMEMMAP)

EndIf

Return DllStructGetData($TBUFFER, "Text")

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETTEXTFLAGS($HWND, $IPART)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

If _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND) Then

Return _SENDMESSAGE($HWND, $SB_GETTEXTLENGTHW, $IPART)

Else

Return _SENDMESSAGE($HWND, $SB_GETTEXTLENGTH, $IPART)

EndIf

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETTEXTLENGTH($HWND, $IPART)

Return _WINAPI_LOWORD(_GUICTRLSTATUSBAR_GETTEXTFLAGS($HWND, $IPART))

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETTEXTLENGTHEX($HWND, $IPART)

Return _WINAPI_HIWORD(_GUICTRLSTATUSBAR_GETTEXTFLAGS($HWND, $IPART))

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETTIPTEXT($HWND, $IPART)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND)

Local $TBUFFER

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[4096]")

Else

$TBUFFER = DllStructCreate("char Text[4096]")

EndIf

Local $PBUFFER = DllStructGetPtr($TBUFFER)

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

_SENDMESSAGE($HWND, $SB_GETTIPTEXTW, _WINAPI_MAKELONG($IPART, 4096), $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, 4096, $TMEMMAP)

If $FUNICODE Then

_SENDMESSAGE($HWND, $SB_GETTIPTEXTW, _WINAPI_MAKELONG($IPART, 4096), $PMEMORY, 0, "wparam", "ptr")

Else

_SENDMESSAGE($HWND, $SB_GETTIPTEXTA, _WINAPI_MAKELONG($IPART, 4096), $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMREAD($TMEMMAP, $PMEMORY, $PBUFFER, 4096)

_MEMFREE($TMEMMAP)

EndIf

Return DllStructGetData($TBUFFER, "Text")

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $SB_GETUNICODEFORMAT) <> 0

EndFunc

 

 

Func _GUICTRLSTATUSBAR_GETWIDTH($HWND, $IPART)

Local $TRECT = _GUICTRLSTATUSBAR_GETRECTEX($HWND, $IPART)

Return DllStructGetData($TRECT, "Right") - DllStructGetData($TRECT, "Left") - (_GUICTRLSTATUSBAR_GETBORDERSHORZ($HWND) * 2)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_ISSIMPLE($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $SB_ISSIMPLE) <> 0

EndFunc

 

 

Func _GUICTRLSTATUSBAR_RESIZE($HWND)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

_SENDMESSAGE($HWND, $__STATUSBARCONSTANT_WM_SIZE)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETBKCOLOR($HWND, $ICOLOR)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

$ICOLOR = _SENDMESSAGE($HWND, $SB_SETBKCOLOR, 0, $ICOLOR)

If $ICOLOR = $__STATUSBARCONSTANT_CLR_DEFAULT Then Return "0x" & Hex($__STATUSBARCONSTANT_CLR_DEFAULT)

Return $ICOLOR

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETICON($HWND, $IPART, $HICON = -1, $SICONFILE = "")

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

If $HICON = -1 Then Return _SENDMESSAGE($HWND, $SB_SETICON, $IPART, $HICON, 0, "wparam", "handle") <> 0

If StringLen($SICONFILE) <= 0 Then Return _SENDMESSAGE($HWND, $SB_SETICON, $IPART, $HICON) <> 0

Local $TICON = DllStructCreate("handle")

Local $VRESULT = DllCall("shell32.dll", "uint", "ExtractIconExW", "wstr", $SICONFILE, "int", $HICON, "ptr", 0, "ptr", DllStructGetPtr($TICON), "uint", 1)

If @error Then Return SetError(@error, @extended, False)

$VRESULT = $VRESULT[0]

If $VRESULT > 0 Then $VRESULT = _SENDMESSAGE($HWND, $SB_SETICON, $IPART, DllStructGetData($TICON, 1), 0, "wparam", "handle")

DllCall("user32.dll", "bool", "DestroyIcon", "handle", DllStructGetData($TICON, 1))

Return $VRESULT

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETMINHEIGHT($HWND, $IMINHEIGHT)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

_SENDMESSAGE($HWND, $SB_SETMINHEIGHT, $IMINHEIGHT)

_GUICTRLSTATUSBAR_RESIZE($HWND)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETPARTS($HWND, $IAPARTS = -1, $IAPARTWIDTH = 25)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $TPARTS, $IPARTS = 1

If IsArray($IAPARTS) <> 0 Then

$IAPARTS[uBound($IAPARTS) - 1] = -1

$IPARTS = UBound($IAPARTS)

$TPARTS = DllStructCreate("int[" & $IPARTS & "]")

For $X = 0 To $IPARTS - 2

DllStructSetData($TPARTS, 1, $IAPARTS[$X], $X + 1)

Next

DllStructSetData($TPARTS, 1, -1, $IPARTS)

ElseIf IsArray($IAPARTWIDTH) <> 0 Then

$IPARTS = UBound($IAPARTWIDTH)

$TPARTS = DllStructCreate("int[" & $IPARTS & "]")

For $X = 0 To $IPARTS - 2

DllStructSetData($TPARTS, 1, $IAPARTWIDTH[$X], $X + 1)

Next

DllStructSetData($TPARTS, 1, -1, $IPARTS)

ElseIf $IAPARTS > 1 Then

$IPARTS = $IAPARTS

$TPARTS = DllStructCreate("int[" & $IPARTS & "]")

For $X = 1 To $IPARTS - 1

DllStructSetData($TPARTS, 1, $IAPARTWIDTH * $X, $X)

Next

DllStructSetData($TPARTS, 1, -1, $IPARTS)

Else

$TPARTS = DllStructCreate("int")

DllStructSetData($TPARTS, $IPARTS, -1)

EndIf

Local $PPARTS = DllStructGetPtr($TPARTS)

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

_SENDMESSAGE($HWND, $SB_SETPARTS, $IPARTS, $PPARTS, 0, "wparam", "ptr")

Else

Local $ISIZE = DllStructGetSize($TPARTS)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ISIZE, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PPARTS)

_SENDMESSAGE($HWND, $SB_SETPARTS, $IPARTS, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

_GUICTRLSTATUSBAR_RESIZE($HWND)

Return True

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETSIMPLE($HWND, $FSIMPLE = True)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

_SENDMESSAGE($HWND, $SB_SIMPLE, $FSIMPLE)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETTEXT($HWND, $STEXT = "", $IPART = 0, $IUFLAG = 0)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER = StringLen($STEXT) + 1

Local $TTEXT

If $FUNICODE Then

$TTEXT = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TTEXT = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TTEXT)

DllStructSetData($TTEXT, "Text", $STEXT)

If _GUICTRLSTATUSBAR_ISSIMPLE($HWND) Then $IPART = $SB_SIMPLEID

Local $IRET

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $SB_SETTEXTW, BitOR($IPART, $IUFLAG), $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUFFER)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $SB_SETTEXTW, BitOR($IPART, $IUFLAG), $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $SB_SETTEXT, BitOR($IPART, $IUFLAG), $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMFREE($TMEMMAP)

EndIf

Return $IRET <> 0

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETTIPTEXT($HWND, $IPART, $STEXT)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLSTATUSBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER = StringLen($STEXT) + 1

Local $TTEXT

If $FUNICODE Then

$TTEXT = DllStructCreate("wchar TipText[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TTEXT = DllStructCreate("char TipText[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TTEXT)

DllStructSetData($TTEXT, "TipText", $STEXT)

If _WINAPI_INPROCESS($HWND, $__GHSBLASTWND) Then

_SENDMESSAGE($HWND, $SB_SETTIPTEXTW, $IPART, $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUFFER, $PMEMORY, $IBUFFER)

If $FUNICODE Then

_SENDMESSAGE($HWND, $SB_SETTIPTEXTW, $IPART, $PMEMORY, 0, "wparam", "ptr")

Else

_SENDMESSAGE($HWND, $SB_SETTIPTEXTA, $IPART, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMFREE($TMEMMAP)

EndIf

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SETUNICODEFORMAT($HWND, $FUNICODE = True)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $SB_SETUNICODEFORMAT, $FUNICODE)

EndFunc

 

 

Func _GUICTRLSTATUSBAR_SHOWHIDE($HWND, $ISTATE)

If $DEBUG_SB Then __UDF_VALIDATECLASSNAME($HWND, $__STATUSBARCONSTANT_CLASSNAME)

If $ISTATE <> @SW_HIDE And $ISTATE <> @SW_SHOW Then Return SetError(1, 1, False)

Return _WINAPI_SHOWWINDOW($HWND, $ISTATE)

EndFunc

 

Global $_GHEDITLASTWND

Global $DEBUG_ED = False

Global Const $__EDITCONSTANT_CLASSNAME = "Edit"

Global Const $__EDITCONSTANT_GUI_CHECKED = 1

Global Const $__EDITCONSTANT_GUI_HIDE = 32

Global Const $__EDITCONSTANT_GUI_EVENT_CLOSE = -3

Global Const $__EDITCONSTANT_GUI_ENABLE = 64

Global Const $__EDITCONSTANT_GUI_DISABLE = 128

Global Const $__EDITCONSTANT_SS_CENTER = 1

Global Const $__EDITCONSTANT_WM_SETREDRAW = 11

Global Const $__EDITCONSTANT_WS_CAPTION = 12582912

Global Const $__EDITCONSTANT_WS_POPUP = -2147483648

Global Const $__EDITCONSTANT_WS_TABSTOP = 65536

Global Const $__EDITCONSTANT_WS_SYSMENU = 524288

Global Const $__EDITCONSTANT_WS_MINIMIZEBOX = 131072

Global Const $__EDITCONSTANT_DEFAULT_GUI_FONT = 17

Global Const $__EDITCONSTANT_WM_SETFONT = 48

Global Const $__EDITCONSTANT_WM_GETTEXTLENGTH = 14

Global Const $__EDITCONSTANT_WM_GETTEXT = 13

Global Const $__EDITCONSTANT_WM_SETTEXT = 12

Global Const $__EDITCONSTANT_SB_LINEUP = 0

Global Const $__EDITCONSTANT_SB_LINEDOWN = 1

Global Const $__EDITCONSTANT_SB_PAGEDOWN = 3

Global Const $__EDITCONSTANT_SB_PAGEUP = 2

Global Const $__EDITCONSTANT_SB_SCROLLCARET = 4

Global Const $TAGEDITBALLOONTIP = "dword Size;ptr Title;ptr Text;int Icon"

 

Func _GUICTRLEDIT_APPENDTEXT($HWND, $STEXT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ILENGTH = _GUICTRLEDIT_GETTEXTLEN($HWND)

_GUICTRLEDIT_SETSEL($HWND, $ILENGTH, $ILENGTH)

_SENDMESSAGE($HWND, $EM_REPLACESEL, True, $STEXT, 0, "wparam", "wstr")

EndFunc

 

 

Func _GUICTRLEDIT_BEGINUPDATE($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $__EDITCONSTANT_WM_SETREDRAW) = 0

EndFunc

 

 

Func _GUICTRLEDIT_CANUNDO($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_CANUNDO) <> 0

EndFunc

 

 

Func _GUICTRLEDIT_CHARFROMPOS($HWND, $IX, $IY)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ARETURN[2]

Local $IRET = _SENDMESSAGE($HWND, $EM_CHARFROMPOS, 0, _WINAPI_MAKELONG($IX, $IY))

$ARETURN[0] = _WINAPI_LOWORD($IRET)

$ARETURN[1] = _WINAPI_HIWORD($IRET)

Return $ARETURN

EndFunc

 

 

Func _GUICTRLEDIT_CREATE($HWND, $STEXT, $IX, $IY, $IWIDTH = 150, $IHEIGHT = 150, $ISTYLE = 3150020, $IEXSTYLE = 512)

If Not IsHWnd($HWND) Then Return SetError(1, 0, 0)

If Not IsString($STEXT) Then Return SetError(2, 0, 0)

If $IWIDTH = -1 Then $IWIDTH = 150

If $IHEIGHT = -1 Then $IHEIGHT = 150

If $ISTYLE = -1 Then $ISTYLE = 3150020

If $IEXSTYLE = -1 Then $IEXSTYLE = 512

If BitAND($ISTYLE, $ES_READONLY) = $ES_READONLY Then

$ISTYLE = BitOR($__UDFGUICONSTANT_WS_CHILD, $__UDFGUICONSTANT_WS_VISIBLE, $ISTYLE)

Else

$ISTYLE = BitOR($__UDFGUICONSTANT_WS_CHILD, $__UDFGUICONSTANT_WS_VISIBLE, $__EDITCONSTANT_WS_TABSTOP, $ISTYLE)

EndIf

Local $NCTRLID = __UDF_GETNEXTGLOBALID($HWND)

If @error Then Return SetError(@error, @extended, 0)

Local $HEDIT = _WINAPI_CREATEWINDOWEX($IEXSTYLE, $__EDITCONSTANT_CLASSNAME, "", $ISTYLE, $IX, $IY, $IWIDTH, $IHEIGHT, $HWND, $NCTRLID)

_SENDMESSAGE($HEDIT, $__EDITCONSTANT_WM_SETFONT, _WINAPI_GETSTOCKOBJECT($__EDITCONSTANT_DEFAULT_GUI_FONT), True)

_GUICTRLEDIT_SETTEXT($HEDIT, $STEXT)

_GUICTRLEDIT_SETLIMITTEXT($HEDIT, 0)

Return $HEDIT

EndFunc

 

 

Func _GUICTRLEDIT_DESTROY(ByRef $HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not _WINAPI_ISCLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME) Then Return SetError(2, 2, False)

Local $DESTROYED = 0

If IsHWnd($HWND) Then

If _WINAPI_INPROCESS($HWND, $_GHEDITLASTWND) Then

Local $NCTRLID = _WINAPI_GETDLGCTRLID($HWND)

Local $HPARENT = _WINAPI_GETPARENT($HWND)

$DESTROYED = _WINAPI_DESTROYWINDOW($HWND)

Local $IRET = __UDF_FREEGLOBALID($HPARENT, $NCTRLID)

If Not $IRET Then

EndIf

Else

Return SetError(1, 1, False)

EndIf

Else

$DESTROYED = GUICtrlDelete($HWND)

EndIf

If $DESTROYED Then $HWND = 0

Return $DESTROYED <> 0

EndFunc

 

 

Func _GUICTRLEDIT_EMPTYUNDOBUFFER($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_EMPTYUNDOBUFFER)

EndFunc

 

 

Func _GUICTRLEDIT_ENDUPDATE($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $__EDITCONSTANT_WM_SETREDRAW, 1) = 0

EndFunc

 

 

Func _GUICTRLEDIT_FMTLINES($HWND, $FSOFTBREAK = False)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_FMTLINES, $FSOFTBREAK)

EndFunc

 

 

Func _GUICTRLEDIT_FIND($HWND, $FREPLACE = False)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $IPOS = 0, $ICASE, $IOCCURANCE = 0, $IREPLACEMENTS = 0

Local $APARTSRIGHTEDGE[3] = [125, 225, -1]

Local $OLDMODE = Opt("GUIOnEventMode", 0)

Local $ASEL = _GUICTRLEDIT_GETSEL($HWND)

Local $STEXT = _GUICTRLEDIT_GETTEXT($HWND)

Local $GUISEARCH = GUICreate("Find", 349, 177, -1, -1, BitOR($__UDFGUICONSTANT_WS_CHILD, $__EDITCONSTANT_WS_MINIMIZEBOX, $__EDITCONSTANT_WS_CAPTION, $__EDITCONSTANT_WS_POPUP, $__EDITCONSTANT_WS_SYSMENU))

Local $STATUSBAR1 = _GUICTRLSTATUSBAR_CREATE($GUISEARCH, $APARTSRIGHTEDGE)

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Find: ")

GUISetIcon(@SystemDir & "\shell32.dll", 22, $GUISEARCH)

GUICtrlCreateLabel("Find what:", 9, 10, 53, 16, $__EDITCONSTANT_SS_CENTER)

Local $INPUTSEARCH = GUICtrlCreateInput("", 80, 8, 257, 21)

Local $LBLREPLACE = GUICtrlCreateLabel("Replace with:", 9, 42, 69, 17, $__EDITCONSTANT_SS_CENTER)

Local $INPUTREPLACE = GUICtrlCreateInput("", 80, 40, 257, 21)

Local $CHKWHOLEONLY = GUICtrlCreateCheckbox("Match whole word only", 9, 72, 145, 17)

Local $CHKMATCHCASE = GUICtrlCreateCheckbox("Match case", 9, 96, 145, 17)

Local $BTNFINDNEXT = GUICtrlCreateButton("Find Next", 168, 72, 161, 21, 0)

Local $BTNREPLACE = GUICtrlCreateButton("Replace", 168, 96, 161, 21, 0)

Local $BTNCLOSE = GUICtrlCreateButton("Close", 104, 130, 161, 21, 0)

If (IsArray($ASEL) And $ASEL <> $EC_ERR) Then

GUICtrlSetData($INPUTSEARCH, StringMid($STEXT, $ASEL[0] + 1, $ASEL[1] - $ASEL[0]))

If $ASEL[0] <> $ASEL[1] Then

$IPOS = $ASEL[0]

If BitAND(GUICtrlRead($CHKMATCHCASE), $__EDITCONSTANT_GUI_CHECKED) = $__EDITCONSTANT_GUI_CHECKED Then $ICASE = 1

$IOCCURANCE = 1

Local $ITPOSE

While 1

$ITPOSE = StringInStr($STEXT, GUICtrlRead($INPUTSEARCH), $ICASE, $IOCCURANCE)

If Not $ITPOSE Then

$IOCCURANCE = 0

ExitLoop

ElseIf $ITPOSE = $IPOS + 1 Then

ExitLoop

EndIf

$IOCCURANCE += 1

WEnd

EndIf

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Find: " & GUICtrlRead($INPUTSEARCH))

EndIf

If $FREPLACE = False Then

GUICtrlSetState($LBLREPLACE, $__EDITCONSTANT_GUI_HIDE)

GUICtrlSetState($INPUTREPLACE, $__EDITCONSTANT_GUI_HIDE)

GUICtrlSetState($BTNREPLACE, $__EDITCONSTANT_GUI_HIDE)

Else

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Replacements: " & $IREPLACEMENTS, 1)

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "With: ", 2)

EndIf

GUISetState(@SW_SHOW)

Local $MSGFIND

While 1

$MSGFIND = GUIGetMsg()

Select

Case $MSGFIND = $__EDITCONSTANT_GUI_EVENT_CLOSE Or $MSGFIND = $BTNCLOSE

ExitLoop

Case $MSGFIND = $BTNFINDNEXT

GUICtrlSetState($BTNFINDNEXT, $__EDITCONSTANT_GUI_DISABLE)

GUICtrlSetCursor($BTNFINDNEXT, 15)

Sleep(100)

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Find: " & GUICtrlRead($INPUTSEARCH))

If $FREPLACE = True Then

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Find: " & GUICtrlRead($INPUTSEARCH))

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "With: " & GUICtrlRead($INPUTREPLACE), 2)

EndIf

__GUICTRLEDIT_FINDTEXT($HWND, $INPUTSEARCH, $CHKMATCHCASE, $CHKWHOLEONLY, $IPOS, $IOCCURANCE, $IREPLACEMENTS)

Sleep(100)

GUICtrlSetState($BTNFINDNEXT, $__EDITCONSTANT_GUI_ENABLE)

GUICtrlSetCursor($BTNFINDNEXT, 2)

Case $MSGFIND = $BTNREPLACE

GUICtrlSetState($BTNREPLACE, $__EDITCONSTANT_GUI_DISABLE)

GUICtrlSetCursor($BTNREPLACE, 15)

Sleep(100)

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Find: " & GUICtrlRead($INPUTSEARCH))

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "With: " & GUICtrlRead($INPUTREPLACE), 2)

If $IPOS Then

_GUICTRLEDIT_REPLACESEL($HWND, GUICtrlRead($INPUTREPLACE))

$IREPLACEMENTS += 1

$IOCCURANCE -= 1

_GUICTRLSTATUSBAR_SETTEXT($STATUSBAR1, "Replacements: " & $IREPLACEMENTS, 1)

EndIf

__GUICTRLEDIT_FINDTEXT($HWND, $INPUTSEARCH, $CHKMATCHCASE, $CHKWHOLEONLY, $IPOS, $IOCCURANCE, $IREPLACEMENTS)

Sleep(100)

GUICtrlSetState($BTNREPLACE, $__EDITCONSTANT_GUI_ENABLE)

GUICtrlSetCursor($BTNREPLACE, 2)

EndSelect

WEnd

GUIDelete($GUISEARCH)

Opt("GUIOnEventMode", $OLDMODE)

EndFunc

 

 

Func __GUICTRLEDIT_FINDTEXT($HWND, $INPUTSEARCH, $CHKMATCHCASE, $CHKWHOLEONLY, ByRef $IPOS, ByRef $IOCCURANCE, ByRef $IREPLACEMENTS)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ICASE = 0, $IWHOLE = 0

Local $FEXACT = False

Local $SFIND = GUICtrlRead($INPUTSEARCH)

Local $STEXT = _GUICTRLEDIT_GETTEXT($HWND)

If BitAND(GUICtrlRead($CHKMATCHCASE), $__EDITCONSTANT_GUI_CHECKED) = $__EDITCONSTANT_GUI_CHECKED Then $ICASE = 1

If BitAND(GUICtrlRead($CHKWHOLEONLY), $__EDITCONSTANT_GUI_CHECKED) = $__EDITCONSTANT_GUI_CHECKED Then $IWHOLE = 1

If $SFIND <> "" Then

$IOCCURANCE += 1

$IPOS = StringInStr($STEXT, $SFIND, $ICASE, $IOCCURANCE)

If $IWHOLE And $IPOS Then

Local $C_COMPARE2 = StringMid($STEXT, $IPOS + StringLen($SFIND), 1)

If $IPOS = 1 Then

If ($IPOS + StringLen($SFIND)) - 1 = StringLen($STEXT) Or ($C_COMPARE2 = " " Or $C_COMPARE2 = @LF Or $C_COMPARE2 = @CR Or $C_COMPARE2 = @CRLF Or $C_COMPARE2 = @TAB) Then $FEXACT = True

Else

Local $C_COMPARE1 = StringMid($STEXT, $IPOS - 1, 1)

If ($IPOS + StringLen($SFIND)) - 1 = StringLen($STEXT) Then

If ($C_COMPARE1 = " " Or $C_COMPARE1 = @LF Or $C_COMPARE1 = @CR Or $C_COMPARE1 = @CRLF Or $C_COMPARE1 = @TAB) Then $FEXACT = True

Else

If ($C_COMPARE1 = " " Or $C_COMPARE1 = @LF Or $C_COMPARE1 = @CR Or $C_COMPARE1 = @CRLF Or $C_COMPARE1 = @TAB) And ($C_COMPARE2 = " " Or $C_COMPARE2 = @LF Or $C_COMPARE2 = @CR Or $C_COMPARE2 = @CRLF Or $C_COMPARE2 = @TAB) Then $FEXACT = True

EndIf

EndIf

If $FEXACT = False Then

__GUICTRLEDIT_FINDTEXT($HWND, $INPUTSEARCH, $CHKMATCHCASE, $CHKWHOLEONLY, $IPOS, $IOCCURANCE, $IREPLACEMENTS)

Else

_GUICTRLEDIT_SETSEL($HWND, $IPOS - 1, ($IPOS + StringLen($SFIND)) - 1)

_GUICTRLEDIT_SCROLL($HWND, $__EDITCONSTANT_SB_SCROLLCARET)

EndIf

ElseIf $IWHOLE And Not $IPOS Then

$IOCCURANCE = 0

MsgBox(48, "Find", "Reached End of document, Can not find the string '" & $SFIND & "'")

ElseIf Not $IWHOLE Then

If Not $IPOS Then

$IOCCURANCE = 1

_GUICTRLEDIT_SETSEL($HWND, -1, 0)

_GUICTRLEDIT_SCROLL($HWND, $__EDITCONSTANT_SB_SCROLLCARET)

$IPOS = StringInStr($STEXT, $SFIND, $ICASE, $IOCCURANCE)

If Not $IPOS Then

$IOCCURANCE = 0

MsgBox(48, "Find", "Reached End of document, Can not find the string '" & $SFIND & "'")

Else

_GUICTRLEDIT_SETSEL($HWND, $IPOS - 1, ($IPOS + StringLen($SFIND)) - 1)

_GUICTRLEDIT_SCROLL($HWND, $__EDITCONSTANT_SB_SCROLLCARET)

EndIf

Else

_GUICTRLEDIT_SETSEL($HWND, $IPOS - 1, ($IPOS + StringLen($SFIND)) - 1)

_GUICTRLEDIT_SCROLL($HWND, $__EDITCONSTANT_SB_SCROLLCARET)

EndIf

EndIf

EndIf

EndFunc

 

 

Func _GUICTRLEDIT_GETFIRSTVISIBLELINE($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETFIRSTVISIBLELINE)

EndFunc

 

 

Func _GUICTRLEDIT_GETHANDLE($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETHANDLE)

EndFunc

 

 

Func _GUICTRLEDIT_GETIMESTATUS($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETIMESTATUS, $EMSIS_COMPOSITIONSTRING)

EndFunc

 

 

Func _GUICTRLEDIT_GETLIMITTEXT($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETLIMITTEXT)

EndFunc

 

 

Func _GUICTRLEDIT_GETLINE($HWND, $ILINE)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ILENGTH = _GUICTRLEDIT_LINELENGTH($HWND, $ILINE)

If $ILENGTH = 0 Then Return ""

Local $TBUFFER = DllStructCreate("short Len;wchar Text[" & $ILENGTH & "]")

Local $PBUFFER = DllStructGetPtr($TBUFFER)

DllStructSetData($TBUFFER, "Len", $ILENGTH + 1)

Local $IRET = _SENDMESSAGE($HWND, $EM_GETLINE, $ILINE, $PBUFFER, 0, "wparam", "ptr")

If $IRET = 0 Then Return SetError($EC_ERR, $EC_ERR, "")

Local $TTEXT = DllStructCreate("wchar Text[" & $ILENGTH & "]", $PBUFFER)

Return DllStructGetData($TTEXT, "Text")

EndFunc

 

 

Func _GUICTRLEDIT_GETLINECOUNT($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETLINECOUNT)

EndFunc

 

 

Func _GUICTRLEDIT_GETMARGINS($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $AMARGINS[2]

Local $IMARGINS = _SENDMESSAGE($HWND, $EM_GETMARGINS)

$AMARGINS[0] = _WINAPI_LOWORD($IMARGINS)

$AMARGINS[1] = _WINAPI_HIWORD($IMARGINS)

Return $AMARGINS

EndFunc

 

 

Func _GUICTRLEDIT_GETMODIFY($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETMODIFY) <> 0

EndFunc

 

 

Func _GUICTRLEDIT_GETPASSWORDCHAR($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETPASSWORDCHAR)

EndFunc

 

 

Func _GUICTRLEDIT_GETRECT($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ARECT[4]

Local $TRECT = _GUICTRLEDIT_GETRECTEX($HWND)

$ARECT[0] = DllStructGetData($TRECT, "Left")

$ARECT[1] = DllStructGetData($TRECT, "Top")

$ARECT[2] = DllStructGetData($TRECT, "Right")

$ARECT[3] = DllStructGetData($TRECT, "Bottom")

Return $ARECT

EndFunc

 

 

Func _GUICTRLEDIT_GETRECTEX($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TRECT = DllStructCreate($TAGRECT)

_SENDMESSAGE($HWND, $EM_GETRECT, 0, DllStructGetPtr($TRECT), 0, "wparam", "ptr")

Return $TRECT

EndFunc

 

 

Func _GUICTRLEDIT_GETSEL($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ASEL[2]

Local $WPARAM = DllStructCreate("uint Start")

Local $LPARAM = DllStructCreate("uint End")

_SENDMESSAGE($HWND, $EM_GETSEL, DllStructGetPtr($WPARAM), DllStructGetPtr($LPARAM), 0, "ptr", "ptr")

$ASEL[0] = DllStructGetData($WPARAM, "Start")

$ASEL[1] = DllStructGetData($LPARAM, "End")

Return $ASEL

EndFunc

 

 

Func _GUICTRLEDIT_GETTEXT($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ITEXTLEN = _GUICTRLEDIT_GETTEXTLEN($HWND) + 1

Local $TTEXT = DllStructCreate("wchar Text[" & $ITEXTLEN & "]")

_SENDMESSAGE($HWND, $__EDITCONSTANT_WM_GETTEXT, $ITEXTLEN, DllStructGetPtr($TTEXT), 0, "wparam", "ptr")

Return DllStructGetData($TTEXT, "Text")

EndFunc

 

 

Func _GUICTRLEDIT_GETTEXTLEN($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $__EDITCONSTANT_WM_GETTEXTLENGTH)

EndFunc

 

 

Func _GUICTRLEDIT_GETTHUMB($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETTHUMB)

EndFunc

 

 

Func _GUICTRLEDIT_GETWORDBREAKPROC($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_GETWORDBREAKPROC)

EndFunc

 

 

Func _GUICTRLEDIT_HIDEBALLOONTIP($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_HIDEBALLOONTIP)

EndFunc

 

 

Func _GUICTRLEDIT_INSERTTEXT($HWND, $STEXT, $IINDEX = -1)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If $IINDEX = -1 Then

_GUICTRLEDIT_APPENDTEXT($HWND, $STEXT)

Else

_GUICTRLEDIT_SETSEL($HWND, $IINDEX, $IINDEX)

_SENDMESSAGE($HWND, $EM_REPLACESEL, True, $STEXT, 0, "wparam", "wstr")

EndIf

EndFunc

 

 

Func _GUICTRLEDIT_LINEFROMCHAR($HWND, $IINDEX = -1)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_LINEFROMCHAR, $IINDEX)

EndFunc

 

 

Func _GUICTRLEDIT_LINEINDEX($HWND, $IINDEX = -1)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_LINEINDEX, $IINDEX)

EndFunc

 

 

Func _GUICTRLEDIT_LINELENGTH($HWND, $IINDEX = -1)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $CHARINDEX = _GUICTRLEDIT_LINEINDEX($HWND, $IINDEX)

Return _SENDMESSAGE($HWND, $EM_LINELENGTH, $CHARINDEX)

EndFunc

 

 

Func _GUICTRLEDIT_LINESCROLL($HWND, $IHORIZ, $IVERT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_LINESCROLL, $IHORIZ, $IVERT) <> 0

EndFunc

 

 

Func _GUICTRLEDIT_POSFROMCHAR($HWND, $IINDEX)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ACOORD[2]

Local $IRET = _SENDMESSAGE($HWND, $EM_POSFROMCHAR, $IINDEX)

$ACOORD[0] = _WINAPI_LOWORD($IRET)

$ACOORD[1] = _WINAPI_HIWORD($IRET)

Return $ACOORD

EndFunc

 

 

Func _GUICTRLEDIT_REPLACESEL($HWND, $STEXT, $FUNDO = True)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_REPLACESEL, $FUNDO, $STEXT, 0, "wparam", "wstr")

EndFunc

 

 

Func _GUICTRLEDIT_SCROLL($HWND, $IDIRECTION)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If BitAND($IDIRECTION, $__EDITCONSTANT_SB_LINEDOWN) <> $__EDITCONSTANT_SB_LINEDOWN And BitAND($IDIRECTION, $__EDITCONSTANT_SB_LINEUP) <> $__EDITCONSTANT_SB_LINEUP And BitAND($IDIRECTION, $__EDITCONSTANT_SB_PAGEDOWN) <> $__EDITCONSTANT_SB_PAGEDOWN And BitAND($IDIRECTION, $__EDITCONSTANT_SB_PAGEUP) <> $__EDITCONSTANT_SB_PAGEUP And BitAND($IDIRECTION, $__EDITCONSTANT_SB_SCROLLCARET) <> $__EDITCONSTANT_SB_SCROLLCARET Then Return 0

If $IDIRECTION == $__EDITCONSTANT_SB_SCROLLCARET Then

Return _SENDMESSAGE($HWND, $EM_SCROLLCARET)

Else

Return _SENDMESSAGE($HWND, $EM_SCROLL, $IDIRECTION)

EndIf

EndFunc

 

 

Func _GUICTRLEDIT_SETHANDLE($HWND, $HMEMORY)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_SETHANDLE, $HMEMORY, 0, 0, "hwnd")

EndFunc

 

 

Func _GUICTRLEDIT_SETIMESTATUS($HWND, $ICOMPOSITION)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_SETIMESTATUS, $EMSIS_COMPOSITIONSTRING, $ICOMPOSITION)

EndFunc

 

 

Func _GUICTRLEDIT_SETLIMITTEXT($HWND, $ILIMIT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETLIMITTEXT, $ILIMIT)

EndFunc

 

 

Func _GUICTRLEDIT_SETMARGINS($HWND, $IMARGIN = 1, $ILEFT = 65535, $IRIGHT = 65535)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETMARGINS, $IMARGIN, _WINAPI_MAKELONG($ILEFT, $IRIGHT))

EndFunc

 

 

Func _GUICTRLEDIT_SETMODIFY($HWND, $FMODIFIED)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETMODIFY, $FMODIFIED)

EndFunc

 

 

Func _GUICTRLEDIT_SETPASSWORDCHAR($HWND, $CDISPLAYCHAR = "0")

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

$CDISPLAYCHAR = StringLeft($CDISPLAYCHAR, 1)

If Asc($CDISPLAYCHAR) = 48 Then

_SENDMESSAGE($HWND, $EM_SETPASSWORDCHAR)

Else

_SENDMESSAGE($HWND, $EM_SETPASSWORDCHAR, Asc($CDISPLAYCHAR))

EndIf

EndFunc

 

 

Func _GUICTRLEDIT_SETREADONLY($HWND, $FREADONLY)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_SETREADONLY, $FREADONLY) <> 0

EndFunc

 

 

Func _GUICTRLEDIT_SETRECT($HWND, $ARECT)

Local $TRECT = DllStructCreate($TAGRECT)

DllStructSetData($TRECT, "Left", $ARECT[0])

DllStructSetData($TRECT, "Top", $ARECT[1])

DllStructSetData($TRECT, "Right", $ARECT[2])

DllStructSetData($TRECT, "Bottom", $ARECT[3])

_GUICTRLEDIT_SETRECTEX($HWND, $TRECT)

EndFunc

 

 

Func _GUICTRLEDIT_SETRECTEX($HWND, $TRECT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETRECT, 0, DllStructGetPtr($TRECT), 0, "wparam", "ptr")

EndFunc

 

 

Func _GUICTRLEDIT_SETRECTNP($HWND, $ARECT)

Local $TRECT = DllStructCreate($TAGRECT)

DllStructSetData($TRECT, "Left", $ARECT[0])

DllStructSetData($TRECT, "Top", $ARECT[1])

DllStructSetData($TRECT, "Right", $ARECT[2])

DllStructSetData($TRECT, "Bottom", $ARECT[3])

_GUICTRLEDIT_SETRECTNPEX($HWND, $TRECT)

EndFunc

 

 

Func _GUICTRLEDIT_SETRECTNPEX($HWND, $TRECT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETRECTNP, 0, DllStructGetPtr($TRECT), 0, "wparam", "ptr")

EndFunc

 

 

Func _GUICTRLEDIT_SETSEL($HWND, $ISTART, $IEND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETSEL, $ISTART, $IEND)

EndFunc

 

 

Func _GUICTRLEDIT_SETTABSTOPS($HWND, $ATABSTOPS)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If Not IsArray($ATABSTOPS) Then Return SetError(-1, -1, False)

Local $STABSTOPS = ""

Local $INUMTABSTOPS = UBound($ATABSTOPS)

For $X = 0 To $INUMTABSTOPS - 1

$STABSTOPS &= "int;"

Next

$STABSTOPS = StringTrimRight($STABSTOPS, 1)

Local $TTABSTOPS = DllStructCreate($STABSTOPS)

For $X = 0 To $INUMTABSTOPS - 1

DllStructSetData($TTABSTOPS, $X + 1, $ATABSTOPS[$X])

Next

Local $IRET = _SENDMESSAGE($HWND, $EM_SETTABSTOPS, $INUMTABSTOPS, DllStructGetPtr($TTABSTOPS), 0, "wparam", "ptr") <> 0

_WINAPI_INVALIDATERECT($HWND)

Return $IRET

EndFunc

 

 

Func _GUICTRLEDIT_SETTEXT($HWND, $STEXT)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $__EDITCONSTANT_WM_SETTEXT, 0, $STEXT, 0, "wparam", "wstr")

EndFunc

 

 

Func _GUICTRLEDIT_SETWORDBREAKPROC($HWND, $IADDRESSFUNC)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $EM_SETWORDBREAKPROC, 0, $IADDRESSFUNC)

EndFunc

 

 

Func _GUICTRLEDIT_SHOWBALLOONTIP($HWND, $STITLE, $STEXT, $IICON)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TTITLE = _WINAPI_MULTIBYTETOWIDECHAR($STITLE)

Local $TTEXT = _WINAPI_MULTIBYTETOWIDECHAR($STEXT)

Local $TTT = DllStructCreate($TAGEDITBALLOONTIP)

DllStructSetData($TTT, "Size", DllStructGetSize($TTT))

DllStructSetData($TTT, "Title", DllStructGetPtr($TTITLE))

DllStructSetData($TTT, "Text", DllStructGetPtr($TTEXT))

DllStructSetData($TTT, "Icon", $IICON)

Return _SENDMESSAGE($HWND, $EM_SHOWBALLOONTIP, 0, DllStructGetPtr($TTT), 0, "wparam", "ptr") <> 0

EndFunc

 

 

Func _GUICTRLEDIT_UNDO($HWND)

If $DEBUG_ED Then __UDF_VALIDATECLASSNAME($HWND, $__EDITCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $EM_UNDO) <> 0

EndFunc

 

Global Const $GUI_EVENT_CLOSE = -3

Global Const $GUI_EVENT_MINIMIZE = -4

Global Const $GUI_EVENT_RESTORE = -5

Global Const $GUI_EVENT_MAXIMIZE = -6

Global Const $GUI_EVENT_PRIMARYDOWN = -7

Global Const $GUI_EVENT_PRIMARYUP = -8

Global Const $GUI_EVENT_SECONDARYDOWN = -9

Global Const $GUI_EVENT_SECONDARYUP = -10

Global Const $GUI_EVENT_MOUSEMOVE = -11

Global Const $GUI_EVENT_RESIZED = -12

Global Const $GUI_EVENT_DROPPED = -13

Global Const $GUI_RUNDEFMSG = "GUI_RUNDEFMSG"

Global Const $GUI_AVISTOP = 0

Global Const $GUI_AVISTART = 1

Global Const $GUI_AVICLOSE = 2

Global Const $GUI_CHECKED = 1

Global Const $GUI_INDETERMINATE = 2

Global Const $GUI_UNCHECKED = 4

Global Const $GUI_DROPACCEPTED = 8

Global Const $GUI_NODROPACCEPTED = 4096

Global Const $GUI_ACCEPTFILES = $GUI_DROPACCEPTED

Global Const $GUI_SHOW = 16

Global Const $GUI_HIDE = 32

Global Const $GUI_ENABLE = 64

Global Const $GUI_DISABLE = 128

Global Const $GUI_FOCUS = 256

Global Const $GUI_NOFOCUS = 8192

Global Const $GUI_DEFBUTTON = 512

Global Const $GUI_EXPAND = 1024

Global Const $GUI_ONTOP = 2048

Global Const $GUI_FONTITALIC = 2

Global Const $GUI_FONTUNDER = 4

Global Const $GUI_FONTSTRIKE = 8

Global Const $GUI_DOCKAUTO = 1

Global Const $GUI_DOCKLEFT = 2

Global Const $GUI_DOCKRIGHT = 4

Global Const $GUI_DOCKHCENTER = 8

Global Const $GUI_DOCKTOP = 32

Global Const $GUI_DOCKBOTTOM = 64

Global Const $GUI_DOCKVCENTER = 128

Global Const $GUI_DOCKWIDTH = 256

Global Const $GUI_DOCKHEIGHT = 512

Global Const $GUI_DOCKSIZE = 768

Global Const $GUI_DOCKMENUBAR = 544

Global Const $GUI_DOCKSTATEBAR = 576

Global Const $GUI_DOCKALL = 802

Global Const $GUI_DOCKBORDERS = 102

Global Const $GUI_GR_CLOSE = 1

Global Const $GUI_GR_LINE = 2

Global Const $GUI_GR_BEZIER = 4

Global Const $GUI_GR_MOVE = 6

Global Const $GUI_GR_COLOR = 8

Global Const $GUI_GR_RECT = 10

Global Const $GUI_GR_ELLIPSE = 12

Global Const $GUI_GR_PIE = 14

Global Const $GUI_GR_DOT = 16

Global Const $GUI_GR_PIXEL = 18

Global Const $GUI_GR_HINT = 20

Global Const $GUI_GR_REFRESH = 22

Global Const $GUI_GR_PENSIZE = 24

Global Const $GUI_GR_NOBKCOLOR = -2

Global Const $GUI_BKCOLOR_DEFAULT = -1

Global Const $GUI_BKCOLOR_TRANSPARENT = -2

Global Const $GUI_BKCOLOR_LV_ALTERNATE = -33554432

Global Const $GUI_WS_EX_PARENTDRAG = 1048576

Global Const $BS_GROUPBOX = 7

Global Const $BS_BOTTOM = 2048

Global Const $BS_CENTER = 768

Global Const $BS_DEFPUSHBUTTON = 1

Global Const $BS_LEFT = 256

Global Const $BS_MULTILINE = 8192

Global Const $BS_PUSHBOX = 10

Global Const $BS_PUSHLIKE = 4096

Global Const $BS_RIGHT = 512

Global Const $BS_RIGHTBUTTON = 32

Global Const $BS_TOP = 1024

Global Const $BS_VCENTER = 3072

Global Const $BS_FLAT = 32768

Global Const $BS_ICON = 64

Global Const $BS_BITMAP = 128

Global Const $BS_NOTIFY = 16384

Global Const $BS_SPLITBUTTON = 12

Global Const $BS_DEFSPLITBUTTON = 13

Global Const $BS_COMMANDLINK = 14

Global Const $BS_DEFCOMMANDLINK = 15

Global Const $BCSIF_GLYPH = 1

Global Const $BCSIF_IMAGE = 2

Global Const $BCSIF_STYLE = 4

Global Const $BCSIF_SIZE = 8

Global Const $BCSS_NOSPLIT = 1

Global Const $BCSS_STRETCH = 2

Global Const $BCSS_ALIGNLEFT = 4

Global Const $BCSS_IMAGE = 8

Global Const $BUTTON_IMAGELIST_ALIGN_LEFT = 0

Global Const $BUTTON_IMAGELIST_ALIGN_RIGHT = 1

Global Const $BUTTON_IMAGELIST_ALIGN_TOP = 2

Global Const $BUTTON_IMAGELIST_ALIGN_BOTTOM = 3

Global Const $BUTTON_IMAGELIST_ALIGN_CENTER = 4

Global Const $BS_3STATE = 5

Global Const $BS_AUTO3STATE = 6

Global Const $BS_AUTOCHECKBOX = 3

Global Const $BS_CHECKBOX = 2

Global Const $BS_RADIOBUTTON = 4

Global Const $BS_AUTORADIOBUTTON = 9

Global Const $BS_OWNERDRAW = 11

Global Const $GUI_SS_DEFAULT_BUTTON = 0

Global Const $GUI_SS_DEFAULT_CHECKBOX = 0

Global Const $GUI_SS_DEFAULT_GROUP = 0

Global Const $GUI_SS_DEFAULT_RADIO = 0

Global Const $BCM_FIRST = 5632

Global Const $BCM_GETIDEALSIZE = ($BCM_FIRST + 1)

Global Const $BCM_GETIMAGELIST = ($BCM_FIRST + 3)

Global Const $BCM_GETNOTE = ($BCM_FIRST + 10)

Global Const $BCM_GETNOTELENGTH = ($BCM_FIRST + 11)

Global Const $BCM_GETSPLITINFO = ($BCM_FIRST + 8)

Global Const $BCM_GETTEXTMARGIN = ($BCM_FIRST + 5)

Global Const $BCM_SETDROPDOWNSTATE = ($BCM_FIRST + 6)

Global Const $BCM_SETIMAGELIST = ($BCM_FIRST + 2)

Global Const $BCM_SETNOTE = ($BCM_FIRST + 9)

Global Const $BCM_SETSHIELD = ($BCM_FIRST + 12)

Global Const $BCM_SETSPLITINFO = ($BCM_FIRST + 7)

Global Const $BCM_SETTEXTMARGIN = ($BCM_FIRST + 4)

Global Const $BM_CLICK = 245

Global Const $BM_GETCHECK = 240

Global Const $BM_GETIMAGE = 246

Global Const $BM_GETSTATE = 242

Global Const $BM_SETCHECK = 241

Global Const $BM_SETDONTCLICK = 248

Global Const $BM_SETIMAGE = 247

Global Const $BM_SETSTATE = 243

Global Const $BM_SETSTYLE = 244

Global Const $BCN_FIRST = -1250

Global Const $BCN_DROPDOWN = ($BCN_FIRST + 2)

Global Const $BCN_HOTITEMCHANGE = ($BCN_FIRST + 1)

Global Const $BN_CLICKED = 0

Global Const $BN_PAINT = 1

Global Const $BN_HILITE = 2

Global Const $BN_UNHILITE = 3

Global Const $BN_DISABLE = 4

Global Const $BN_DOUBLECLICKED = 5

Global Const $BN_SETFOCUS = 6

Global Const $BN_KILLFOCUS = 7

Global Const $BN_PUSHED = $BN_HILITE

Global Const $BN_UNPUSHED = $BN_UNHILITE

Global Const $BN_DBLCLK = $BN_DOUBLECLICKED

Global Const $BST_CHECKED = 1

Global Const $BST_INDETERMINATE = 2

Global Const $BST_UNCHECKED = 0

Global Const $BST_FOCUS = 8

Global Const $BST_PUSHED = 4

Global Const $BST_DONTCLICK = 128

Global $_GHBUTTONLASTWND

Global $DEBUG_BTN = False

Global Const $TAGBUTTON_IMAGELIST = "ptr ImageList;" & $TAGRECT & ";uint Align"

Global Const $TAGBUTTON_SPLITINFO = "uint mask;handle himlGlyph;uint uSplitStyle;" & $TAGSIZE

Global Const $__BUTTONCONSTANT_CLASSNAME = "Button"

Global Const $__BUTTONCONSTANT_GWL_STYLE = -16

Global Const $__BUTTONCONSTANT_LR_LOADFROMFILE = 16

Global Const $__BUTTONCONSTANT_LR_CREATEDIBSECTION = 8192

Global Const $__BUTTONCONSTANT_WS_TABSTOP = 65536

Global Const $__BUTTONCONSTANT_WM_SETFONT = 48

Global Const $__BUTTONCONSTANT_DEFAULT_GUI_FONT = 17

 

Func _GUICTRLBUTTON_CLICK($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $BM_CLICK)

EndFunc

 

 

Func _GUICTRLBUTTON_CREATE($HWND, $STEXT, $IX, $IY, $IWIDTH, $IHEIGHT, $ISTYLE = -1, $IEXSTYLE = -1)

If Not IsHWnd($HWND) Then

Return SetError(1, 0, 0)

EndIf

If Not IsString($STEXT) Then

Return SetError(2, 0, 0)

EndIf

Local $IFORCEDSTYLE = BitOR($__BUTTONCONSTANT_WS_TABSTOP, $__UDFGUICONSTANT_WS_VISIBLE, $__UDFGUICONSTANT_WS_CHILD, $BS_NOTIFY)

If $ISTYLE = -1 Then

$ISTYLE = $IFORCEDSTYLE

Else

$ISTYLE = BitOR($ISTYLE, $IFORCEDSTYLE)

EndIf

If $IEXSTYLE = -1 Then $IEXSTYLE = 0

Local $NCTRLID = __UDF_GETNEXTGLOBALID($HWND)

If @error Then Return SetError(@error, @extended, 0)

Local $HBUTTON = _WINAPI_CREATEWINDOWEX($IEXSTYLE, $__BUTTONCONSTANT_CLASSNAME, $STEXT, $ISTYLE, $IX, $IY, $IWIDTH, $IHEIGHT, $HWND, $NCTRLID)

_SENDMESSAGE($HBUTTON, $__BUTTONCONSTANT_WM_SETFONT, _WINAPI_GETSTOCKOBJECT($__BUTTONCONSTANT_DEFAULT_GUI_FONT), True)

Return $HBUTTON

EndFunc

 

 

Func _GUICTRLBUTTON_DESTROY(ByRef $HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return SetError(2, 2, False)

Local $DESTROYED = 0

If IsHWnd($HWND) Then

If _WINAPI_INPROCESS($HWND, $_GHBUTTONLASTWND) 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 _GUICTRLBUTTON_ENABLE($HWND, $FENABLE = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return _WINAPI_ENABLEWINDOW($HWND, $FENABLE) = $FENABLE

EndFunc

 

 

Func _GUICTRLBUTTON_GETCHECK($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $BM_GETCHECK)

EndFunc

 

 

Func _GUICTRLBUTTON_GETFOCUS($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return _WINAPI_GETFOCUS() = $HWND

EndFunc

 

 

Func _GUICTRLBUTTON_GETIDEALSIZE($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TSIZE = DllStructCreate($TAGSIZE), $ASIZE[2]

Local $IRET = _SENDMESSAGE($HWND, $BCM_GETIDEALSIZE, 0, DllStructGetPtr($TSIZE))

If Not $IRET Then Return SetError(-1, -1, $ASIZE)

$ASIZE[0] = DllStructGetData($TSIZE, "X")

$ASIZE[1] = DllStructGetData($TSIZE, "Y")

Return $ASIZE

EndFunc

 

 

Func _GUICTRLBUTTON_GETIMAGE($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $IRET = _SENDMESSAGE($HWND, $BM_GETIMAGE, 0, 0, 0, "wparam", "lparam", "hwnd")

If $IRET <> 0 Then Return $IRET

$IRET = _SENDMESSAGE($HWND, $BM_GETIMAGE, 1, 0, 0, "wparam", "lparam", "hwnd")

If $IRET = 0 Then Return 0

Return $IRET

EndFunc

 

 

Func _GUICTRLBUTTON_GETIMAGELIST($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TBUTTON_IMAGELIST = DllStructCreate($TAGBUTTON_IMAGELIST), $AIMAGELIST[6]

If Not _SENDMESSAGE($HWND, $BCM_GETIMAGELIST, 0, DllStructGetPtr($TBUTTON_IMAGELIST)) Then Return SetError(-1, -1, $AIMAGELIST)

$AIMAGELIST[0] = DllStructGetData($TBUTTON_IMAGELIST, "ImageList")

$AIMAGELIST[1] = DllStructGetData($TBUTTON_IMAGELIST, "Left")

$AIMAGELIST[2] = DllStructGetData($TBUTTON_IMAGELIST, "Right")

$AIMAGELIST[3] = DllStructGetData($TBUTTON_IMAGELIST, "Top")

$AIMAGELIST[4] = DllStructGetData($TBUTTON_IMAGELIST, "Bottom")

$AIMAGELIST[5] = DllStructGetData($TBUTTON_IMAGELIST, "Align")

Return $AIMAGELIST

EndFunc

 

 

Func _GUICTRLBUTTON_GETNOTE($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $ILEN = _GUICTRLBUTTON_GETNOTELENGTH($HWND) + 1

Local $TNOTE = DllStructCreate("wchar Note[" & $ILEN & "]")

Local $TLEN = DllStructCreate("dword")

DllStructSetData($TLEN, 1, $ILEN)

If Not _SENDMESSAGE($HWND, $BCM_GETNOTE, DllStructGetPtr($TLEN), DllStructGetPtr($TNOTE)) Then Return SetError(-1, 0, "")

Return _WINAPI_WIDECHARTOMULTIBYTE(DllStructGetPtr($TNOTE))

EndFunc

 

 

Func _GUICTRLBUTTON_GETNOTELENGTH($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $BCM_GETNOTELENGTH)

EndFunc

 

 

Func _GUICTRLBUTTON_GETSPLITINFO($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TSPLITINFO = DllStructCreate($TAGBUTTON_SPLITINFO), $AINFO[4]

DllStructSetData($TSPLITINFO, "mask", BitOR($BCSIF_GLYPH, $BCSIF_IMAGE, $BCSIF_SIZE, $BCSIF_STYLE))

If Not _SENDMESSAGE($HWND, $BCM_GETSPLITINFO, 0, DllStructGetPtr($TSPLITINFO)) Then Return SetError(-1, 0, $AINFO)

$AINFO[0] = DllStructGetData($TSPLITINFO, "himlGlyph")

$AINFO[1] = DllStructGetData($TSPLITINFO, "uSplitStyle")

$AINFO[2] = DllStructGetData($TSPLITINFO, "X")

$AINFO[3] = DllStructGetData($TSPLITINFO, "Y")

Return $AINFO

EndFunc

 

 

Func _GUICTRLBUTTON_GETSTATE($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $BM_GETSTATE)

EndFunc

 

 

Func _GUICTRLBUTTON_GETTEXT($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return _WINAPI_GETWINDOWTEXT($HWND)

Return ""

EndFunc

 

 

Func _GUICTRLBUTTON_GETTEXTMARGIN($HWND)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TRECT = DllStructCreate($TAGRECT), $ARECT[4]

If Not _SENDMESSAGE($HWND, $BCM_GETTEXTMARGIN, 0, DllStructGetPtr($TRECT)) Then Return SetError(-1, -1, $ARECT)

$ARECT[0] = DllStructGetData($TRECT, "Left")

$ARECT[1] = DllStructGetData($TRECT, "Top")

$ARECT[2] = DllStructGetData($TRECT, "Right")

$ARECT[3] = DllStructGetData($TRECT, "Bottom")

Return $ARECT

EndFunc

 

 

Func _GUICTRLBUTTON_SETCHECK($HWND, $ISTATE = $BST_CHECKED)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $BM_SETCHECK, $ISTATE)

EndFunc

 

 

Func _GUICTRLBUTTON_SETDONTCLICK($HWND, $FSTATE = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $BM_SETDONTCLICK, $FSTATE)

EndFunc

 

 

Func _GUICTRLBUTTON_SETDROPDOWNSTATE($HWND, $FSTATE = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $BCM_SETDROPDOWNSTATE, $FSTATE) <> 0

EndFunc

 

 

Func _GUICTRLBUTTON_SETFOCUS($HWND, $FFOCUS = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then

If $FFOCUS Then

Return _WINAPI_SETFOCUS($HWND) <> 0

Else

Return _WINAPI_SETFOCUS(_WINAPI_GETPARENT($HWND)) <> 0

EndIf

EndIf

EndFunc

 

 

Func _GUICTRLBUTTON_SETIMAGE($HWND, $SIMAGEFILE, $NICONID = -1, $FLARGE = False)

Local $HIMAGE, $HPREVIMAGE

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If StringUpper(StringMid($SIMAGEFILE, StringLen($SIMAGEFILE) - 2)) = "BMP" Then

If BitAND(_WINAPI_GETWINDOWLONG($HWND, $__BUTTONCONSTANT_GWL_STYLE), $BS_BITMAP) = $BS_BITMAP Then

$HIMAGE = _WINAPI_LOADIMAGE(0, $SIMAGEFILE, 0, 0, 0, BitOR($__BUTTONCONSTANT_LR_LOADFROMFILE, $__BUTTONCONSTANT_LR_CREATEDIBSECTION))

If Not $HIMAGE Then Return SetError(-1, -1, False)

$HPREVIMAGE = _SENDMESSAGE($HWND, $BM_SETIMAGE, 0, $HIMAGE)

If $HPREVIMAGE Then

If Not _WINAPI_DELETEOBJECT($HPREVIMAGE) Then _WINAPI_DESTROYICON($HPREVIMAGE)

EndIf

_WINAPI_UPDATEWINDOW($HWND)

Return True

EndIf

Else

If $NICONID = -1 Then

$HIMAGE = _WINAPI_LOADIMAGE(0, $SIMAGEFILE, 1, 0, 0, BitOR($__BUTTONCONSTANT_LR_LOADFROMFILE, $__BUTTONCONSTANT_LR_CREATEDIBSECTION))

If Not $HIMAGE Then Return SetError(-1, -1, False)

$HPREVIMAGE = _SENDMESSAGE($HWND, $BM_SETIMAGE, 1, $HIMAGE)

If $HPREVIMAGE Then

If Not _WINAPI_DELETEOBJECT($HPREVIMAGE) Then _WINAPI_DESTROYICON($HPREVIMAGE)

EndIf

_WINAPI_UPDATEWINDOW($HWND)

Return True

Else

Local $TICON = DllStructCreate("handle Handle")

Local $IRET

If $FLARGE Then

$IRET = _WINAPI_EXTRACTICONEX($SIMAGEFILE, $NICONID, DllStructGetPtr($TICON), 0, 1)

Else

$IRET = _WINAPI_EXTRACTICONEX($SIMAGEFILE, $NICONID, 0, DllStructGetPtr($TICON), 1)

EndIf

If Not $IRET Then Return SetError(-1, -1, False)

$HPREVIMAGE = _SENDMESSAGE($HWND, $BM_SETIMAGE, 1, DllStructGetData($TICON, "Handle"))

If $HPREVIMAGE Then

If Not _WINAPI_DELETEOBJECT($HPREVIMAGE) Then _WINAPI_DESTROYICON($HPREVIMAGE)

EndIf

_WINAPI_UPDATEWINDOW($HWND)

Return True

EndIf

EndIf

Return False

EndFunc

 

 

Func _GUICTRLBUTTON_SETIMAGELIST($HWND, $HIMAGE, $NALIGN = 0, $ILEFT = 1, $ITOP = 1, $IRIGHT = 1, $IBOTTOM = 1)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If $NALIGN < 0 Or $NALIGN > 4 Then $NALIGN = 0

Local $TBUTTON_IMAGELIST = DllStructCreate($TAGBUTTON_IMAGELIST)

DllStructSetData($TBUTTON_IMAGELIST, "ImageList", $HIMAGE)

DllStructSetData($TBUTTON_IMAGELIST, "Left", $ILEFT)

DllStructSetData($TBUTTON_IMAGELIST, "Top", $ITOP)

DllStructSetData($TBUTTON_IMAGELIST, "Right", $IRIGHT)

DllStructSetData($TBUTTON_IMAGELIST, "Bottom", $IBOTTOM)

DllStructSetData($TBUTTON_IMAGELIST, "Align", $NALIGN)

Local $FENABLED = _GUICTRLBUTTON_ENABLE($HWND, False)

Local $IRET = _SENDMESSAGE($HWND, $BCM_SETIMAGELIST, 0, DllStructGetPtr($TBUTTON_IMAGELIST)) <> 0

_GUICTRLBUTTON_ENABLE($HWND)

If Not $FENABLED Then _GUICTRLBUTTON_ENABLE($HWND, False)

Return $IRET

EndFunc

 

 

Func _GUICTRLBUTTON_SETNOTE($HWND, $SNOTE)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TNOTE = _WINAPI_MULTIBYTETOWIDECHAR($SNOTE)

Return _SENDMESSAGE($HWND, $BCM_SETNOTE, 0, DllStructGetPtr($TNOTE)) <> 0

EndFunc

 

 

Func _GUICTRLBUTTON_SETSHIELD($HWND, $FREQUIRED = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Return _SENDMESSAGE($HWND, $BCM_SETSHIELD, 0, $FREQUIRED) = 1

EndFunc

 

 

Func _GUICTRLBUTTON_SETSIZE($HWND, $IWIDTH, $IHEIGHT)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If Not _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return SetError(-1, -1, False)

Local $HPARENT = _WINAPI_GETPARENT($HWND)

If Not $HPARENT Then Return SetError(-1, -1, False)

Local $APOS = WinGetPos($HWND)

If Not IsArray($APOS) Then Return SetError(-1, -1, False)

Local $TPOINT = DllStructCreate($TAGPOINT)

DllStructSetData($TPOINT, "X", $APOS[0])

DllStructSetData($TPOINT, "Y", $APOS[1])

If Not _WINAPI_SCREENTOCLIENT($HPARENT, $TPOINT) Then Return SetError(-1, -1, False)

Local $IRET = WinMove($HWND, "", DllStructGetData($TPOINT, "X"), DllStructGetData($TPOINT, "Y"), $IWIDTH, $IHEIGHT)

Return SetError($IRET - 1, $IRET - 1, $IRET <> 0)

EndFunc

 

 

Func _GUICTRLBUTTON_SETSPLITINFO($HWND, $HIMLGLYPH = -1, $ISPLITSTYLE = $BCSS_ALIGNLEFT, $IWIDTH = 0, $IHEIGHT = 0)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TSPLITINFO = DllStructCreate($TAGBUTTON_SPLITINFO), $IMASK = 0

If $HIMLGLYPH <> -1 Then

$IMASK = BitOR($IMASK, $BCSIF_GLYPH)

DllStructSetData($TSPLITINFO, "himlGlyph", $HIMLGLYPH)

EndIf

$IMASK = BitOR($IMASK, $BCSIF_STYLE)

If BitAND($ISPLITSTYLE, $BCSS_IMAGE) = $BCSS_IMAGE Then $IMASK = BitOR($IMASK, $BCSIF_IMAGE)

DllStructSetData($TSPLITINFO, "uSplitStyle", $ISPLITSTYLE)

If $IWIDTH > 0 Or $IHEIGHT > 0 Then

$IMASK = BitOR($IMASK, $BCSIF_SIZE)

DllStructSetData($TSPLITINFO, "X", $IWIDTH)

DllStructSetData($TSPLITINFO, "Y", $IHEIGHT)

EndIf

DllStructSetData($TSPLITINFO, "mask", $IMASK)

Return _SENDMESSAGE($HWND, $BCM_SETSPLITINFO, 0, DllStructGetPtr($TSPLITINFO)) <> 0

EndFunc

 

 

Func _GUICTRLBUTTON_SETSTATE($HWND, $FHIGHLIGHTED = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $BM_SETSTATE, $FHIGHLIGHTED)

EndFunc

 

 

Func _GUICTRLBUTTON_SETSTYLE($HWND, $ISTYLE)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

_SENDMESSAGE($HWND, $BM_SETSTYLE, $ISTYLE, True)

_WINAPI_UPDATEWINDOW($HWND)

EndFunc

 

 

Func _GUICTRLBUTTON_SETTEXT($HWND, $STEXT)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then Return _WINAPI_SETWINDOWTEXT($HWND, $STEXT)

EndFunc

 

 

Func _GUICTRLBUTTON_SETTEXTMARGIN($HWND, $ILEFT = 1, $ITOP = 1, $IRIGHT = 1, $IBOTTOM = 1)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

Local $TRECT = DllStructCreate($TAGRECT)

DllStructSetData($TRECT, "Left", $ILEFT)

DllStructSetData($TRECT, "Top", $ITOP)

DllStructSetData($TRECT, "Right", $IRIGHT)

DllStructSetData($TRECT, "Bottom", $IBOTTOM)

Return _SENDMESSAGE($HWND, $BCM_SETTEXTMARGIN, 0, DllStructGetPtr($TRECT)) <> 0

EndFunc

 

 

Func _GUICTRLBUTTON_SHOW($HWND, $FSHOW = True)

If $DEBUG_BTN Then __UDF_VALIDATECLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME)

If Not IsHWnd($HWND) Then $HWND = GUICtrlGetHandle($HWND)

If _WINAPI_ISCLASSNAME($HWND, $__BUTTONCONSTANT_CLASSNAME) Then

If $FSHOW Then

Return _WINAPI_SHOWWINDOW($HWND, @SW_SHOW)

Else

Return _WINAPI_SHOWWINDOW($HWND, @SW_HIDE)

EndIf

EndIf

EndFunc

 

Global Const $TBIF_IMAGE = 1

Global Const $TBIF_TEXT = 2

Global Const $TBIF_STATE = 4

Global Const $TBIF_STYLE = 8

Global Const $TBIF_LPARAM = 16

Global Const $TBIF_COMMAND = 32

Global Const $TBIF_SIZE = 64

Global Const $TBIF_BYINDEX = -2147483648

Global Const $TBMF_PAD = 1

Global Const $TBMF_BARPAD = 2

Global Const $TBMF_BUTTONSPACING = 4

Global Const $TBSTATE_CHECKED = 1

Global Const $TBSTATE_PRESSED = 2

Global Const $TBSTATE_ENABLED = 4

Global Const $TBSTATE_HIDDEN = 8

Global Const $TBSTATE_INDETERMINATE = 16

Global Const $TBSTATE_WRAP = 32

Global Const $TBSTATE_ELLIPSES = 64

Global Const $TBSTATE_MARKED = 128

Global Const $__TOOLBARCONSTANTS_WM_USER = 1024

Global Const $TB_ENABLEBUTTON = $__TOOLBARCONSTANTS_WM_USER + 1

Global Const $TB_CHECKBUTTON = $__TOOLBARCONSTANTS_WM_USER + 2

Global Const $TB_PRESSBUTTON = $__TOOLBARCONSTANTS_WM_USER + 3

Global Const $TB_HIDEBUTTON = $__TOOLBARCONSTANTS_WM_USER + 4

Global Const $TB_INDETERMINATE = $__TOOLBARCONSTANTS_WM_USER + 5

Global Const $TB_MARKBUTTON = $__TOOLBARCONSTANTS_WM_USER + 6

Global Const $TB_ISBUTTONENABLED = $__TOOLBARCONSTANTS_WM_USER + 9

Global Const $TB_ISBUTTONCHECKED = $__TOOLBARCONSTANTS_WM_USER + 10

Global Const $TB_ISBUTTONPRESSED = $__TOOLBARCONSTANTS_WM_USER + 11

Global Const $TB_ISBUTTONHIDDEN = $__TOOLBARCONSTANTS_WM_USER + 12

Global Const $TB_ISBUTTONINDETERMINATE = $__TOOLBARCONSTANTS_WM_USER + 13

Global Const $TB_ISBUTTONHIGHLIGHTED = $__TOOLBARCONSTANTS_WM_USER + 14

Global Const $TB_SETSTATE = $__TOOLBARCONSTANTS_WM_USER + 17

Global Const $TB_GETSTATE = $__TOOLBARCONSTANTS_WM_USER + 18

Global Const $TB_ADDBITMAP = $__TOOLBARCONSTANTS_WM_USER + 19

Global Const $TB_ADDBUTTONSA = $__TOOLBARCONSTANTS_WM_USER + 20

Global Const $TB_INSERTBUTTONA = $__TOOLBARCONSTANTS_WM_USER + 21

Global Const $TB_DELETEBUTTON = $__TOOLBARCONSTANTS_WM_USER + 22

Global Const $TB_GETBUTTON = $__TOOLBARCONSTANTS_WM_USER + 23

Global Const $TB_BUTTONCOUNT = $__TOOLBARCONSTANTS_WM_USER + 24

Global Const $TB_COMMANDTOINDEX = $__TOOLBARCONSTANTS_WM_USER + 25

Global Const $TB_SAVERESTOREA = $__TOOLBARCONSTANTS_WM_USER + 26

Global Const $TB_SAVERESTOREW = $__TOOLBARCONSTANTS_WM_USER + 76

Global Const $TB_CUSTOMIZE = $__TOOLBARCONSTANTS_WM_USER + 27

Global Const $TB_ADDSTRINGA = $__TOOLBARCONSTANTS_WM_USER + 28

Global Const $TB_ADDSTRINGW = $__TOOLBARCONSTANTS_WM_USER + 77

Global Const $TB_GETITEMRECT = $__TOOLBARCONSTANTS_WM_USER + 29

Global Const $TB_BUTTONSTRUCTSIZE = $__TOOLBARCONSTANTS_WM_USER + 30

Global Const $TB_SETBUTTONSIZE = $__TOOLBARCONSTANTS_WM_USER + 31

Global Const $TB_SETBITMAPSIZE = $__TOOLBARCONSTANTS_WM_USER + 32

Global Const $TB_AUTOSIZE = $__TOOLBARCONSTANTS_WM_USER + 33

Global Const $TB_GETTOOLTIPS = $__TOOLBARCONSTANTS_WM_USER + 35

Global Const $TB_SETTOOLTIPS = $__TOOLBARCONSTANTS_WM_USER + 36

Global Const $TB_SETPARENT = $__TOOLBARCONSTANTS_WM_USER + 37

Global Const $TB_SETROWS = $__TOOLBARCONSTANTS_WM_USER + 39

Global Const $TB_GETROWS = $__TOOLBARCONSTANTS_WM_USER + 40

Global Const $TB_GETBITMAPFLAGS = $__TOOLBARCONSTANTS_WM_USER + 41

Global Const $TB_SETCMDID = $__TOOLBARCONSTANTS_WM_USER + 42

Global Const $TB_CHANGEBITMAP = $__TOOLBARCONSTANTS_WM_USER + 43

Global Const $TB_GETBITMAP = $__TOOLBARCONSTANTS_WM_USER + 44

Global Const $TB_GETBUTTONTEXTA = $__TOOLBARCONSTANTS_WM_USER + 45

Global Const $TB_GETBUTTONTEXTW = $__TOOLBARCONSTANTS_WM_USER + 75

Global Const $TB_REPLACEBITMAP = $__TOOLBARCONSTANTS_WM_USER + 46

Global Const $TB_SETINDENT = $__TOOLBARCONSTANTS_WM_USER + 47

Global Const $TB_SETIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 48

Global Const $TB_GETIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 49

Global Const $TB_LOADIMAGES = $__TOOLBARCONSTANTS_WM_USER + 50

Global Const $TB_GETRECT = $__TOOLBARCONSTANTS_WM_USER + 51

Global Const $TB_SETHOTIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 52

Global Const $TB_GETHOTIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 53

Global Const $TB_SETDISABLEDIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 54

Global Const $TB_GETDISABLEDIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 55

Global Const $TB_SETSTYLE = $__TOOLBARCONSTANTS_WM_USER + 56

Global Const $TB_GETSTYLE = $__TOOLBARCONSTANTS_WM_USER + 57

Global Const $TB_GETBUTTONSIZE = $__TOOLBARCONSTANTS_WM_USER + 58

Global Const $TB_SETBUTTONWIDTH = $__TOOLBARCONSTANTS_WM_USER + 59

Global Const $TB_SETMAXTEXTROWS = $__TOOLBARCONSTANTS_WM_USER + 60

Global Const $TB_GETTEXTROWS = $__TOOLBARCONSTANTS_WM_USER + 61

Global Const $TB_GETOBJECT = $__TOOLBARCONSTANTS_WM_USER + 62

Global Const $TB_GETBUTTONINFOW = $__TOOLBARCONSTANTS_WM_USER + 63

Global Const $TB_SETBUTTONINFOW = $__TOOLBARCONSTANTS_WM_USER + 64

Global Const $TB_GETBUTTONINFOA = $__TOOLBARCONSTANTS_WM_USER + 65

Global Const $TB_SETBUTTONINFOA = $__TOOLBARCONSTANTS_WM_USER + 66

Global Const $TB_INSERTBUTTONW = $__TOOLBARCONSTANTS_WM_USER + 67

Global Const $TB_ADDBUTTONSW = $__TOOLBARCONSTANTS_WM_USER + 68

Global Const $TB_HITTEST = $__TOOLBARCONSTANTS_WM_USER + 69

Global Const $TB_SETDRAWTEXTFLAGS = $__TOOLBARCONSTANTS_WM_USER + 70

Global Const $TB_GETHOTITEM = $__TOOLBARCONSTANTS_WM_USER + 71

Global Const $TB_SETHOTITEM = $__TOOLBARCONSTANTS_WM_USER + 72

Global Const $TB_SETANCHORHIGHLIGHT = $__TOOLBARCONSTANTS_WM_USER + 73

Global Const $TB_GETANCHORHIGHLIGHT = $__TOOLBARCONSTANTS_WM_USER + 74

Global Const $TB_MAPACCELERATOR = $__TOOLBARCONSTANTS_WM_USER + 78

Global Const $TB_GETINSERTMARK = $__TOOLBARCONSTANTS_WM_USER + 79

Global Const $TB_SETINSERTMARK = $__TOOLBARCONSTANTS_WM_USER + 80

Global Const $TB_INSERTMARKHITTEST = $__TOOLBARCONSTANTS_WM_USER + 81

Global Const $TB_MOVEBUTTON = $__TOOLBARCONSTANTS_WM_USER + 82

Global Const $TB_GETMAXSIZE = $__TOOLBARCONSTANTS_WM_USER + 83

Global Const $TB_SETEXTENDEDSTYLE = $__TOOLBARCONSTANTS_WM_USER + 84

Global Const $TB_GETEXTENDEDSTYLE = $__TOOLBARCONSTANTS_WM_USER + 85

Global Const $TB_GETPADDING = $__TOOLBARCONSTANTS_WM_USER + 86

Global Const $TB_SETPADDING = $__TOOLBARCONSTANTS_WM_USER + 87

Global Const $TB_SETINSERTMARKCOLOR = $__TOOLBARCONSTANTS_WM_USER + 88

Global Const $TB_GETINSERTMARKCOLOR = $__TOOLBARCONSTANTS_WM_USER + 89

Global Const $TB_MAPACCELERATORW = $__TOOLBARCONSTANTS_WM_USER + 90

Global Const $TB_GETSTRINGW = $__TOOLBARCONSTANTS_WM_USER + 91

Global Const $TB_GETSTRINGA = $__TOOLBARCONSTANTS_WM_USER + 92

Global Const $TB_GETMETRICS = $__TOOLBARCONSTANTS_WM_USER + 101

Global Const $TB_SETMETRICS = $__TOOLBARCONSTANTS_WM_USER + 102

Global Const $TB_GETCOLORSCHEME = 8192 + 3

Global Const $TB_SETCOLORSCHEME = 8192 + 2

Global Const $TB_SETUNICODEFORMAT = 8192 + 5

Global Const $TB_GETUNICODEFORMAT = 8192 + 6

Global Const $TB_SETWINDOWTHEME = 8192 + 11

Global Const $TBN_FIRST = -700

Global Const $TBN_GETBUTTONINFOA = $TBN_FIRST - 0

Global Const $TBN_BEGINDRAG = $TBN_FIRST - 1

Global Const $TBN_ENDDRAG = $TBN_FIRST - 2

Global Const $TBN_BEGINADJUST = $TBN_FIRST - 3

Global Const $TBN_ENDADJUST = $TBN_FIRST - 4

Global Const $TBN_RESET = $TBN_FIRST - 5

Global Const $TBN_QUERYINSERT = $TBN_FIRST - 6

Global Const $TBN_QUERYDELETE = $TBN_FIRST - 7

Global Const $TBN_TOOLBARCHANGE = $TBN_FIRST - 8

Global Const $TBN_CUSTHELP = $TBN_FIRST - 9

Global Const $TBN_DROPDOWN = $TBN_FIRST - 10

Global Const $TBN_GETOBJECT = $TBN_FIRST - 12

Global Const $TBN_HOTITEMCHANGE = $TBN_FIRST - 13

Global Const $TBN_DRAGOUT = $TBN_FIRST - 14

Global Const $TBN_DELETINGBUTTON = $TBN_FIRST - 15

Global Const $TBN_GETDISPINFOA = $TBN_FIRST - 16

Global Const $TBN_GETDISPINFOW = $TBN_FIRST - 17

Global Const $TBN_GETINFOTIPA = $TBN_FIRST - 18

Global Const $TBN_GETINFOTIPW = $TBN_FIRST - 19

Global Const $TBN_GETBUTTONINFOW = $TBN_FIRST - 20

Global Const $TBN_RESTORE = $TBN_FIRST - 21

Global Const $TBN_SAVE = $TBN_FIRST - 22

Global Const $TBN_INITCUSTOMIZE = $TBN_FIRST - 23

Global Const $HICF_ACCELERATOR = 4

Global Const $HICF_ARROWKEYS = 2

Global Const $HICF_DUPACCEL = 8

Global Const $HICF_ENTERING = 16

Global Const $HICF_LEAVING = 32

Global Const $HICF_LMOUSE = 128

Global Const $HICF_MOUSE = 1

Global Const $HICF_OTHER = 0

Global Const $HICF_RESELECT = 64

Global Const $HICF_TOGGLEDROPDOWN = 256

Global Const $BTNS_BUTTON = 0

Global Const $BTNS_SEP = 1

Global Const $BTNS_CHECK = 2

Global Const $BTNS_GROUP = 4

Global Const $BTNS_CHECKGROUP = 6

Global Const $BTNS_DROPDOWN = 8

Global Const $BTNS_AUTOSIZE = 16

Global Const $BTNS_NOPREFIX = 32

Global Const $BTNS_SHOWTEXT = 64

Global Const $BTNS_WHOLEDROPDOWN = 128

Global Const $TBSTYLE_TOOLTIPS = 256

Global Const $TBSTYLE_WRAPABLE = 512

Global Const $TBSTYLE_ALTDRAG = 1024

Global Const $TBSTYLE_FLAT = 2048

Global Const $TBSTYLE_LIST = 4096

Global Const $TBSTYLE_CUSTOMERASE = 8192

Global Const $TBSTYLE_REGISTERDROP = 16384

Global Const $TBSTYLE_TRANSPARENT = 32768

Global Const $TBSTYLE_EX_DRAWDDARROWS = 1

Global Const $TBSTYLE_EX_MIXEDBUTTONS = 8

Global Const $TBSTYLE_EX_HIDECLIPPEDBUTTONS = 16

Global Const $TBSTYLE_EX_DOUBLEBUFFER = 128

Global $GH_TBLASTWND

Global $DEBUG_TB = False

Global Const $__TOOLBARCONSTANT_CLASSNAME = "ToolbarWindow32"

Global Const $__TOOLBARCONSTANT_WS_CLIPSIBLINGS = 67108864

Global Const $__TOOLBARCONSTANT_LR_LOADFROMFILE = 16

Global Const $__TOOLBARCONSTANT_HINST_COMMCTRL = -1

Global Const $TAGTBADDBITMAP = "handle hInst;uint_ptr ID"

Global Const $TAGTBINSERTMARK = "int Button;dword Flags"

Global Const $TAGTBMETRICS = "uint Size;dword Mask;int XPad;int YPad;int XBarPad;int YBarPad;int XSpacing;int YSpacing"

 

Func _GUICTRLTOOLBAR_ADDBITMAP($HWND, $IBUTTONS, $HINST, $IID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TBITMAP = DllStructCreate($TAGTBADDBITMAP)

Local $PBITMAP = DllStructGetPtr($TBITMAP)

DllStructSetData($TBITMAP, "hInst", $HINST)

DllStructSetData($TBITMAP, "ID", $IID)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_ADDBITMAP, $IBUTTONS, $PBITMAP, 0, "wparam", "ptr")

Else

Local $IBITMAP = DllStructGetSize($TBITMAP)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBITMAP, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBITMAP, $PMEMORY, $IBITMAP)

$IRET = _SENDMESSAGE($HWND, $TB_ADDBITMAP, $IBUTTONS, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

Return $IRET

EndFunc

 

 

Func _GUICTRLTOOLBAR_ADDBUTTON($HWND, $IID, $IIMAGE, $ISTRING = 0, $ISTYLE = 0, $ISTATE = 4, $IPARAM = 0)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $TBUTTON = DllStructCreate($TAGTBBUTTON)

Local $PBUTTON = DllStructGetPtr($TBUTTON)

DllStructSetData($TBUTTON, "Bitmap", $IIMAGE)

DllStructSetData($TBUTTON, "Command", $IID)

DllStructSetData($TBUTTON, "State", $ISTATE)

DllStructSetData($TBUTTON, "Style", $ISTYLE)

DllStructSetData($TBUTTON, "Param", $IPARAM)

DllStructSetData($TBUTTON, "String", $ISTRING)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_ADDBUTTONSW, 1, $PBUTTON, 0, "wparam", "ptr")

Else

Local $IBUTTON = DllStructGetSize($TBUTTON)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUTTON, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUTTON, $PMEMORY, $IBUTTON)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_ADDBUTTONSW, 1, $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_ADDBUTTONSA, 1, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMFREE($TMEMMAP)

EndIf

__GUICTRLTOOLBAR_AUTOSIZE($HWND)

Return $IRET <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ADDBUTTONSEP($HWND, $IWIDTH = 6)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

_GUICTRLTOOLBAR_ADDBUTTON($HWND, 0, $IWIDTH, 0, $BTNS_SEP)

EndFunc

 

 

Func _GUICTRLTOOLBAR_ADDSTRING($HWND, $SSTRING)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER = StringLen($SSTRING) + 2

Local $TBUFFER

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TBUFFER = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TBUFFER)

DllStructSetData($TBUFFER, "Text", $SSTRING)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_ADDSTRINGW, 0, $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUFFER, $PMEMORY, $IBUFFER)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_ADDSTRINGW, 0, $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_ADDSTRINGA, 0, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMFREE($TMEMMAP)

EndIf

Return $IRET

EndFunc

 

 

Func __GUICTRLTOOLBAR_AUTOSIZE($HWND)

_SENDMESSAGE($HWND, $TB_AUTOSIZE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_BUTTONCOUNT($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_BUTTONCOUNT)

EndFunc

 

 

Func __GUICTRLTOOLBAR_BUTTONSTRUCTSIZE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TBUTTON = DllStructCreate($TAGTBBUTTON)

_SENDMESSAGE($HWND, $TB_BUTTONSTRUCTSIZE, DllStructGetSize($TBUTTON), 0, 0, "wparam", "ptr")

EndFunc

 

 

Func _GUICTRLTOOLBAR_CHECKBUTTON($HWND, $ICOMMANDID, $FCHECK = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_CHECKBUTTON, $ICOMMANDID, $FCHECK) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_CLICKACCEL($HWND, $CACCEL, $SBUTTON = "left", $FMOVE = False, $ICLICKS = 1, $ISPEED = 1)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $IID = _GUICTRLTOOLBAR_MAPACCELERATOR($HWND, $CACCEL)

_GUICTRLTOOLBAR_CLICKBUTTON($HWND, $IID, $SBUTTON, $FMOVE, $ICLICKS, $ISPEED)

EndFunc

 

 

Func _GUICTRLTOOLBAR_CLICKBUTTON($HWND, $ICOMMANDID, $SBUTTON = "left", $FMOVE = False, $ICLICKS = 1, $ISPEED = 1)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TRECT = _GUICTRLTOOLBAR_GETBUTTONRECTEX($HWND, $ICOMMANDID)

Local $TPOINT = _WINAPI_POINTFROMRECT($TRECT)

$TPOINT = _WINAPI_CLIENTTOSCREEN($HWND, $TPOINT)

Local $IX, $IY

_WINAPI_GETXYFROMPOINT($TPOINT, $IX, $IY)

Local $IMODE = Opt("MouseCoordMode", 1)

If Not $FMOVE Then

Local $APOS = MouseGetPos()

_WINAPI_SHOWCURSOR(False)

MouseClick($SBUTTON, $IX, $IY, $ICLICKS, $ISPEED)

MouseMove($APOS[0], $APOS[1], 0)

_WINAPI_SHOWCURSOR(True)

Else

MouseClick($SBUTTON, $IX, $IY, $ICLICKS, $ISPEED)

EndIf

Opt("MouseCoordMode", $IMODE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_CLICKINDEX($HWND, $IINDEX, $SBUTTON = "left", $FMOVE = False, $ICLICKS = 1, $ISPEED = 1)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $ICOMMANDID = _GUICTRLTOOLBAR_INDEXTOCOMMAND($HWND, $IINDEX)

_GUICTRLTOOLBAR_CLICKBUTTON($HWND, $ICOMMANDID, $SBUTTON, $FMOVE, $ICLICKS, $ISPEED)

EndFunc

 

 

Func _GUICTRLTOOLBAR_COMMANDTOINDEX($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_COMMANDTOINDEX, $ICOMMANDID)

EndFunc

 

 

Func _GUICTRLTOOLBAR_CREATE($HWND, $ISTYLE = 2048, $IEXSTYLE = 0)

$ISTYLE = BitOR($ISTYLE, $__UDFGUICONSTANT_WS_CHILD, $__TOOLBARCONSTANT_WS_CLIPSIBLINGS, $__UDFGUICONSTANT_WS_VISIBLE)

Local $NCTRLID = __UDF_GETNEXTGLOBALID($HWND)

If @error Then Return SetError(@error, @extended, 0)

Local $HTOOL = _WINAPI_CREATEWINDOWEX($IEXSTYLE, $__TOOLBARCONSTANT_CLASSNAME, "", $ISTYLE, 0, 0, 0, 0, $HWND, $NCTRLID)

__GUICTRLTOOLBAR_BUTTONSTRUCTSIZE($HTOOL)

Return $HTOOL

EndFunc

 

 

Func _GUICTRLTOOLBAR_CUSTOMIZE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_CUSTOMIZE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_DELETEBUTTON($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $IINDEX = _GUICTRLTOOLBAR_COMMANDTOINDEX($HWND, $ICOMMANDID)

If $IINDEX = -1 Then Return SetError(-1, 0, False)

Return _SENDMESSAGE($HWND, $TB_DELETEBUTTON, $IINDEX) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_DESTROY(ByRef $HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

If Not _WINAPI_ISCLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME) Then Return SetError(2, 2, False)

Local $DESTROYED = 0

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) 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

If $DESTROYED Then $HWND = 0

Return $DESTROYED <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ENABLEBUTTON($HWND, $ICOMMANDID, $FENABLE = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ENABLEBUTTON, $ICOMMANDID, $FENABLE) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_FINDTOOLBAR($HWND, $STEXT)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $ICOMMANDID, $HTOOLBAR

If Not _WINAPI_ISWINDOW($HWND) Then

$HWND = WinGetHandle($HWND)

If @error Then Return SetError(-1, -1, 0)

EndIf

Local $AWINLIST = _WINAPI_ENUMWINDOWS(True, $HWND)

For $II = 1 To $AWINLIST[0][0]

If $AWINLIST[$II][1] = $__TOOLBARCONSTANT_CLASSNAME Then

$HTOOLBAR = $AWINLIST[$II][0]

For $IJ = 0 To _GUICTRLTOOLBAR_BUTTONCOUNT($HTOOLBAR) - 1

$ICOMMANDID = _GUICTRLTOOLBAR_INDEXTOCOMMAND($HTOOLBAR, $IJ)

If _GUICTRLTOOLBAR_GETBUTTONTEXT($HTOOLBAR, $ICOMMANDID) = $STEXT Then Return $HTOOLBAR

Next

EndIf

Next

Return SetError(-2, -2, 0)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETANCHORHIGHLIGHT($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETANCHORHIGHLIGHT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBITMAPFLAGS($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETBITMAPFLAGS)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONBITMAP($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETBITMAP, $ICOMMANDID)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONINFO($HWND, $ICOMMANDID)

Local $ABUTTON[5]

Local $TBUTTON = _GUICTRLTOOLBAR_GETBUTTONINFOEX($HWND, $ICOMMANDID)

$ABUTTON[0] = DllStructGetData($TBUTTON, "Image")

$ABUTTON[1] = DllStructGetData($TBUTTON, "State")

$ABUTTON[2] = DllStructGetData($TBUTTON, "Style")

$ABUTTON[3] = DllStructGetData($TBUTTON, "CX")

$ABUTTON[4] = DllStructGetData($TBUTTON, "Param")

Return $ABUTTON

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONINFOEX($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $TBUTTON = DllStructCreate($TAGTBBUTTONINFO)

Local $PBUTTON = DllStructGetPtr($TBUTTON)

Local $IBUTTON = DllStructGetSize($TBUTTON)

Local $IMASK = BitOR($TBIF_IMAGE, $TBIF_STATE, $TBIF_STYLE, $TBIF_LPARAM, $TBIF_SIZE)

DllStructSetData($TBUTTON, "Size", $IBUTTON)

DllStructSetData($TBUTTON, "Mask", $IMASK)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONINFOW, $ICOMMANDID, $PBUTTON, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUTTON, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUTTON, $PMEMORY, $IBUTTON)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONINFOW, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONINFOA, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMREAD($TMEMMAP, $PMEMORY, $PBUTTON, $IBUTTON)

_MEMFREE($TMEMMAP)

EndIf

Return SetError($IRET = -1, 0, $TBUTTON)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONPARAM($HWND, $ICOMMANDID)

Local $TBUTTON = _GUICTRLTOOLBAR_GETBUTTONINFOEX($HWND, $ICOMMANDID)

Return DllStructGetData($TBUTTON, "Param")

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONRECT($HWND, $ICOMMANDID)

Local $ARECT[4]

Local $TRECT = _GUICTRLTOOLBAR_GETBUTTONRECTEX($HWND, $ICOMMANDID)

$ARECT[0] = DllStructGetData($TRECT, "Left")

$ARECT[1] = DllStructGetData($TRECT, "Top")

$ARECT[2] = DllStructGetData($TRECT, "Right")

$ARECT[3] = DllStructGetData($TRECT, "Bottom")

Return $ARECT

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONRECTEX($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TRECT = DllStructCreate($TAGRECT)

Local $PRECT = DllStructGetPtr($TRECT)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_GETRECT, $ICOMMANDID, $PRECT, 0, "wparam", "ptr")

Else

Local $IRECT = DllStructGetSize($TRECT)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IRECT, $TMEMMAP)

_SENDMESSAGE($HWND, $TB_GETRECT, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PRECT, $IRECT)

_MEMFREE($TMEMMAP)

EndIf

Return $TRECT

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONSIZE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $ASIZE[2]

Local $IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONSIZE)

$ASIZE[0] = _WINAPI_HIWORD($IRET)

$ASIZE[1] = _WINAPI_LOWORD($IRET)

Return $ASIZE

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONSTATE($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETSTATE, $ICOMMANDID)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONSTYLE($HWND, $ICOMMANDID)

Local $TBUTTON = _GUICTRLTOOLBAR_GETBUTTONINFOEX($HWND, $ICOMMANDID)

Return DllStructGetData($TBUTTON, "Style")

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETBUTTONTEXT($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER

If $FUNICODE Then

$IBUFFER = _SENDMESSAGE($HWND, $TB_GETBUTTONTEXTW, $ICOMMANDID)

Else

$IBUFFER = _SENDMESSAGE($HWND, $TB_GETBUTTONTEXTA, $ICOMMANDID)

EndIf

If $IBUFFER = 0 Then Return SetError(True, 0, "")

If $IBUFFER = 1 Then Return SetError(False, 0, "")

If $IBUFFER <= -1 Then Return SetError(False, -1, "")

$IBUFFER += 1

Local $TBUFFER

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TBUFFER = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TBUFFER)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONTEXTW, $ICOMMANDID, $PBUFFER, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONTEXTW, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_GETBUTTONTEXTA, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMREAD($TMEMMAP, $PMEMORY, $PBUFFER, $IBUFFER)

_MEMFREE($TMEMMAP)

EndIf

Return SetError($IRET > 0, 0, DllStructGetData($TBUFFER, "Text"))

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETCOLORSCHEME($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $ACOLOR[2], $IRET

Local $TCOLOR = DllStructCreate($TAGCOLORSCHEME)

Local $ICOLOR = DllStructGetSize($TCOLOR)

Local $PCOLOR = DllStructGetPtr($TCOLOR)

DllStructSetData($TCOLOR, "Size", $ICOLOR)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETCOLORSCHEME, 0, $PCOLOR, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ICOLOR, $TMEMMAP)

$IRET = _SENDMESSAGE($HWND, $TB_GETCOLORSCHEME, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PCOLOR, $ICOLOR)

_MEMFREE($TMEMMAP)

EndIf

$ACOLOR[0] = DllStructGetData($TCOLOR, "BtnHighlight")

$ACOLOR[1] = DllStructGetData($TCOLOR, "BtnShadow")

Return SetError($IRET = 0, 0, $ACOLOR)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETDISABLEDIMAGELIST($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETDISABLEDIMAGELIST)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETEXTENDEDSTYLE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETEXTENDEDSTYLE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETHOTIMAGELIST($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETHOTIMAGELIST)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETHOTITEM($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETHOTITEM)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETIMAGELIST($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETIMAGELIST)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETINSERTMARK($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $AMARK[2], $IRET

Local $TMARK = DllStructCreate($TAGTBINSERTMARK)

Local $PMARK = DllStructGetPtr($TMARK)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETINSERTMARK, 0, $PMARK, 0, "wparam", "ptr")

Else

Local $IMARK = DllStructGetSize($TMARK)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IMARK, $TMEMMAP)

$IRET = _SENDMESSAGE($HWND, $TB_GETINSERTMARK, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PMARK, $IMARK)

_MEMFREE($TMEMMAP)

EndIf

$AMARK[0] = DllStructGetData($TMARK, "Button")

$AMARK[1] = DllStructGetData($TMARK, "Flags")

Return SetError($IRET <> 0, 0, $AMARK)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETINSERTMARKCOLOR($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETINSERTMARKCOLOR)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETMAXSIZE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $ASIZE[2], $IRET

Local $TSIZE = DllStructCreate($TAGSIZE)

Local $PSIZE = DllStructGetPtr($TSIZE)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETMAXSIZE, 0, $PSIZE, 0, "wparam", "ptr")

Else

Local $ISIZE = DllStructGetSize($TSIZE)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ISIZE, $TMEMMAP)

$IRET = _SENDMESSAGE($HWND, $TB_GETMAXSIZE, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PSIZE, $ISIZE)

_MEMFREE($TMEMMAP)

EndIf

$ASIZE[0] = DllStructGetData($TSIZE, "X")

$ASIZE[1] = DllStructGetData($TSIZE, "Y")

Return SetError($IRET = 0, 0, $ASIZE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETMETRICS($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $AMETRICS[4]

Local $TMETRICS = DllStructCreate($TAGTBMETRICS)

Local $IMETRICS = DllStructGetSize($TMETRICS)

Local $PMETRICS = DllStructGetPtr($TMETRICS)

Local $IMASK = BitOR($TBMF_PAD, $TBMF_BUTTONSPACING)

DllStructSetData($TMETRICS, "Size", $IMETRICS)

DllStructSetData($TMETRICS, "Mask", $IMASK)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_GETMETRICS, 0, $PMETRICS, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IMETRICS, $TMEMMAP)

_SENDMESSAGE($HWND, $TB_GETMETRICS, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PMETRICS, $IMETRICS)

_MEMFREE($TMEMMAP)

EndIf

$AMETRICS[0] = DllStructGetData($TMETRICS, "XPad")

$AMETRICS[1] = DllStructGetData($TMETRICS, "YPad")

$AMETRICS[2] = DllStructGetData($TMETRICS, "XSpacing")

$AMETRICS[3] = DllStructGetData($TMETRICS, "YSpacing")

Return $AMETRICS

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETPADDING($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $APAD[2]

Local $IPAD = _SENDMESSAGE($HWND, $TB_GETPADDING)

$APAD[0] = _WINAPI_LOWORD($IPAD)

$APAD[1] = _WINAPI_HIWORD($IPAD)

Return $APAD

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETROWS($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETROWS)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTRING($HWND, $IINDEX)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $IBUFFER

If $FUNICODE Then

$IBUFFER = _SENDMESSAGE($HWND, $TB_GETSTRINGW, _WINAPI_MAKELONG(0, $IINDEX), 0, 0, "long") + 1

Else

$IBUFFER = _SENDMESSAGE($HWND, $TB_GETSTRINGA, _WINAPI_MAKELONG(0, $IINDEX), 0, 0, "long") + 1

EndIf

If $IBUFFER = 0 Then Return SetError(-1, 0, "")

If $IBUFFER = 1 Then Return ""

Local $TBUFFER

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TBUFFER = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

Local $PBUFFER = DllStructGetPtr($TBUFFER)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_GETSTRINGW, _WINAPI_MAKELONG($IBUFFER, $IINDEX), $PBUFFER, 0, "long", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUFFER, $TMEMMAP)

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_GETSTRINGW, _WINAPI_MAKELONG($IBUFFER, $IINDEX), $PMEMORY, 0, "long", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_GETSTRINGA, _WINAPI_MAKELONG($IBUFFER, $IINDEX), $PMEMORY, 0, "long", "ptr")

EndIf

_MEMREAD($TMEMMAP, $PMEMORY, $PBUFFER, $IBUFFER)

_MEMFREE($TMEMMAP)

EndIf

Return SetError($IRET = -1, 0, DllStructGetData($TBUFFER, "Text"))

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLE($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETSTYLE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLEALTDRAG($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_ALTDRAG) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLECUSTOMERASE($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_CUSTOMERASE) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLEFLAT($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_FLAT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLELIST($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_LIST) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLEREGISTERDROP($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_REGISTERDROP) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLETOOLTIPS($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_TOOLTIPS) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLETRANSPARENT($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_TRANSPARENT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETSTYLEWRAPABLE($HWND)

Return BitAND(_GUICTRLTOOLBAR_GETSTYLE($HWND), $TBSTYLE_WRAPABLE) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETTEXTROWS($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETTEXTROWS)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETTOOLTIPS($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETTOOLTIPS)

EndFunc

 

 

Func _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_GETUNICODEFORMAT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_HIDEBUTTON($HWND, $ICOMMANDID, $FHIDE = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_HIDEBUTTON, $ICOMMANDID, $FHIDE) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_HIGHLIGHTBUTTON($HWND, $ICOMMANDID, $FHIGHLIGHT = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_MARKBUTTON, $ICOMMANDID, $FHIGHLIGHT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_HITTEST($HWND, $IX, $IY)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TPOINT = DllStructCreate($TAGPOINT)

Local $PPOINT = DllStructGetPtr($TPOINT)

DllStructSetData($TPOINT, "X", $IX)

DllStructSetData($TPOINT, "Y", $IY)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_HITTEST, 0, $PPOINT, 0, "wparam", "ptr")

Else

Local $IPOINT = DllStructGetSize($TPOINT)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IPOINT, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PPOINT, $PMEMORY, $IPOINT)

$IRET = _SENDMESSAGE($HWND, $TB_HITTEST, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

Return $IRET

EndFunc

 

 

Func _GUICTRLTOOLBAR_INDEXTOCOMMAND($HWND, $IINDEX)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TBUTTON = DllStructCreate($TAGTBBUTTON)

Local $PBUTTON = DllStructGetPtr($TBUTTON)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_GETBUTTON, $IINDEX, $PBUTTON, 0, "wparam", "ptr")

Else

Local $IBUTTON = DllStructGetSize($TBUTTON)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUTTON, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PBUTTON, $PMEMORY, $IBUTTON)

_SENDMESSAGE($HWND, $TB_GETBUTTON, $IINDEX, $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PBUTTON, $IBUTTON)

_MEMFREE($TMEMMAP)

EndIf

Return DllStructGetData($TBUTTON, "Command")

EndFunc

 

 

Func _GUICTRLTOOLBAR_INSERTBUTTON($HWND, $IINDEX, $IID, $IIMAGE, $STEXT = "", $ISTYLE = 0, $ISTATE = 4, $IPARAM = 0)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $FUNICODE = _GUICTRLTOOLBAR_GETUNICODEFORMAT($HWND)

Local $PBUFFER, $TBUFFER, $IRET

Local $TBUTTON = DllStructCreate($TAGTBBUTTON)

Local $PBUTTON = DllStructGetPtr($TBUTTON)

Local $IBUFFER = StringLen($STEXT) + 1

If $IBUFFER > 1 Then

If $FUNICODE Then

$TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]")

$IBUFFER *= 2

Else

$TBUFFER = DllStructCreate("char Text[" & $IBUFFER & "]")

EndIf

$PBUFFER = DllStructGetPtr($TBUFFER)

DllStructSetData($TBUFFER, "Text", $STEXT)

DllStructSetData($TBUTTON, "String", $PBUFFER)

EndIf

DllStructSetData($TBUTTON, "Bitmap", $IIMAGE)

DllStructSetData($TBUTTON, "Command", $IID)

DllStructSetData($TBUTTON, "State", $ISTATE)

DllStructSetData($TBUTTON, "Style", $ISTYLE)

DllStructSetData($TBUTTON, "Param", $IPARAM)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_INSERTBUTTONW, $IINDEX, $PBUTTON, 0, "wparam", "ptr")

Else

Local $IBUTTON = DllStructGetSize($TBUTTON)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUTTON + $IBUFFER, $TMEMMAP)

Local $PTEXT = $PMEMORY + $IBUTTON

_MEMWRITE($TMEMMAP, $PBUTTON, $PMEMORY, $IBUTTON)

If $IBUFFER > 1 Then

DllStructSetData($TBUTTON, "String", $PTEXT)

_MEMWRITE($TMEMMAP, $PBUFFER, $PTEXT, $IBUFFER)

EndIf

If $FUNICODE Then

$IRET = _SENDMESSAGE($HWND, $TB_INSERTBUTTONW, $IINDEX, $PMEMORY, 0, "wparam", "ptr")

Else

$IRET = _SENDMESSAGE($HWND, $TB_INSERTBUTTONA, $IINDEX, $PMEMORY, 0, "wparam", "ptr")

EndIf

_MEMFREE($TMEMMAP)

EndIf

Return $IRET <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_INSERTMARKHITTEST($HWND, $IX, $IY)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $AMARK[2], $IRET

Local $TPOINT = DllStructCreate($TAGPOINT)

Local $PPOINT = DllStructGetPtr($TPOINT)

Local $TMARK = DllStructCreate($TAGTBINSERTMARK)

Local $PMARK = DllStructGetPtr($TMARK)

DllStructSetData($TPOINT, "X", $IX)

DllStructSetData($TPOINT, "Y", $IY)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_INSERTMARKHITTEST, $PPOINT, $PMARK, 0, "wparam", "ptr")

Else

Local $IPOINT = DllStructGetSize($TPOINT)

Local $IMARK = DllStructGetSize($TMARK)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IPOINT + $IMARK, $TMEMMAP)

Local $PMARKPTR = $PMEMORY + $IPOINT

_MEMWRITE($TMEMMAP, $PPOINT, $PMEMORY, $IPOINT)

$IRET = _SENDMESSAGE($HWND, $TB_INSERTMARKHITTEST, $PMEMORY, $PMARKPTR, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMARKPTR, $PMARK, $IMARK)

_MEMFREE($TMEMMAP)

EndIf

$AMARK[0] = DllStructGetData($TMARK, "Button")

$AMARK[1] = DllStructGetData($TMARK, "Flags")

Return SetError($IRET <> 0, 0, $AMARK)

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONCHECKED($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONCHECKED, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONENABLED($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONENABLED, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONHIDDEN($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONHIDDEN, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONHIGHLIGHTED($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONHIGHLIGHTED, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONINDETERMINATE($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONINDETERMINATE, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_ISBUTTONPRESSED($HWND, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_ISBUTTONPRESSED, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_LOADBITMAP($HWND, $SFILENAME)

Local $ASIZE = _GUICTRLTOOLBAR_GETBUTTONSIZE($HWND)

Local $HBITMAP = _WINAPI_LOADIMAGE(0, $SFILENAME, 0, $ASIZE[1], $ASIZE[0], $__TOOLBARCONSTANT_LR_LOADFROMFILE)

If $HBITMAP = 0 Then Return SetError(-1, -1, -1)

Return _GUICTRLTOOLBAR_ADDBITMAP($HWND, 1, 0, $HBITMAP)

EndFunc

 

 

Func _GUICTRLTOOLBAR_LOADIMAGES($HWND, $IBITMAPID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_LOADIMAGES, $IBITMAPID, $__TOOLBARCONSTANT_HINST_COMMCTRL)

EndFunc

 

 

Func _GUICTRLTOOLBAR_MAPACCELERATOR($HWND, $CACCEL)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TCOMMAND = DllStructCreate("int Data")

Local $PCOMMAND = DllStructGetPtr($TCOMMAND)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_MAPACCELERATORW, Asc($CACCEL), $PCOMMAND, 0, "wparam", "ptr")

Else

Local $ICOMMAND = DllStructGetSize($TCOMMAND)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ICOMMAND, $TMEMMAP)

_SENDMESSAGE($HWND, $TB_MAPACCELERATORW, Asc($CACCEL), $PMEMORY, 0, "wparam", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PCOMMAND, $ICOMMAND)

_MEMFREE($TMEMMAP)

EndIf

Return DllStructGetData($TCOMMAND, "Data")

EndFunc

 

 

Func _GUICTRLTOOLBAR_MOVEBUTTON($HWND, $IOLDPOS, $INEWPOS)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_MOVEBUTTON, $IOLDPOS, $INEWPOS) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_PRESSBUTTON($HWND, $ICOMMANDID, $FPRESS = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_PRESSBUTTON, $ICOMMANDID, $FPRESS) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETANCHORHIGHLIGHT($HWND, $FANCHOR)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETANCHORHIGHLIGHT, $FANCHOR)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBITMAPSIZE($HWND, $IWIDTH, $IHEIGHT)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETBITMAPSIZE, 0, _WINAPI_MAKELONG($IWIDTH, $IHEIGHT), 0, "wparam", "long") <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONBITMAP($HWND, $ICOMMANDID, $IINDEX)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_CHANGEBITMAP, $ICOMMANDID, $IINDEX) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONINFO($HWND, $ICOMMANDID, $IIMAGE = -3, $ISTATE = -1, $ISTYLE = -1, $IWIDTH = -1, $IPARAM = -1)

Local $IMASK = 0

Local $TBUTTON = DllStructCreate($TAGTBBUTTONINFO)

If $IIMAGE <> -3 Then

$IMASK = $TBIF_IMAGE

DllStructSetData($TBUTTON, "Image", $IIMAGE)

EndIf

If $ISTATE <> -1 Then

$IMASK = BitOR($IMASK, $TBIF_STATE)

DllStructSetData($TBUTTON, "State", $ISTATE)

EndIf

If $ISTYLE <> -1 Then

$IMASK = BitOR($IMASK, $TBIF_STYLE)

DllStructSetData($TBUTTON, "Style", $ISTYLE)

EndIf

If $IWIDTH <> -1 Then

$IMASK = BitOR($IMASK, $TBIF_SIZE)

DllStructSetData($TBUTTON, "CX", $IWIDTH)

EndIf

If $IPARAM <> -1 Then

$IMASK = BitOR($IMASK, $TBIF_LPARAM)

DllStructSetData($TBUTTON, "Param", $IPARAM)

EndIf

DllStructSetData($TBUTTON, "Mask", $IMASK)

Return _GUICTRLTOOLBAR_SETBUTTONINFOEX($HWND, $ICOMMANDID, $TBUTTON)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONINFOEX($HWND, $ICOMMANDID, $TBUTTON)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $PBUTTON = DllStructGetPtr($TBUTTON)

Local $IBUTTON = DllStructGetSize($TBUTTON)

DllStructSetData($TBUTTON, "Size", $IBUTTON)

Local $IRET

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

$IRET = _SENDMESSAGE($HWND, $TB_SETBUTTONINFOW, $ICOMMANDID, $PBUTTON, 0, "wparam", "ptr")

Else

Local $IBUFFER = DllStructGetData($TBUTTON, "TextMax")

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IBUTTON + $IBUFFER, $TMEMMAP)

Local $PBUFFER = $PMEMORY + $IBUTTON

DllStructSetData($TBUTTON, "Text", $PBUFFER)

_MEMWRITE($TMEMMAP, $PBUTTON, $PMEMORY, $IBUTTON)

_MEMWRITE($TMEMMAP, $PBUFFER, $PBUFFER, $IBUFFER)

$IRET = _SENDMESSAGE($HWND, $TB_SETBUTTONINFOW, $ICOMMANDID, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

Return $IRET <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONPARAM($HWND, $ICOMMANDID, $IPARAM)

Local $TBUTTON = DllStructCreate($TAGTBBUTTONINFO)

DllStructSetData($TBUTTON, "Mask", $TBIF_LPARAM)

DllStructSetData($TBUTTON, "Param", $IPARAM)

Return _GUICTRLTOOLBAR_SETBUTTONINFOEX($HWND, $ICOMMANDID, $TBUTTON)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONSIZE($HWND, $IHEIGHT, $IWIDTH)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETBUTTONSIZE, 0, _WINAPI_MAKELONG($IWIDTH, $IHEIGHT), 0, "wparam", "long") <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONSTATE($HWND, $ICOMMANDID, $ISTATE)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETSTATE, $ICOMMANDID, $ISTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONSTYLE($HWND, $ICOMMANDID, $ISTYLE)

Local $TBUTTON = DllStructCreate($TAGTBBUTTONINFO)

DllStructSetData($TBUTTON, "Mask", $TBIF_STYLE)

DllStructSetData($TBUTTON, "Style", $ISTYLE)

Return _GUICTRLTOOLBAR_SETBUTTONINFOEX($HWND, $ICOMMANDID, $TBUTTON)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONTEXT($HWND, $ICOMMANDID, $STEXT)

Local $IBUFFER = StringLen($STEXT) + 1

Local $TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER * 2 & "]")

$IBUFFER *= 2

Local $PBUFFER = DllStructGetPtr($TBUFFER)

Local $TBUTTON = DllStructCreate($TAGTBBUTTONINFO)

DllStructSetData($TBUFFER, "Text", $STEXT)

DllStructSetData($TBUTTON, "Mask", $TBIF_TEXT)

DllStructSetData($TBUTTON, "Text", $PBUFFER)

DllStructSetData($TBUTTON, "TextMax", $IBUFFER)

Return _GUICTRLTOOLBAR_SETBUTTONINFOEX($HWND, $ICOMMANDID, $TBUTTON)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETBUTTONWIDTH($HWND, $IMIN, $IMAX)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETBUTTONWIDTH, 0, _WINAPI_MAKELONG($IMIN, $IMAX), 0, "wparam", "long") <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETCMDID($HWND, $IINDEX, $ICOMMANDID)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETCMDID, $IINDEX, $ICOMMANDID) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETCOLORSCHEME($HWND, $IHIGHLIGHT, $ISHADOW)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TCOLOR = DllStructCreate($TAGCOLORSCHEME)

Local $PCOLOR = DllStructGetPtr($TCOLOR)

Local $ICOLOR = DllStructGetSize($TCOLOR)

DllStructSetData($TCOLOR, "Size", $ICOLOR)

DllStructSetData($TCOLOR, "BtnHighlight", $IHIGHLIGHT)

DllStructSetData($TCOLOR, "BtnShadow", $ISHADOW)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_SETCOLORSCHEME, 0, $PCOLOR, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ICOLOR, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PCOLOR, $PMEMORY, $ICOLOR)

_SENDMESSAGE($HWND, $TB_SETCOLORSCHEME, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETDISABLEDIMAGELIST($HWND, $HIMAGELIST)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETDISABLEDIMAGELIST, 0, $HIMAGELIST, 0, "wparam", "hwnd")

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETDRAWTEXTFLAGS($HWND, $IMASK, $IDTFLAGS)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETDRAWTEXTFLAGS, $IMASK, $IDTFLAGS)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETEXTENDEDSTYLE($HWND, $ISTYLE)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETEXTENDEDSTYLE, 0, $ISTYLE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETHOTIMAGELIST($HWND, $HIMAGELIST)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETHOTIMAGELIST, 0, $HIMAGELIST, 0, "wparam", "hwnd")

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETHOTITEM($HWND, $IINDEX)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETHOTITEM, $IINDEX)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETIMAGELIST($HWND, $HIMAGELIST)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETIMAGELIST, 0, $HIMAGELIST, 0, "wparam", "hwnd")

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETINDENT($HWND, $IINDENT)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETINDENT, $IINDENT) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETINDETERMINATE($HWND, $ICOMMANDID, $FSTATE = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_INDETERMINATE, $ICOMMANDID, $FSTATE) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETINSERTMARK($HWND, $IBUTTON, $IFLAGS = 0)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TMARK = DllStructCreate($TAGTBINSERTMARK)

Local $PMARK = DllStructGetPtr($TMARK)

DllStructSetData($TMARK, "Button", $IBUTTON)

DllStructSetData($TMARK, "Flags", $IFLAGS)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_SETINSERTMARK, 0, $PMARK, 0, "wparam", "ptr")

Else

Local $IMARK = DllStructGetSize($TMARK)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IMARK, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PMARK, $PMEMORY, $IMARK)

_SENDMESSAGE($HWND, $TB_SETINSERTMARK, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETINSERTMARKCOLOR($HWND, $ICOLOR)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETINSERTMARKCOLOR, 0, $ICOLOR)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETMAXTEXTROWS($HWND, $IMAXROWS)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETMAXTEXTROWS, $IMAXROWS) <> 0

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETMETRICS($HWND, $IXPAD, $IYPAD, $IXSPACING, $IYSPACING)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TMETRICS = DllStructCreate($TAGTBMETRICS)

Local $PMETRICS = DllStructGetPtr($TMETRICS)

Local $IMETRICS = DllStructGetSize($TMETRICS)

Local $IMASK = BitOR($TBMF_PAD, $TBMF_BUTTONSPACING)

DllStructSetData($TMETRICS, "Size", $IMETRICS)

DllStructSetData($TMETRICS, "Mask", $IMASK)

DllStructSetData($TMETRICS, "XPad", $IXPAD)

DllStructSetData($TMETRICS, "YPad", $IYPAD)

DllStructSetData($TMETRICS, "XSpacing", $IXSPACING)

DllStructSetData($TMETRICS, "YSpacing", $IYSPACING)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_SETMETRICS, 0, $PMETRICS, 0, "wparam", "ptr")

Else

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IMETRICS, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PMETRICS, $PMEMORY, $IMETRICS)

_SENDMESSAGE($HWND, $TB_SETMETRICS, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETPADDING($HWND, $ICX, $ICY)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETPADDING, 0, _WINAPI_MAKELONG($ICX, $ICY), 0, "wparam", "long")

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETPARENT($HWND, $HPARENT)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETPARENT, $HPARENT)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETROWS($HWND, $IROWS, $FLARGER = True)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TRECT = DllStructCreate($TAGRECT)

Local $PRECT = DllStructGetPtr($TRECT)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_SETROWS, _WINAPI_MAKELONG($IROWS, $FLARGER), $PRECT, 0, "long", "ptr")

Else

Local $IRECT = DllStructGetSize($TRECT)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $IRECT, $TMEMMAP)

_SENDMESSAGE($HWND, $TB_SETROWS, _WINAPI_MAKELONG($IROWS, $FLARGER), $PMEMORY, 0, "long", "ptr")

_MEMREAD($TMEMMAP, $PMEMORY, $PRECT, $IRECT)

_MEMFREE($TMEMMAP)

EndIf

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 _GUICTRLTOOLBAR_SETSTYLE($HWND, $ISTYLE)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

$ISTYLE = BitOR($ISTYLE, $__UDFGUICONSTANT_WS_CHILD, $__TOOLBARCONSTANT_WS_CLIPSIBLINGS, $__UDFGUICONSTANT_WS_VISIBLE)

_SENDMESSAGE($HWND, $TB_SETSTYLE, 0, $ISTYLE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLEALTDRAG($HWND, $FSTATE = True)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_ALTDRAG, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLECUSTOMERASE($HWND, $FSTATE = True)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_CUSTOMERASE, $FSTATE)

EndFunc

 

 

Func __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $ISTYLE, $FSTYLE)

Local $IN = _GUICTRLTOOLBAR_GETSTYLE($HWND)

If $FSTYLE Then

$IN = BitOR($IN, $ISTYLE)

Else

$IN = BitAND($IN, BitNOT($ISTYLE))

EndIf

Return _GUICTRLTOOLBAR_SETSTYLE($HWND, $IN)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLEFLAT($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_FLAT, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLELIST($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_LIST, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLEREGISTERDROP($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_REGISTERDROP, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLETOOLTIPS($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_TOOLTIPS, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLETRANSPARENT($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_TRANSPARENT, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETSTYLEWRAPABLE($HWND, $FSTATE)

Return __GUICTRLTOOLBAR_SETSTYLEEX($HWND, $TBSTYLE_WRAPABLE, $FSTATE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETTOOLTIPS($HWND, $HTOOLTIP)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

_SENDMESSAGE($HWND, $TB_SETTOOLTIPS, $HTOOLTIP, 0, 0, "hwnd")

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETUNICODEFORMAT($HWND, $FUNICODE = False)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Return _SENDMESSAGE($HWND, $TB_SETUNICODEFORMAT, $FUNICODE)

EndFunc

 

 

Func _GUICTRLTOOLBAR_SETWINDOWTHEME($HWND, $STHEME)

If $DEBUG_TB Then __UDF_VALIDATECLASSNAME($HWND, $__TOOLBARCONSTANT_CLASSNAME)

Local $TTHEME = _WINAPI_MULTIBYTETOWIDECHAR($STHEME)

Local $PTHEME = DllStructGetPtr($TTHEME)

If _WINAPI_INPROCESS($HWND, $GH_TBLASTWND) Then

_SENDMESSAGE($HWND, $TB_SETWINDOWTHEME, 0, $PTHEME, 0, "wparam", "ptr")

Else

Local $ITHEME = DllStructGetSize($TTHEME)

Local $TMEMMAP

Local $PMEMORY = _MEMINIT($HWND, $ITHEME, $TMEMMAP)

_MEMWRITE($TMEMMAP, $PTHEME, $PMEMORY, $ITHEME)

_SENDMESSAGE($HWND, $TB_SETWINDOWTHEME, 0, $PMEMORY, 0, "wparam", "ptr")

_MEMFREE($TMEMMAP)

EndIf

EndFunc

 

Global Const $PBS_MARQUEE = 8

Global Const $PBS_SMOOTH = 1

Global Const $PBS_SMOOTHREVERSE = 16

Global Const $PBS_VERTICAL = 4

Global Const $GUI_SS_DEFAULT_PROGRESS = 0

Global Const $__PROGRESSBARCONSTANT_WM_USER = 1024

Global Const $PBM_DELTAPOS = $__PROGRESSBARCONSTANT_WM_USER + 3

Global Const $PBM_GETBARCOLOR = 1039

Global Const $PBM_GETBKCOLOR = 1038

Global Const $PBM_GETPOS = $__PROGRESSBARCONSTANT_WM_USER + 8

Global Const $PBM_GETRANGE = $__PROGRESSBARCONSTANT_WM_USER + 7

Global Const $PBM_GETSTATE = 1041

Global Const $PBM_GETSTEP = 1037

Global Const $PBM_SETBARCOLOR = $__PROGRESSBARCONSTANT_WM_USER + 9

Global Const $PBM_SETBKCOLOR = 8192 + 1

Global Const $PBM_SETMARQUEE = $__PROGRESSBARCONSTANT_WM_USER + 10

Global Const $PBM_SETPOS = $__PROGRESSBARCONSTANT_WM_USER + 2

Global Const $PBM_SETRANGE = $__PROGRESSBARCONSTANT_WM_USER + 1

Global Const $PBM_SETRANGE32 = $__PROGRESSBARCONSTANT_WM_USER + 6

Global Const $PBM_SETSTATE = 1040

Global Const $PBM_SETSTEP = $__PROGRESSBARCONSTANT_WM_USER + 4

Global Const $PBM_STEPIT = $__PROGRESSBARCONSTANT_WM_USER + 5

Global Const $TBS_AUTOTICKS = 1

Global Const $TBS_BOTH = 8

Global Const $TBS_BOTTOM = 0

Global Const $TBS_DOWNISLEFT = 1024

Global Const $TBS_ENABLESELRANGE = 32

Global Const $TBS_FIXEDLENGTH = 64

Global Const $TBS_HORZ = 0

Global Const $TBS_LEFT = 4

Global Const $TBS_NOTHUMB = 128

Global Const $TBS_NOTICKS = 16

Global Const $TBS_REVERSED = 512

Global Const $TBS_RIGHT = 0

Global Const $TBS_TOP = 4

Global Const $TBS_TOOLTIPS = 256

Global Const $TBS_VERT = 2

Global Const $GUI_SS_DEFAULT_SLIDER = $TBS_AUTOTICKS

Global Const $TBCD_CHANNEL = 3

Global Const $TBCD_THUMB = 2

Global Const $TBCD_TICS = 1

Global Const $__SLIDERCONSTANT_WM_USER = 1024

Global Const $TBM_CLEARSEL = $__SLIDERCONSTANT_WM_USER + 19

Global Const $TBM_CLEARTICS = $__SLIDERCONSTANT_WM_USER + 9

Global Const $TBM_GETBUDDY = $__SLIDERCONSTANT_WM_USER + 33

Global Const $TBM_GETCHANNELRECT = $__SLIDERCONSTANT_WM_USER + 26

Global Const $TBM_GETLINESIZE = $__SLIDERCONSTANT_WM_USER + 24

Global Const $TBM_GETNUMTICS = $__SLIDERCONSTANT_WM_USER + 16

Global Const $TBM_GETPAGESIZE = $__SLIDERCONSTANT_WM_USER + 22

Global Const $TBM_GETPOS = $__SLIDERCONSTANT_WM_USER

Global Const $TBM_GETPTICS = $__SLIDERCONSTANT_WM_USER + 14

Global Const $TBM_GETSELEND = $__SLIDERCONSTANT_WM_USER + 18

Global Const $TBM_GETSELSTART = $__SLIDERCONSTANT_WM_USER + 17

Global Const $TBM_GETRANGEMAX = $__SLIDERCONSTANT_WM_USER + 2

Global Const $TBM_GETRANGEMIN = $__SLIDERCONSTANT_WM_USER + 1

Global Const $TBM_GETTHUMBLENGTH = $__SLIDERCONSTANT_WM_USER + 28

Global Const $TBM_GETTHUMBRECT = $__SLIDERCONSTANT_WM_USER + 25

Global Const $TBM_GETTIC = $__SLIDERCONSTANT_WM_USER + 3

Global Const $TBM_GETTICPOS = $__SLIDERCONSTANT_WM_USER + 15

Global Const $TBM_GETTOOLTIPS = $__SLIDERCONSTANT_WM_USER + 30

Global Const $TBM_GETUNICODEFORMAT = 8192 + 6

Global Const $TBM_SETBUDDY = $__SLIDERCONSTANT_WM_USER + 32

Global Const $TBM_SETLINESIZE = $__SLIDERCONSTANT_WM_USER + 23

Global Const $TBM_SETPAGESIZE = $__SLIDERCONSTANT_WM_USER + 21

Global Const $TBM_SETPOS = $__SLIDERCONSTANT_WM_USER + 5

Global Const $TBM_SETRANGE = $__SLIDERCONSTANT_WM_USER + 6

Global Const $TBM_SETRANGEMAX = $__SLIDERCONSTANT_WM_USER + 8

Global Const $TBM_SETRANGEMIN = $__SLIDERCONSTANT_WM_USER + 7

Global Const $TBM_SETSEL = $__SLIDERCONSTANT_WM_USER + 10

Global Const $TBM_SETSELEND = $__SLIDERCONSTANT_WM_USER + 12

Global Const $TBM_SETSELSTART = $__SLIDERCONSTANT_WM_USER + 11

Global Const $TBM_SETTHUMBLENGTH = $__SLIDERCONSTANT_WM_USER + 27

Global Const $TBM_SETTIC = $__SLIDERCONSTANT_WM_USER + 4

Global Const $TBM_SETTICFREQ = $__SLIDERCONSTANT_WM_USER + 20

Global Const $TBM_SETTIPSIDE = $__SLIDERCONSTANT_WM_USER + 31

Global Const $TBM_SETTOOLTIPS = $__SLIDERCONSTANT_WM_USER + 29

Global Const $TBM_SETUNICODEFORMAT = 8192 + 5

Global Const $TBTS_BOTTOM = 2

Global Const $TBTS_LEFT = 1

Global Const $TBTS_RIGHT = 3

Global Const $TBTS_TOP = 0

Global Const $SS_LEFT = 0

Global Const $SS_CENTER = 1

Global Const $SS_RIGHT = 2

Global Const $SS_ICON = 3

Global Const $SS_BLACKRECT = 4

Global Const $SS_GRAYRECT = 5

Global Const $SS_WHITERECT = 6

Global Const $SS_BLACKFRAME = 7

Global Const $SS_GRAYFRAME = 8

Global Const $SS_WHITEFRAME = 9

Global Const $SS_SIMPLE = 11

Global Const $SS_LEFTNOWORDWRAP = 12

Global Const $SS_BITMAP = 14

Global Const $SS_ETCHEDHORZ = 16

Global Const $SS_ETCHEDVERT = 17

Global Const $SS_ETCHEDFRAME = 18

Global Const $SS_NOPREFIX = 128

Global Const $SS_NOTIFY = 256

Global Const $SS_CENTERIMAGE = 512

Global Const $SS_RIGHTJUST = 1024

Global Const $SS_SUNKEN = 4096

Global Const $GUI_SS_DEFAULT_LABEL = 0

Global Const $GUI_SS_DEFAULT_GRAPHIC = 0

Global Const $GUI_SS_DEFAULT_ICON = $SS_NOTIFY

Global Const $GUI_SS_DEFAULT_PIC = $SS_NOTIFY

Global Const $WS_TILED = 0

Global Const $WS_OVERLAPPED = 0

Global Const $WS_MAXIMIZEBOX = 65536

Global Const $WS_MINIMIZEBOX = 131072

Global Const $WS_TABSTOP = 65536

Global Const $WS_GROUP = 131072

Global Const $WS_SIZEBOX = 262144

Global Const $WS_THICKFRAME = 262144

Global Const $WS_SYSMENU = 524288

Global Const $WS_HSCROLL = 1048576

Global Const $WS_VSCROLL = 2097152

Global Const $WS_DLGFRAME = 4194304

Global Const $WS_BORDER = 8388608

Global Const $WS_CAPTION = 12582912

Global Const $WS_OVERLAPPEDWINDOW = 13565952

Global Const $WS_TILEDWINDOW = 13565952

Global Const $WS_MAXIMIZE = 16777216

Global Const $WS_CLIPCHILDREN = 33554432

Global Const $WS_CLIPSIBLINGS = 67108864

Global Const $WS_DISABLED = 134217728

Global Const $WS_VISIBLE = 268435456

Global Const $WS_MINIMIZE = 536870912

Global Const $WS_CHILD = 1073741824

Global Const $WS_POPUP = -2147483648

Global Const $WS_POPUPWINDOW = -2138570752

Global Const $DS_MODALFRAME = 128

Global Const $DS_SETFOREGROUND = 512

Global Const $DS_CONTEXTHELP = 8192

Global Const $WS_EX_ACCEPTFILES = 16

Global Const $WS_EX_MDICHILD = 64

Global Const $WS_EX_APPWINDOW = 262144

Global Const $WS_EX_COMPOSITED = 33554432

Global Const $WS_EX_CLIENTEDGE = 512

Global Const $WS_EX_CONTEXTHELP = 1024

Global Const $WS_EX_DLGMODALFRAME = 1

Global Const $WS_EX_LEFTSCROLLBAR = 16384

Global Const $WS_EX_OVERLAPPEDWINDOW = 768

Global Const $WS_EX_RIGHT = 4096

Global Const $WS_EX_STATICEDGE = 131072

Global Const $WS_EX_TOOLWINDOW = 128

Global Const $WS_EX_TOPMOST = 8

Global Const $WS_EX_TRANSPARENT = 32

Global Const $WS_EX_WINDOWEDGE = 256

Global Const $WS_EX_LAYERED = 524288

Global Const $WS_EX_CONTROLPARENT = 65536

Global Const $WS_EX_LAYOUTRTL = 4194304

Global Const $WS_EX_RTLREADING = 8192

Global Const $WM_GETTEXTLENGTH = 14

Global Const $WM_GETTEXT = 13

Global Const $WM_SIZE = 5

Global Const $WM_SIZING = 532

Global Const $WM_USER = 1024

Global Const $WM_CREATE = 1

Global Const $WM_DESTROY = 2

Global Const $WM_MOVE = 3

Global Const $WM_ACTIVATE = 6

Global Const $WM_SETFOCUS = 7

Global Const $WM_KILLFOCUS = 8

Global Const $WM_ENABLE = 10

Global Const $WM_SETREDRAW = 11

Global Const $WM_SETTEXT = 12

Global Const $WM_PAINT = 15

Global Const $WM_CLOSE = 16

Global Const $WM_QUIT = 18

Global Const $WM_ERASEBKGND = 20

Global Const $WM_SYSCOLORCHANGE = 21

Global Const $WM_SHOWWINDOW = 24

Global Const $WM_WININICHANGE = 26

Global Const $WM_DEVMODECHANGE = 27

Global Const $WM_ACTIVATEAPP = 28

Global Const $WM_FONTCHANGE = 29

Global Const $WM_TIMECHANGE = 30

Global Const $WM_CANCELMODE = 31

Global Const $WM_SETCURSOR = 32

Global Const $WM_MOUSEACTIVATE = 33

Global Const $WM_CHILDACTIVATE = 34

Global Const $WM_QUEUESYNC = 35

Global Const $WM_GETMINMAXINFO = 36

Global Const $WM_PAINTICON = 38

Global Const $WM_ICONERASEBKGND = 39

Global Const $WM_NEXTDLGCTL = 40

Global Const $WM_SPOOLERSTATUS = 42

Global Const $WM_DRAWITEM = 43

Global Const $WM_MEASUREITEM = 44

Global Const $WM_DELETEITEM = 45

Global Const $WM_VKEYTOITEM = 46

Global Const $WM_CHARTOITEM = 47

Global Const $WM_SETFONT = 48

Global Const $WM_GETFONT = 49

Global Const $WM_SETHOTKEY = 50

Global Const $WM_GETHOTKEY = 51

Global Const $WM_QUERYDRAGICON = 55

Global Const $WM_COMPAREITEM = 57

Global Const $WM_GETOBJECT = 61

Global Const $WM_COMPACTING = 65

Global Const $WM_COMMNOTIFY = 68

Global Const $WM_WINDOWPOSCHANGING = 70

Global Const $WM_WINDOWPOSCHANGED = 71

Global Const $WM_POWER = 72

Global Const $WM_NOTIFY = 78

Global Const $WM_COPYDATA = 74

Global Const $WM_CANCELJOURNAL = 75

Global Const $WM_INPUTLANGCHANGEREQUEST = 80

Global Const $WM_INPUTLANGCHANGE = 81

Global Const $WM_TCARD = 82

Global Const $WM_HELP = 83

Global Const $WM_USERCHANGED = 84

Global Const $WM_NOTIFYFORMAT = 85

Global Const $WM_CUT = 768

Global Const $WM_COPY = 769

Global Const $WM_PASTE = 770

Global Const $WM_CLEAR = 771

Global Const $WM_UNDO = 772

Global Const $WM_CONTEXTMENU = 123

Global Const $WM_STYLECHANGING = 124

Global Const $WM_STYLECHANGED = 125

Global Const $WM_DISPLAYCHANGE = 126

Global Const $WM_GETICON = 127

Global Const $WM_SETICON = 128

Global Const $WM_NCCREATE = 129

Global Const $WM_NCDESTROY = 130

Global Const $WM_NCCALCSIZE = 131

Global Const $WM_NCHITTEST = 132

Global Const $WM_NCPAINT = 133

Global Const $WM_NCACTIVATE = 134

Global Const $WM_GETDLGCODE = 135

Global Const $WM_SYNCPAINT = 136

Global Const $WM_NCMOUSEMOVE = 160

Global Const $WM_NCLBUTTONDOWN = 161

Global Const $WM_NCLBUTTONUP = 162

Global Const $WM_NCLBUTTONDBLCLK = 163

Global Const $WM_NCRBUTTONDOWN = 164

Global Const $WM_NCRBUTTONUP = 165

Global Const $WM_NCRBUTTONDBLCLK = 166

Global Const $WM_NCMBUTTONDOWN = 167

Global Const $WM_NCMBUTTONUP = 168

Global Const $WM_NCMBUTTONDBLCLK = 169

Global Const $WM_KEYDOWN = 256

Global Const $WM_KEYUP = 257

Global Const $WM_CHAR = 258

Global Const $WM_DEADCHAR = 259

Global Const $WM_SYSKEYDOWN = 260

Global Const $WM_SYSKEYUP = 261

Global Const $WM_SYSCHAR = 262

Global Const $WM_SYSDEADCHAR = 263

Global Const $WM_INITDIALOG = 272

Global Const $WM_COMMAND = 273

Global Const $WM_SYSCOMMAND = 274

Global Const $WM_TIMER = 275

Global Const $WM_HSCROLL = 276

Global Const $WM_VSCROLL = 277

Global Const $WM_INITMENU = 278

Global Const $WM_INITMENUPOPUP = 279

Global Const $WM_MENUSELECT = 287

Global Const $WM_MENUCHAR = 288

Global Const $WM_ENTERIDLE = 289

Global Const $WM_MENURBUTTONUP = 290

Global Const $WM_MENUDRAG = 291

Global Const $WM_MENUGETOBJECT = 292

Global Const $WM_UNINITMENUPOPUP = 293

Global Const $WM_MENUCOMMAND = 294

Global Const $WM_CHANGEUISTATE = 295

Global Const $WM_UPDATEUISTATE = 296

Global Const $WM_QUERYUISTATE = 297

Global Const $WM_CTLCOLORMSGBOX = 306

Global Const $WM_CTLCOLOREDIT = 307

Global Const $WM_CTLCOLORLISTBOX = 308

Global Const $WM_CTLCOLORBTN = 309

Global Const $WM_CTLCOLORDLG = 310

Global Const $WM_CTLCOLORSCROLLBAR = 311

Global Const $WM_CTLCOLORSTATIC = 312

Global Const $WM_CTLCOLOR = 25

Global Const $MN_GETHMENU = 481

Global Const $NM_FIRST = 0

Global Const $NM_OUTOFMEMORY = $NM_FIRST - 1

Global Const $NM_CLICK = $NM_FIRST - 2

Global Const $NM_DBLCLK = $NM_FIRST - 3

Global Const $NM_RETURN = $NM_FIRST - 4

Global Const $NM_RCLICK = $NM_FIRST - 5

Global Const $NM_RDBLCLK = $NM_FIRST - 6

Global Const $NM_SETFOCUS = $NM_FIRST - 7

Global Const $NM_KILLFOCUS = $NM_FIRST - 8

Global Const $NM_CUSTOMDRAW = $NM_FIRST - 12

Global Const $NM_HOVER = $NM_FIRST - 13

Global Const $NM_NCHITTEST = $NM_FIRST - 14

Global Const $NM_KEYDOWN = $NM_FIRST - 15

Global Const $NM_RELEASEDCAPTURE = $NM_FIRST - 16

Global Const $NM_SETCURSOR = $NM_FIRST - 17

Global Const $NM_CHAR = $NM_FIRST - 18

Global Const $NM_TOOLTIPSCREATED = $NM_FIRST - 19

Global Const $NM_LDOWN = $NM_FIRST - 20

Global Const $NM_RDOWN = $NM_FIRST - 21

Global Const $NM_THEMECHANGED = $NM_FIRST - 22

Global Const $WM_MOUSEMOVE = 512

Global Const $WM_LBUTTONDOWN = 513

Global Const $WM_LBUTTONUP = 514

Global Const $WM_LBUTTONDBLCLK = 515

Global Const $WM_RBUTTONDOWN = 516

Global Const $WM_RBUTTONUP = 517

Global Const $WM_RBUTTONDBLCK = 518

Global Const $WM_MBUTTONDOWN = 519

Global Const $WM_MBUTTONUP = 520

Global Const $WM_MBUTTONDBLCK = 521

Global Const $WM_MOUSEWHEEL = 522

Global Const $WM_XBUTTONDOWN = 523

Global Const $WM_XBUTTONUP = 524

Global Const $WM_XBUTTONDBLCLK = 525

Global Const $WM_MOUSEHWHEEL = 526

Global Const $PS_SOLID = 0

Global Const $PS_DASH = 1

Global Const $PS_DOT = 2

Global Const $PS_DASHDOT = 3

Global Const $PS_DASHDOTDOT = 4

Global Const $PS_NULL = 5

Global Const $PS_INSIDEFRAME = 6

Global Const $LWA_ALPHA = 2

Global Const $LWA_COLORKEY = 1

Global Const $RGN_AND = 1

Global Const $RGN_OR = 2

Global Const $RGN_XOR = 3

Global Const $RGN_DIFF = 4

Global Const $RGN_COPY = 5

Global Const $ERRORREGION = 0

Global Const $NULLREGION = 1

Global Const $SIMPLEREGION = 2

Global Const $COMPLEXREGION = 3

Global Const $TRANSPARENT = 1

Global Const $OPAQUE = 2

Global Const $CCM_FIRST = 8192

Global Const $CCM_GETUNICODEFORMAT = ($CCM_FIRST + 6)

Global Const $CCM_SETUNICODEFORMAT = ($CCM_FIRST + 5)

Global Const $CCM_SETBKCOLOR = $CCM_FIRST + 1

Global Const $CCM_SETCOLORSCHEME = $CCM_FIRST + 2

Global Const $CCM_GETCOLORSCHEME = $CCM_FIRST + 3

Global Const $CCM_GETDROPTARGET = $CCM_FIRST + 4

Global Const $CCM_SETWINDOWTHEME = $CCM_FIRST + 11

Global Const $GA_PARENT = 1

Global Const $GA_ROOT = 2

Global Const $GA_ROOTOWNER = 3

Global Const $SM_CXSCREEN = 0

Global Const $SM_CYSCREEN = 1

Global Const $SM_CXVSCROLL = 2

Global Const $SM_CYHSCROLL = 3

Global Const $SM_CYCAPTION = 4

Global Const $SM_CXBORDER = 5

Global Const $SM_CYBORDER = 6

Global Const $SM_CXDLGFRAME = 7

Global Const $SM_CYDLGFRAME = 8

Global Const $SM_CYVTHUMB = 9

Global Const $SM_CXHTHUMB = 10

Global Const $SM_CXICON = 11

Global Const $SM_CYICON = 12

Global Const $SM_CXCURSOR = 13

Global Const $SM_CYCURSOR = 14

Global Const $SM_CYMENU = 15

Global Const $SM_CXFULLSCREEN = 16

Global Const $SM_CYFULLSCREEN = 17

Global Const $SM_CYKANJIWINDOW = 18

Global Const $SM_MOUSEPRESENT = 19

Global Const $SM_CYVSCROLL = 20

Global Const $SM_CXHSCROLL = 21

Global Const $SM_DEBUG = 22

Global Const $SM_SWAPBUTTON = 23

Global Const $SM_RESERVED1 = 24

Global Const $SM_RESERVED2 = 25

Global Const $SM_RESERVED3 = 26

Global Const $SM_RESERVED4 = 27

Global Const $SM_CXMIN = 28

Global Const $SM_CYMIN = 29

Global Const $SM_CXSIZE = 30

Global Const $SM_CYSIZE = 31

Global Const $SM_CXFRAME = 32

Global Const $SM_CYFRAME = 33

Global Const $SM_CXMINTRACK = 34

Global Const $SM_CYMINTRACK = 35

Global Const $SM_CXDOUBLECLK = 36

Global Const $SM_CYDOUBLECLK = 37

Global Const $SM_CXICONSPACING = 38

Global Const $SM_CYICONSPACING = 39

Global Const $SM_MENUDROPALIGNMENT = 40

Global Const $SM_PENWINDOWS = 41

Global Const $SM_DBCSENABLED = 42

Global Const $SM_CMOUSEBUTTONS = 43

Global Const $SM_SECURE = 44

Global Const $SM_CXEDGE = 45

Global Const $SM_CYEDGE = 46

Global Const $SM_CXMINSPACING = 47

Global Const $SM_CYMINSPACING = 48

Global Const $SM_CXSMICON = 49

Global Const $SM_CYSMICON = 50

Global Const $SM_CYSMCAPTION = 51

Global Const $SM_CXSMSIZE = 52

Global Const $SM_CYSMSIZE = 53

Global Const $SM_CXMENUSIZE = 54

Global Const $SM_CYMENUSIZE = 55

Global Const $SM_ARRANGE = 56

Global Const $SM_CXMINIMIZED = 57

Global Const $SM_CYMINIMIZED = 58

Global Const $SM_CXMAXTRACK = 59

Global Const $SM_CYMAXTRACK = 60

Global Const $SM_CXMAXIMIZED = 61

Global Const $SM_CYMAXIMIZED = 62

Global Const $SM_NETWORK = 63

Global Const $SM_CLEANBOOT = 67

Global Const $SM_CXDRAG = 68

Global Const $SM_CYDRAG = 69

Global Const $SM_SHOWSOUNDS = 70

Global Const $SM_CXMENUCHECK = 71

Global Const $SM_CYMENUCHECK = 72

Global Const $SM_SLOWMACHINE = 73

Global Const $SM_MIDEASTENABLED = 74

Global Const $SM_MOUSEWHEELPRESENT = 75

Global Const $SM_XVIRTUALSCREEN = 76

Global Const $SM_YVIRTUALSCREEN = 77

Global Const $SM_CXVIRTUALSCREEN = 78

Global Const $SM_CYVIRTUALSCREEN = 79

Global Const $SM_CMONITORS = 80

Global Const $SM_SAMEDISPLAYFORMAT = 81

Global Const $SM_IMMENABLED = 82

Global Const $SM_CXFOCUSBORDER = 83

Global Const $SM_CYFOCUSBORDER = 84

Global Const $SM_TABLETPC = 86

Global Const $SM_MEDIACENTER = 87

Global Const $SM_STARTER = 88

Global Const $SM_SERVERR2 = 89

Global Const $SM_CMETRICS = 90

Global Const $SM_REMOTESESSION = 4096

Global Const $SM_SHUTTINGDOWN = 8192

Global Const $SM_REMOTECONTROL = 8193

Global Const $SM_CARETBLINKINGENABLED = 8194

Global Const $BLACKNESS = 66

Global Const $CAPTUREBLT = 1073741824

Global Const $DSTINVERT = 5570569

Global Const $MERGECOPY = 12583114

Global Const $MERGEPAINT = 12255782

Global Const $NOMIRRORBITMAP = -2147483648

Global Const $NOTSRCCOPY = 3342344

Global Const $NOTSRCERASE = 1114278

Global Const $PATCOPY = 15728673

Global Const $PATINVERT = 5898313

Global Const $PATPAINT = 16452105

Global Const $SRCAND = 8913094

Global Const $SRCCOPY = 13369376

Global Const $SRCERASE = 4457256

Global Const $SRCINVERT = 6684742

Global Const $SRCPAINT = 15597702

Global Const $WHITENESS = 16711778

Global Const $DT_BOTTOM = 8

Global Const $DT_CALCRECT = 1024

Global Const $DT_CENTER = 1

Global Const $DT_EDITCONTROL = 8192

Global Const $DT_END_ELLIPSIS = 32768

Global Const $DT_EXPANDTABS = 64

Global Const $DT_EXTERNALLEADING = 512

Global Const $DT_HIDEPREFIX = 1048576

Global Const $DT_INTERNAL = 4096

Global Const $DT_LEFT = 0

Global Const $DT_MODIFYSTRING = 65536

Global Const $DT_NOCLIP = 256

Global Const $DT_NOFULLWIDTHCHARBREAK = 524288

Global Const $DT_NOPREFIX = 2048

Global Const $DT_PATH_ELLIPSIS = 16384

Global Const $DT_PREFIXONLY = 2097152

Global Const $DT_RIGHT = 2

Global Const $DT_RTLREADING = 131072

Global Const $DT_SINGLELINE = 32

Global Const $DT_TABSTOP = 128

Global Const $DT_TOP = 0

Global Const $DT_VCENTER = 4

Global Const $DT_WORDBREAK = 16

Global Const $DT_WORD_ELLIPSIS = 262144

Global Const $RDW_ERASE = 4

Global Const $RDW_FRAME = 1024

Global Const $RDW_INTERNALPAINT = 2

Global Const $RDW_INVALIDATE = 1

Global Const $RDW_NOERASE = 32

Global Const $RDW_NOFRAME = 2048

Global Const $RDW_NOINTERNALPAINT = 16

Global Const $RDW_VALIDATE = 8

Global Const $RDW_ERASENOW = 512

Global Const $RDW_UPDATENOW = 256

Global Const $RDW_ALLCHILDREN = 128

Global Const $RDW_NOCHILDREN = 64

Global Const $WM_RENDERFORMAT = 773

Global Const $WM_RENDERALLFORMATS = 774

Global Const $WM_DESTROYCLIPBOARD = 775

Global Const $WM_DRAWCLIPBOARD = 776

Global Const $WM_PAINTCLIPBOARD = 777

Global Const $WM_VSCROLLCLIPBOARD = 778

Global Const $WM_SIZECLIPBOARD = 779

Global Const $WM_ASKCBFORMATNAME = 780

Global Const $WM_CHANGECBCHAIN = 781

Global Const $WM_HSCROLLCLIPBOARD = 782

Global Const $HTERROR = -2

Global Const $HTTRANSPARENT = -1

Global Const $HTNOWHERE = 0

Global Const $HTCLIENT = 1

Global Const $HTCAPTION = 2

Global Const $HTSYSMENU = 3

Global Const $HTGROWBOX = 4

Global Const $HTSIZE = $HTGROWBOX

Global Const $HTMENU = 5

Global Const $HTHSCROLL = 6

Global Const $HTVSCROLL = 7

Global Const $HTMINBUTTON = 8

Global Const $HTMAXBUTTON = 9

Global Const $HTLEFT = 10

Global Const $HTRIGHT = 11

Global Const $HTTOP = 12

Global Const $HTTOPLEFT = 13

Global Const $HTTOPRIGHT = 14

Global Const $HTBOTTOM = 15

Global Const $HTBOTTOMLEFT = 16

Global Const $HTBOTTOMRIGHT = 17

Global Const $HTBORDER = 18

Global Const $HTREDUCE = $HTMINBUTTON

Global Const $HTZOOM = $HTMAXBUTTON

Global Const $HTSIZEFIRST = $HTLEFT

Global Const $HTSIZELAST = $HTBOTTOMRIGHT

Global Const $HTOBJECT = 19

Global Const $HTCLOSE = 20

Global Const $HTHELP = 21

Global Const $COLOR_SCROLLBAR = 0

Global Const $COLOR_BACKGROUND = 1

Global Const $COLOR_ACTIVECAPTION = 2

Global Const $COLOR_INACTIVECAPTION = 3

Global Const $COLOR_MENU = 4

Global Const $COLOR_WINDOW = 5

Global Const $COLOR_WINDOWFRAME = 6

Global Const $COLOR_MENUTEXT = 7

Global Const $COLOR_WINDOWTEXT = 8

Global Const $COLOR_CAPTIONTEXT = 9

Global Const $COLOR_ACTIVEBORDER = 10

Global Const $COLOR_INACTIVEBORDER = 11

Global Const $COLOR_APPWORKSPACE = 12

Global Const $COLOR_HIGHLIGHT = 13

Global Const $COLOR_HIGHLIGHTTEXT = 14

Global Const $COLOR_BTNFACE = 15

Global Const $COLOR_BTNSHADOW = 16

Global Const $COLOR_GRAYTEXT = 17

Global Const $COLOR_BTNTEXT = 18

Global Const $COLOR_INACTIVECAPTIONTEXT = 19

Global Const $COLOR_BTNHIGHLIGHT = 20

Global Const $COLOR_3DDKSHADOW = 21

Global Const $COLOR_3DLIGHT = 22

Global Const $COLOR_INFOTEXT = 23

Global Const $COLOR_INFOBK = 24

Global Const $COLOR_HOTLIGHT = 26

Global Const $COLOR_GRADIENTACTIVECAPTION = 27

Global Const $COLOR_GRADIENTINACTIVECAPTION = 28

Global Const $COLOR_MENUHILIGHT = 29

Global Const $COLOR_MENUBAR = 30

Global Const $COLOR_DESKTOP = 1

Global Const $COLOR_3DFACE = 15

Global Const $COLOR_3DSHADOW = 16

Global Const $COLOR_3DHIGHLIGHT = 20

Global Const $COLOR_3DHILIGHT = 20

Global Const $COLOR_BTNHILIGHT = 20

Global Const $HINST_COMMCTRL = -1

Global Const $IDB_STD_SMALL_COLOR = 0

Global Const $IDB_STD_LARGE_COLOR = 1

Global Const $IDB_VIEW_SMALL_COLOR = 4

Global Const $IDB_VIEW_LARGE_COLOR = 5

Global Const $IDB_HIST_SMALL_COLOR = 8

Global Const $IDB_HIST_LARGE_COLOR = 9

Global Const $STARTF_FORCEOFFFEEDBACK = 128

Global Const $STARTF_FORCEONFEEDBACK = 64

Global Const $STARTF_RUNFULLSCREEN = 32

Global Const $STARTF_USECOUNTCHARS = 8

Global Const $STARTF_USEFILLATTRIBUTE = 16

Global Const $STARTF_USEHOTKEY = 512

Global Const $STARTF_USEPOSITION = 4

Global Const $STARTF_USESHOWWINDOW = 1

Global Const $STARTF_USESIZE = 2

Global Const $STARTF_USESTDHANDLES = 256

Global Const $CDDS_PREPAINT = 1

Global Const $CDDS_POSTPAINT = 2

Global Const $CDDS_PREERASE = 3

Global Const $CDDS_POSTERASE = 4

Global Const $CDDS_ITEM = 65536

Global Const $CDDS_ITEMPREPAINT = 65537

Global Const $CDDS_ITEMPOSTPAINT = 65538

Global Const $CDDS_ITEMPREERASE = 65539

Global Const $CDDS_ITEMPOSTERASE = 65540

Global Const $CDDS_SUBITEM = 131072

Global Const $CDIS_SELECTED = 1

Global Const $CDIS_GRAYED = 2

Global Const $CDIS_DISABLED = 4

Global Const $CDIS_CHECKED = 8

Global Const $CDIS_FOCUS = 16

Global Const $CDIS_DEFAULT = 32

Global Const $CDIS_HOT = 64

Global Const $CDIS_MARKED = 128

Global Const $CDIS_INDETERMINATE = 256

Global Const $CDIS_SHOWKEYBOARDCUES = 512

Global Const $CDIS_NEARHOT = 1024

Global Const $CDIS_OTHERSIDEHOT = 2048

Global Const $CDIS_DROPHILITED = 4096

Global Const $CDRF_DODEFAULT = 0

Global Const $CDRF_NEWFONT = 2

Global Const $CDRF_SKIPDEFAULT = 4

Global Const $CDRF_NOTIFYPOSTPAINT = 16

Global Const $CDRF_NOTIFYITEMDRAW = 32

Global Const $CDRF_NOTIFYSUBITEMDRAW = 32

Global Const $CDRF_NOTIFYPOSTERASE = 64

Global Const $CDRF_DOERASE = 8

Global Const $CDRF_SKIPPOSTPAINT = 256

Global Const $GUI_SS_DEFAULT_GUI = BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)

#region _Memory

 

Func _MEMORYOPEN($IV_PID, $IV_DESIREDACCESS = 2035711, $IF_INHERITHANDLE = 1)

If Not ProcessExists($IV_PID) Then

SetError(1)

Return 0

EndIf

Local $AH_HANDLE[2] = [DllOpen("kernel32.dll")]

If @error Then

SetError(2)

Return 0

EndIf

Local $AV_OPENPROCESS = DllCall($AH_HANDLE[0], "int", "OpenProcess", "int", $IV_DESIREDACCESS, "int", $IF_INHERITHANDLE, "int", $IV_PID)

If @error Then

DllClose($AH_HANDLE[0])

SetError(3)

Return 0

EndIf

$AH_HANDLE[1] = $AV_OPENPROCESS[0]

Return $AH_HANDLE

EndFunc

 

 

Func _MEMORYREAD($IV_ADDRESS, $AH_HANDLE, $SV_TYPE = "dword")

If Not IsArray($AH_HANDLE) Then

SetError(1)

Return 0

EndIf

Local $V_BUFFER = DllStructCreate($SV_TYPE)

If @error Then

SetError(@error + 1)

Return 0

EndIf

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If Not @error Then

Local $V_VALUE = DllStructGetData($V_BUFFER, 1)

Return $V_VALUE

Else

SetError(6)

Return 0

EndIf

EndFunc

 

 

Func _MEMORYWRITE($IV_ADDRESS, $AH_HANDLE, $V_DATA, $SV_TYPE = "dword")

If Not IsArray($AH_HANDLE) Then

SetError(1)

Return 0

EndIf

Local $V_BUFFER = DllStructCreate($SV_TYPE)

If @error Then

SetError(@error + 1)

Return 0

Else

DllStructSetData($V_BUFFER, 1, $V_DATA)

If @error Then

SetError(6)

Return 0

EndIf

EndIf

DllCall($AH_HANDLE[0], "int", "WriteProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If Not @error Then

Return 1

Else

SetError(7)

Return 0

EndIf

EndFunc

 

 

Func _MEMORYCLOSE($AH_HANDLE)

If Not IsArray($AH_HANDLE) Then

SetError(1)

Return 0

EndIf

DllCall($AH_HANDLE[0], "int", "CloseHandle", "int", $AH_HANDLE[1])

If Not @error Then

DllClose($AH_HANDLE[0])

Return 1

Else

DllClose($AH_HANDLE[0])

SetError(2)

Return 0

EndIf

EndFunc

 

 

Func _MEMORYPOINTERREAD($IV_ADDRESS, $AH_HANDLE, $AV_OFFSET, $SV_TYPE = "dword")

If IsArray($AV_OFFSET) Then

If IsArray($AH_HANDLE) Then

Local $IV_POINTERCOUNT = UBound($AV_OFFSET) - 1

Else

SetError(2)

Return 0

EndIf

Else

SetError(1)

Return 0

EndIf

Local $IV_DATA[2], $I

Local $V_BUFFER = DllStructCreate("dword")

For $I = 0 To $IV_POINTERCOUNT

If $I = $IV_POINTERCOUNT Then

$V_BUFFER = DllStructCreate($SV_TYPE)

If @error Then

SetError(@error + 2)

Return 0

EndIf

$IV_ADDRESS = "0x" & Hex($IV_DATA[1] + $AV_OFFSET[$I])

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(7)

Return 0

EndIf

$IV_DATA[1] = DllStructGetData($V_BUFFER, 1)

ElseIf $I = 0 Then

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(7)

Return 0

EndIf

$IV_DATA[1] = DllStructGetData($V_BUFFER, 1)

Else

$IV_ADDRESS = "0x" & Hex($IV_DATA[1] + $AV_OFFSET[$I])

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(7)

Return 0

EndIf

$IV_DATA[1] = DllStructGetData($V_BUFFER, 1)

EndIf

Next

$IV_DATA[0] = $IV_ADDRESS

Return $IV_DATA

EndFunc

 

 

Func _MEMORYPOINTERWRITE($IV_ADDRESS, $AH_HANDLE, $AV_OFFSET, $V_DATA, $SV_TYPE = "dword")

If IsArray($AV_OFFSET) Then

If IsArray($AH_HANDLE) Then

Local $IV_POINTERCOUNT = UBound($AV_OFFSET) - 1

Else

SetError(2)

Return 0

EndIf

Else

SetError(1)

Return 0

EndIf

Local $IV_STRUCTDATA, $I

Local $V_BUFFER = DllStructCreate("dword")

For $I = 0 To $IV_POINTERCOUNT

If $I = $IV_POINTERCOUNT Then

$V_BUFFER = DllStructCreate($SV_TYPE)

If @error Then

SetError(@error + 3)

Return 0

EndIf

DllStructSetData($V_BUFFER, 1, $V_DATA)

If @error Then

SetError(8)

Return 0

EndIf

$IV_ADDRESS = "0x" & Hex($IV_STRUCTDATA + $AV_OFFSET[$I])

DllCall($AH_HANDLE[0], "int", "WriteProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(9)

Return 0

Else

Return $IV_ADDRESS

EndIf

ElseIf $I = 0 Then

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(3)

Return 0

EndIf

$IV_STRUCTDATA = DllStructGetData($V_BUFFER, 1)

Else

$IV_ADDRESS = "0x" & Hex($IV_STRUCTDATA + $AV_OFFSET[$I])

DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")

If @error Then

SetError(3)

Return 0

EndIf

$IV_STRUCTDATA = DllStructGetData($V_BUFFER, 1)

EndIf

Next

EndFunc

 

 

Func _MEMORYGETBASEADDRESS($AH_HANDLE, $IHEXDEC = 0)

Local $IV_ADDRESS = 1048576

Local $V_BUFFER = DllStructCreate("dword;dword;dword;dword;dword;dword;dword")

Local $VDATA

Local $VTYPE

If Not IsArray($AH_HANDLE) Then

SetError(1)

Return 0

EndIf

DllCall($AH_HANDLE[0], "int", "VirtualQueryEx", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER))

If Not @error Then

$VDATA = Hex(DllStructGetData($V_BUFFER, 2))

$VTYPE = Hex(DllStructGetData($V_BUFFER, 3))

While $VTYPE <> "00000080"

DllCall($AH_HANDLE[0], "int", "VirtualQueryEx", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER))

$VDATA = Hex(DllStructGetData($V_BUFFER, 2))

$VTYPE = Hex(DllStructGetData($V_BUFFER, 3))

If Hex($IV_ADDRESS) = "01000000" Then ExitLoop

$IV_ADDRESS += 65536

WEnd

If $VTYPE = "00000080" Then

SetError(0)

If $IHEXDEC = 1 Then

Return Dec($VDATA)

Else

Return $VDATA

EndIf

Else

SetError(2)

Return 0

EndIf

Else

SetError(3)

Return 0

EndIf

EndFunc

 

 

Func SETPRIVILEGE($PRIVILEGE, $BENABLE)

Const $TOKEN_ADJUST_PRIVILEGES = 32

Const $TOKEN_QUERY = 8

Const $SE_PRIVILEGE_ENABLED = 2

Local $HTOKEN, $SP_AUXRET, $SP_RET, $HCURRPROCESS, $NTOKENS, $NTOKENINDEX, $PRIV

$NTOKENS = 1

$LUID = DllStructCreate("dword;int")

If IsArray($PRIVILEGE) Then $NTOKENS = UBound($PRIVILEGE)

$TOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * $NTOKENS) & "]")

$NEWTOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * $NTOKENS) & "]")

$HCURRPROCESS = DllCall("kernel32.dll", "hwnd", "GetCurrentProcess")

$SP_AUXRET = DllCall("advapi32.dll", "int", "OpenProcessToken", "hwnd", $HCURRPROCESS[0], "int", BitOR($TOKEN_ADJUST_PRIVILEGES, $TOKEN_QUERY), "int*", 0)

If $SP_AUXRET[0] Then

$HTOKEN = $SP_AUXRET[3]

DllStructSetData($TOKEN_PRIVILEGES, 1, 1)

$NTOKENINDEX = 1

While $NTOKENINDEX <= $NTOKENS

If IsArray($PRIVILEGE) Then

$NTOKENVAR = $NTOKENINDEX - 1

$PRIV = $PRIVILEGE[$NTOKENVAR]

Else

$PRIV = $PRIVILEGE

EndIf

$RET = DllCall("advapi32.dll", "int", "LookupPrivilegeValue", "str", "", "str", $PRIV, "ptr", DllStructGetPtr($LUID))

If $RET[0] Then

If $BENABLE Then

DllStructSetData($TOKEN_PRIVILEGES, 2, $SE_PRIVILEGE_ENABLED, (3 * $NTOKENINDEX))

Else

DllStructSetData($TOKEN_PRIVILEGES, 2, 0, (3 * $NTOKENINDEX))

EndIf

DllStructSetData($TOKEN_PRIVILEGES, 2, DllStructGetData($LUID, 1), (3 * ($NTOKENINDEX - 1)) + 1)

DllStructSetData($TOKEN_PRIVILEGES, 2, DllStructGetData($LUID, 2), (3 * ($NTOKENINDEX - 1)) + 2)

DllStructSetData($LUID, 1, 0)

DllStructSetData($LUID, 2, 0)

EndIf

$NTOKENINDEX += 1

WEnd

$RET = DllCall("advapi32.dll", "int", "AdjustTokenPrivileges", "hwnd", $HTOKEN, "int", 0, "ptr", DllStructGetPtr($TOKEN_PRIVILEGES), "int", DllStructGetSize($NEWTOKEN_PRIVILEGES), "ptr", DllStructGetPtr($NEWTOKEN_PRIVILEGES), "int*", 0)

$F = DllCall("kernel32.dll", "int", "GetLastError")

EndIf

$NEWTOKEN_PRIVILEGES = 0

$TOKEN_PRIVILEGES = 0

$LUID = 0

If $SP_AUXRET[0] = 0 Then Return 0

$SP_AUXRET = DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $HTOKEN)

If Not $RET[0] And Not $SP_AUXRET[0] Then Return 0

Return $RET[0]

EndFunc

 

#endregion _Memory

 

Func _ARRAYADD(ByRef $AVARRAY, $VVALUE)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, -1)

Local $IUBOUND = UBound($AVARRAY)

ReDim $AVARRAY[$IUBOUND + 1]

$AVARRAY[$IUBOUND] = $VVALUE

Return $IUBOUND

EndFunc

 

 

Func _ARRAYBINARYSEARCH(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(5, 0, -1)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(4, 0, -1)

Local $IMID = Int(($IEND + $ISTART) / 2)

If $AVARRAY[$ISTART] > $VVALUE Or $AVARRAY[$IEND] < $VVALUE Then Return SetError(2, 0, -1)

While $ISTART <= $IMID And $VVALUE <> $AVARRAY[$IMID]

If $VVALUE < $AVARRAY[$IMID] Then

$IEND = $IMID - 1

Else

$ISTART = $IMID + 1

EndIf

$IMID = Int(($IEND + $ISTART) / 2)

WEnd

If $ISTART > $IEND Then Return SetError(3, 0, -1)

Return $IMID

EndFunc

 

 

Func _ARRAYCOMBINATIONS(ByRef $AVARRAY, $ISET, $SDELIM = "")

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)

Local $IN = UBound($AVARRAY)

Local $IR = $ISET

Local $AIDX[$IR]

For $I = 0 To $IR - 1

$AIDX[$I] = $I

Next

Local $ITOTAL = __ARRAY_COMBINATIONS($IN, $IR)

Local $ILEFT = $ITOTAL

Local $ARESULT[$ITOTAL + 1]

$ARESULT[0] = $ITOTAL

Local $ICOUNT = 1

While $ILEFT > 0

__ARRAY_GETNEXT($IN, $IR, $ILEFT, $ITOTAL, $AIDX)

For $I = 0 To $ISET - 1

$ARESULT[$ICOUNT] &= $AVARRAY[$AIDX[$I]] & $SDELIM

Next

If $SDELIM <> "" Then $ARESULT[$ICOUNT] = StringTrimRight($ARESULT[$ICOUNT], 1)

$ICOUNT += 1

WEnd

Return $ARESULT

EndFunc

 

 

Func _ARRAYCONCATENATE(ByRef $AVARRAYTARGET, Const ByRef $AVARRAYSOURCE, $ISTART = 0)

If Not IsArray($AVARRAYTARGET) Then Return SetError(1, 0, 0)

If Not IsArray($AVARRAYSOURCE) Then Return SetError(2, 0, 0)

If UBound($AVARRAYTARGET, 0) <> 1 Then

If UBound($AVARRAYSOURCE, 0) <> 1 Then Return SetError(5, 0, 0)

Return SetError(3, 0, 0)

EndIf

If UBound($AVARRAYSOURCE, 0) <> 1 Then Return SetError(4, 0, 0)

Local $IUBOUNDTARGET = UBound($AVARRAYTARGET) - $ISTART, $IUBOUNDSOURCE = UBound($AVARRAYSOURCE)

ReDim $AVARRAYTARGET[$IUBOUNDTARGET + $IUBOUNDSOURCE]

For $I = $ISTART To $IUBOUNDSOURCE - 1

$AVARRAYTARGET[$IUBOUNDTARGET + $I] = $AVARRAYSOURCE[$I]

Next

Return $IUBOUNDTARGET + $IUBOUNDSOURCE

EndFunc

 

 

Func _ARRAYCREATE($V_0, $V_1 = 0, $V_2 = 0, $V_3 = 0, $V_4 = 0, $V_5 = 0, $V_6 = 0, $V_7 = 0, $V_8 = 0, $V_9 = 0, $V_10 = 0, $V_11 = 0, $V_12 = 0, $V_13 = 0, $V_14 = 0, $V_15 = 0, $V_16 = 0, $V_17 = 0, $V_18 = 0, $V_19 = 0, $V_20 = 0)

Local $AV_ARRAY[21] = [$V_0, $V_1, $V_2, $V_3, $V_4, $V_5, $V_6, $V_7, $V_8, $V_9, $V_10, $V_11, $V_12, $V_13, $V_14, $V_15, $V_16, $V_17, $V_18, $V_19, $V_20]

ReDim $AV_ARRAY[@NumParams]

Return $AV_ARRAY

EndFunc

 

 

Func _ARRAYDELETE(ByRef $AVARRAY, $IELEMENT)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

Local $IUBOUND = UBound($AVARRAY, 1) - 1

If Not $IUBOUND Then

$AVARRAY = ""

Return 0

EndIf

If $IELEMENT < 0 Then $IELEMENT = 0

If $IELEMENT > $IUBOUND Then $IELEMENT = $IUBOUND

Switch UBound($AVARRAY, 0)

Case 1

For $I = $IELEMENT To $IUBOUND - 1

$AVARRAY[$I] = $AVARRAY[$I + 1]

Next

ReDim $AVARRAY[$IUBOUND]

Case 2

Local $ISUBMAX = UBound($AVARRAY, 2) - 1

For $I = $IELEMENT To $IUBOUND - 1

For $J = 0 To $ISUBMAX

$AVARRAY[$I][$J] = $AVARRAY[$I + 1][$J]

Next

Next

ReDim $AVARRAY[$IUBOUND][$ISUBMAX + 1]

Case Else

Return SetError(3, 0, 0)

EndSwitch

Return $IUBOUND

EndFunc

 

 

Func _ARRAYDISPLAY(Const ByRef $AVARRAY, $STITLE = "Array: ListView Display", $IITEMLIMIT = -1, $ITRANSPOSE = 0, $SSEPARATOR = "", $SREPLACE = "|", $SHEADER = "")

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

Local $IDIMENSION = UBound($AVARRAY, 0), $IUBOUND = UBound($AVARRAY, 1) - 1, $ISUBMAX = UBound($AVARRAY, 2) - 1

If $IDIMENSION > 2 Then Return SetError(2, 0, 0)

If $SSEPARATOR = "" Then $SSEPARATOR = Chr(124)

If _ARRAYSEARCH($AVARRAY, $SSEPARATOR, 0, 0, 0, 1) <> -1 Then

For $X = 1 To 255

If $X >= 32 And $X <= 127 Then ContinueLoop

Local $SFIND = _ARRAYSEARCH($AVARRAY, Chr($X), 0, 0, 0, 1)

If $SFIND = -1 Then

$SSEPARATOR = Chr($X)

ExitLoop

EndIf

Next

EndIf

Local $VTMP, $IBUFFER = 64

Local $ICOLLIMIT = 250

Local $IONEVENTMODE = Opt("GUIOnEventMode", 0), $SDATASEPARATORCHAR = Opt("GUIDataSeparatorChar", $SSEPARATOR)

If $ISUBMAX < 0 Then $ISUBMAX = 0

If $ITRANSPOSE Then

$VTMP = $IUBOUND

$IUBOUND = $ISUBMAX

$ISUBMAX = $VTMP

EndIf

If $ISUBMAX > $ICOLLIMIT Then $ISUBMAX = $ICOLLIMIT

If $IITEMLIMIT < 1 Then $IITEMLIMIT = $IUBOUND

If $IUBOUND > $IITEMLIMIT Then $IUBOUND = $IITEMLIMIT

If $SHEADER = "" Then

$SHEADER = "Row "

For $I = 0 To $ISUBMAX

$SHEADER &= $SSEPARATOR & "Col " & $I

Next

EndIf

Local $AVARRAYTEXT[$IUBOUND + 1]

For $I = 0 To $IUBOUND

$AVARRAYTEXT[$I] = "[" & $I & "]"

For $J = 0 To $ISUBMAX

If $IDIMENSION = 1 Then

If $ITRANSPOSE Then

$VTMP = $AVARRAY[$J]

Else

$VTMP = $AVARRAY[$I]

EndIf

Else

If $ITRANSPOSE Then

$VTMP = $AVARRAY[$J][$I]

Else

$VTMP = $AVARRAY[$I][$J]

EndIf

EndIf

$VTMP = StringReplace($VTMP, $SSEPARATOR, $SREPLACE, 0, 1)

$AVARRAYTEXT[$I] &= $SSEPARATOR & $VTMP

$VTMP = StringLen($VTMP)

If $VTMP > $IBUFFER Then $IBUFFER = $VTMP

Next

Next

$IBUFFER += 1

Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 102

Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 64

Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 512

Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 2

Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 4

Local Const $_ARRAYCONSTANT_GUI_EVENT_CLOSE = -3

Local Const $_ARRAYCONSTANT_LVIF_PARAM = 4

Local Const $_ARRAYCONSTANT_LVIF_TEXT = 1

Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (4096 + 29)

Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (4096 + 4)

Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (4096 + 44)

Local Const $_ARRAYCONSTANT_LVM_INSERTITEMW = (4096 + 77)

Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (4096 + 54)

Local Const $_ARRAYCONSTANT_LVM_SETITEMW = (4096 + 76)

Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 32

Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 1

Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 8

Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 512

Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 65536

Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 131072

Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 262144

Local Const $_ARRAYCONSTANT_TAGLVITEM = "int Mask;int Item;int SubItem;int State;int StateMask;ptr Text;int TextMax;int Image;int Param;int Indent;int GroupID;int Columns;ptr pColumns"

Local $IADDMASK = BitOR($_ARRAYCONSTANT_LVIF_TEXT, $_ARRAYCONSTANT_LVIF_PARAM)

Local $TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]"), $PBUFFER = DllStructGetPtr($TBUFFER)

Local $TITEM = DllStructCreate($_ARRAYCONSTANT_TAGLVITEM), $PITEM = DllStructGetPtr($TITEM)

DllStructSetData($TITEM, "Param", 0)

DllStructSetData($TITEM, "Text", $PBUFFER)

DllStructSetData($TITEM, "TextMax", $IBUFFER)

Local $IWIDTH = 640, $IHEIGHT = 480

Local $HGUI = GUICreate($STITLE, $IWIDTH, $IHEIGHT, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX))

Local $AIGUISIZE = WinGetClientSize($HGUI)

Local $HLISTVIEW = GUICtrlCreateListView($SHEADER, 0, 0, $AIGUISIZE[0], $AIGUISIZE[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)

Local $HCOPY = GUICtrlCreateButton("Copy Selected", 3, $AIGUISIZE[1] - 23, $AIGUISIZE[0] - 6, 20)

GUICtrlSetResizing($HLISTVIEW, $_ARRAYCONSTANT_GUI_DOCKBORDERS)

GUICtrlSetResizing($HCOPY, $_ARRAYCONSTANT_GUI_DOCKLEFT + $_ARRAYCONSTANT_GUI_DOCKRIGHT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)

GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)

GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)

GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)

Local $AITEM

For $I = 0 To $IUBOUND

If GUICtrlCreateListViewItem($AVARRAYTEXT[$I], $HLISTVIEW) = 0 Then

$AITEM = StringSplit($AVARRAYTEXT[$I], $SSEPARATOR)

DllStructSetData($TBUFFER, "Text", $AITEM[1])

DllStructSetData($TITEM, "Item", $I)

DllStructSetData($TITEM, "SubItem", 0)

DllStructSetData($TITEM, "Mask", $IADDMASK)

GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_INSERTITEMW, 0, $PITEM)

DllStructSetData($TITEM, "Mask", $_ARRAYCONSTANT_LVIF_TEXT)

For $J = 2 To $AITEM[0]

DllStructSetData($TBUFFER, "Text", $AITEM[$J])

DllStructSetData($TITEM, "SubItem", $J - 1)

GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETITEMW, 0, $PITEM)

Next

EndIf

Next

$IWIDTH = 0

For $I = 0 To $ISUBMAX + 1

$IWIDTH += GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $I, 0)

Next

If $IWIDTH < 250 Then $IWIDTH = 230

$IWIDTH += 20

If $IWIDTH > @DesktopWidth Then $IWIDTH = @DesktopWidth - 100

WinMove($HGUI, "", (@DesktopWidth - $IWIDTH) / 2, Default, $IWIDTH)

GUISetState(@SW_SHOW, $HGUI)

While 1

Switch GUIGetMsg()

Case $_ARRAYCONSTANT_GUI_EVENT_CLOSE

ExitLoop

Case $HCOPY

Local $SCLIP = ""

Local $AICURITEMS[1] = [0]

For $I = 0 To GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)

If GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETITEMSTATE, $I, 2) Then

$AICURITEMS[0] += 1

ReDim $AICURITEMS[$AICURITEMS[0] + 1]

$AICURITEMS[$AICURITEMS[0]] = $I

EndIf

Next

If Not $AICURITEMS[0] Then

For $SITEM In $AVARRAYTEXT

$SCLIP &= $SITEM & @CRLF

Next

Else

For $I = 1 To UBound($AICURITEMS) - 1

$SCLIP &= $AVARRAYTEXT[$AICURITEMS[$I]] & @CRLF

Next

EndIf

ClipPut($SCLIP)

EndSwitch

WEnd

GUIDelete($HGUI)

Opt("GUIOnEventMode", $IONEVENTMODE)

Opt("GUIDataSeparatorChar", $SDATASEPARATORCHAR)

Return 1

EndFunc

 

 

Func _ARRAYFINDALL(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0, $ICASE = 0, $IPARTIAL = 0, $ISUBITEM = 0)

$ISTART = _ARRAYSEARCH($AVARRAY, $VVALUE, $ISTART, $IEND, $ICASE, $IPARTIAL, 1, $ISUBITEM)

If @error Then Return SetError(@error, 0, -1)

Local $IINDEX = 0, $AVRESULT[uBound($AVARRAY)]

Do

$AVRESULT[$IINDEX] = $ISTART

$IINDEX += 1

$ISTART = _ARRAYSEARCH($AVARRAY, $VVALUE, $ISTART + 1, $IEND, $ICASE, $IPARTIAL, 1, $ISUBITEM)

Until @error

ReDim $AVRESULT[$IINDEX]

Return $AVRESULT

EndFunc

 

 

Func _ARRAYINSERT(ByRef $AVARRAY, $IELEMENT, $VVALUE = "")

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)

Local $IUBOUND = UBound($AVARRAY) + 1

ReDim $AVARRAY[$IUBOUND]

For $I = $IUBOUND - 1 To $IELEMENT + 1 Step -1

$AVARRAY[$I] = $AVARRAY[$I - 1]

Next

$AVARRAY[$IELEMENT] = $VVALUE

Return $IUBOUND

EndFunc

 

 

Func _ARRAYMAX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)

Local $IRESULT = _ARRAYMAXINDEX($AVARRAY, $ICOMPNUMERIC, $ISTART, $IEND)

If @error Then Return SetError(@error, 0, "")

Return $AVARRAY[$IRESULT]

EndFunc

 

 

Func _ARRAYMAXINDEX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Or UBound($AVARRAY, 0) <> 1 Then Return SetError(1, 0, -1)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, -1)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(2, 0, -1)

Local $IMAXINDEX = $ISTART

If $ICOMPNUMERIC Then

For $I = $ISTART To $IEND

If Number($AVARRAY[$IMAXINDEX]) < Number($AVARRAY[$I]) Then $IMAXINDEX = $I

Next

Else

For $I = $ISTART To $IEND

If $AVARRAY[$IMAXINDEX] < $AVARRAY[$I] Then $IMAXINDEX = $I

Next

EndIf

Return $IMAXINDEX

EndFunc

 

 

Func _ARRAYMIN(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)

Local $IRESULT = _ARRAYMININDEX($AVARRAY, $ICOMPNUMERIC, $ISTART, $IEND)

If @error Then Return SetError(@error, 0, "")

Return $AVARRAY[$IRESULT]

EndFunc

 

 

Func _ARRAYMININDEX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, -1)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(2, 0, -1)

Local $IMININDEX = $ISTART

If $ICOMPNUMERIC Then

For $I = $ISTART To $IEND

If Number($AVARRAY[$IMININDEX]) > Number($AVARRAY[$I]) Then $IMININDEX = $I

Next

Else

For $I = $ISTART To $IEND

If $AVARRAY[$IMININDEX] > $AVARRAY[$I] Then $IMININDEX = $I

Next

EndIf

Return $IMININDEX

EndFunc

 

 

Func _ARRAYPERMUTE(ByRef $AVARRAY, $SDELIM = "")

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)

Local $ISIZE = UBound($AVARRAY), $IFACTORIAL = 1, $AIDX[$ISIZE], $ARESULT[1], $ICOUNT = 1

For $I = 0 To $ISIZE - 1

$AIDX[$I] = $I

Next

For $I = $ISIZE To 1 Step -1

$IFACTORIAL *= $I

Next

ReDim $ARESULT[$IFACTORIAL + 1]

$ARESULT[0] = $IFACTORIAL

__ARRAY_EXETERINTERNAL($AVARRAY, 0, $ISIZE, $SDELIM, $AIDX, $ARESULT, $ICOUNT)

Return $ARESULT

EndFunc

 

 

Func _ARRAYPOP(ByRef $AVARRAY)

If (Not IsArray($AVARRAY)) Then Return SetError(1, 0, "")

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, "")

Local $IUBOUND = UBound($AVARRAY) - 1, $SLASTVAL = $AVARRAY[$IUBOUND]

If Not $IUBOUND Then

$AVARRAY = ""

Else

ReDim $AVARRAY[$IUBOUND]

EndIf

Return $SLASTVAL

EndFunc

 

 

Func _ARRAYPUSH(ByRef $AVARRAY, $VVALUE, $IDIRECTION = 0)

If (Not IsArray($AVARRAY)) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, 0)

Local $IUBOUND = UBound($AVARRAY) - 1

If IsArray($VVALUE) Then

Local $IUBOUNDS = UBound($VVALUE)

If ($IUBOUNDS - 1) > $IUBOUND Then Return SetError(2, 0, 0)

If $IDIRECTION Then

For $I = $IUBOUND To $IUBOUNDS Step -1

$AVARRAY[$I] = $AVARRAY[$I - $IUBOUNDS]

Next

For $I = 0 To $IUBOUNDS - 1

$AVARRAY[$I] = $VVALUE[$I]

Next

Else

For $I = 0 To $IUBOUND - $IUBOUNDS

$AVARRAY[$I] = $AVARRAY[$I + $IUBOUNDS]

Next

For $I = 0 To $IUBOUNDS - 1

$AVARRAY[$I + $IUBOUND - $IUBOUNDS + 1] = $VVALUE[$I]

Next

EndIf

Else

If $IDIRECTION Then

For $I = $IUBOUND To 1 Step -1

$AVARRAY[$I] = $AVARRAY[$I - 1]

Next

$AVARRAY[0] = $VVALUE

Else

For $I = 0 To $IUBOUND - 1

$AVARRAY[$I] = $AVARRAY[$I + 1]

Next

$AVARRAY[$IUBOUND] = $VVALUE

EndIf

EndIf

Return 1

EndFunc

 

 

Func _ARRAYREVERSE(ByRef $AVARRAY, $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, 0)

Local $VTMP, $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(2, 0, 0)

For $I = $ISTART To Int(($ISTART + $IEND - 1) / 2)

$VTMP = $AVARRAY[$I]

$AVARRAY[$I] = $AVARRAY[$IEND]

$AVARRAY[$IEND] = $VTMP

$IEND -= 1

Next

Return 1

EndFunc

 

 

Func _ARRAYSEARCH(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0, $ICASE = 0, $IPARTIAL = 0, $IFORWARD = 1, $ISUBITEM = -1)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)

If UBound($AVARRAY, 0) > 2 Or UBound($AVARRAY, 0) < 1 Then Return SetError(2, 0, -1)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(4, 0, -1)

Local $ISTEP = 1

If Not $IFORWARD Then

Local $ITMP = $ISTART

$ISTART = $IEND

$IEND = $ITMP

$ISTEP = -1

EndIf

Switch UBound($AVARRAY, 0)

Case 1

If Not $IPARTIAL Then

If Not $ICASE Then

For $I = $ISTART To $IEND Step $ISTEP

If $AVARRAY[$I] = $VVALUE Then Return $I

Next

Else

For $I = $ISTART To $IEND Step $ISTEP

If $AVARRAY[$I] == $VVALUE Then Return $I

Next

EndIf

Else

For $I = $ISTART To $IEND Step $ISTEP

If StringInStr($AVARRAY[$I], $VVALUE, $ICASE) > 0 Then Return $I

Next

EndIf

Case 2

Local $IUBOUNDSUB = UBound($AVARRAY, 2) - 1

If $ISUBITEM > $IUBOUNDSUB Then $ISUBITEM = $IUBOUNDSUB

If $ISUBITEM < 0 Then

$ISUBITEM = 0

Else

$IUBOUNDSUB = $ISUBITEM

EndIf

For $J = $ISUBITEM To $IUBOUNDSUB

If Not $IPARTIAL Then

If Not $ICASE Then

For $I = $ISTART To $IEND Step $ISTEP

If $AVARRAY[$I][$J] = $VVALUE Then Return $I

Next

Else

For $I = $ISTART To $IEND Step $ISTEP

If $AVARRAY[$I][$J] == $VVALUE Then Return $I

Next

EndIf

Else

For $I = $ISTART To $IEND Step $ISTEP

If StringInStr($AVARRAY[$I][$J], $VVALUE, $ICASE) > 0 Then Return $I

Next

EndIf

Next

Case Else

Return SetError(7, 0, -1)

EndSwitch

Return SetError(6, 0, -1)

EndFunc

 

 

Func _ARRAYSORT(ByRef $AVARRAY, $IDESCENDING = 0, $ISTART = 0, $IEND = 0, $ISUBITEM = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(2, 0, 0)

Switch UBound($AVARRAY, 0)

Case 1

__ARRAYQUICKSORT1D($AVARRAY, $ISTART, $IEND)

If $IDESCENDING Then _ARRAYREVERSE($AVARRAY, $ISTART, $IEND)

Case 2

Local $ISUBMAX = UBound($AVARRAY, 2) - 1

If $ISUBITEM > $ISUBMAX Then Return SetError(3, 0, 0)

If $IDESCENDING Then

$IDESCENDING = -1

Else

$IDESCENDING = 1

EndIf

__ARRAYQUICKSORT2D($AVARRAY, $IDESCENDING, $ISTART, $IEND, $ISUBITEM, $ISUBMAX)

Case Else

Return SetError(4, 0, 0)

EndSwitch

Return 1

EndFunc

 

 

Func __ARRAYQUICKSORT1D(ByRef $AVARRAY, ByRef $ISTART, ByRef $IEND)

If $IEND <= $ISTART Then Return

Local $VTMP

If ($IEND - $ISTART) < 15 Then

Local $VCUR

For $I = $ISTART + 1 To $IEND

$VTMP = $AVARRAY[$I]

If IsNumber($VTMP) Then

For $J = $I - 1 To $ISTART Step -1

$VCUR = $AVARRAY[$J]

If ($VTMP >= $VCUR And IsNumber($VCUR)) Or (Not IsNumber($VCUR) And StringCompare($VTMP, $VCUR) >= 0) Then ExitLoop

$AVARRAY[$J + 1] = $VCUR

Next

Else

For $J = $I - 1 To $ISTART Step -1

If (StringCompare($VTMP, $AVARRAY[$J]) >= 0) Then ExitLoop

$AVARRAY[$J + 1] = $AVARRAY[$J]

Next

EndIf

$AVARRAY[$J + 1] = $VTMP

Next

Return

EndIf

Local $L = $ISTART, $R = $IEND, $VPIVOT = $AVARRAY[int(($ISTART + $IEND) / 2)], $FNUM = IsNumber($VPIVOT)

Do

If $FNUM Then

While ($AVARRAY[$L] < $VPIVOT And IsNumber($AVARRAY[$L])) Or (Not IsNumber($AVARRAY[$L]) And StringCompare($AVARRAY[$L], $VPIVOT) < 0)

$L += 1

WEnd

While ($AVARRAY[$R] > $VPIVOT And IsNumber($AVARRAY[$R])) Or (Not IsNumber($AVARRAY[$R]) And StringCompare($AVARRAY[$R], $VPIVOT) > 0)

$R -= 1

WEnd

Else

While (StringCompare($AVARRAY[$L], $VPIVOT) < 0)

$L += 1

WEnd

While (StringCompare($AVARRAY[$R], $VPIVOT) > 0)

$R -= 1

WEnd

EndIf

If $L <= $R Then

$VTMP = $AVARRAY[$L]

$AVARRAY[$L] = $AVARRAY[$R]

$AVARRAY[$R] = $VTMP

$L += 1

$R -= 1

EndIf

Until $L > $R

__ARRAYQUICKSORT1D($AVARRAY, $ISTART, $R)

__ARRAYQUICKSORT1D($AVARRAY, $L, $IEND)

EndFunc

 

 

Func __ARRAYQUICKSORT2D(ByRef $AVARRAY, ByRef $ISTEP, ByRef $ISTART, ByRef $IEND, ByRef $ISUBITEM, ByRef $ISUBMAX)

If $IEND <= $ISTART Then Return

Local $VTMP, $L = $ISTART, $R = $IEND, $VPIVOT = $AVARRAY[int(($ISTART + $IEND) / 2)][$ISUBITEM], $FNUM = IsNumber($VPIVOT)

Do

If $FNUM Then

While ($ISTEP * ($AVARRAY[$L][$ISUBITEM] - $VPIVOT) < 0 And IsNumber($AVARRAY[$L][$ISUBITEM])) Or (Not IsNumber($AVARRAY[$L][$ISUBITEM]) And $ISTEP * StringCompare($AVARRAY[$L][$ISUBITEM], $VPIVOT) < 0)

$L += 1

WEnd

While ($ISTEP * ($AVARRAY[$R][$ISUBITEM] - $VPIVOT) > 0 And IsNumber($AVARRAY[$R][$ISUBITEM])) Or (Not IsNumber($AVARRAY[$R][$ISUBITEM]) And $ISTEP * StringCompare($AVARRAY[$R][$ISUBITEM], $VPIVOT) > 0)

$R -= 1

WEnd

Else

While ($ISTEP * StringCompare($AVARRAY[$L][$ISUBITEM], $VPIVOT) < 0)

$L += 1

WEnd

While ($ISTEP * StringCompare($AVARRAY[$R][$ISUBITEM], $VPIVOT) > 0)

$R -= 1

WEnd

EndIf

If $L <= $R Then

For $I = 0 To $ISUBMAX

$VTMP = $AVARRAY[$L][$I]

$AVARRAY[$L][$I] = $AVARRAY[$R][$I]

$AVARRAY[$R][$I] = $VTMP

Next

$L += 1

$R -= 1

EndIf

Until $L > $R

__ARRAYQUICKSORT2D($AVARRAY, $ISTEP, $ISTART, $R, $ISUBITEM, $ISUBMAX)

__ARRAYQUICKSORT2D($AVARRAY, $ISTEP, $L, $IEND, $ISUBITEM, $ISUBMAX)

EndFunc

 

 

Func _ARRAYSWAP(ByRef $VITEM1, ByRef $VITEM2)

Local $VTMP = $VITEM1

$VITEM1 = $VITEM2

$VITEM2 = $VTMP

EndFunc

 

 

Func _ARRAYTOCLIP(Const ByRef $AVARRAY, $ISTART = 0, $IEND = 0)

Local $SRESULT = _ARRAYTOSTRING($AVARRAY, @CR, $ISTART, $IEND)

If @error Then Return SetError(@error, 0, 0)

Return ClipPut($SRESULT)

EndFunc

 

 

Func _ARRAYTOSTRING(Const ByRef $AVARRAY, $SDELIM = "|", $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, "")

If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, "")

Local $SRESULT, $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(2, 0, "")

For $I = $ISTART To $IEND

$SRESULT &= $AVARRAY[$I] & $SDELIM

Next

Return StringTrimRight($SRESULT, StringLen($SDELIM))

EndFunc

 

 

Func _ARRAYTRIM(ByRef $AVARRAY, $ITRIMNUM, $IDIRECTION = 0, $ISTART = 0, $IEND = 0)

If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)

If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)

Local $IUBOUND = UBound($AVARRAY) - 1

If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND

If $ISTART < 0 Then $ISTART = 0

If $ISTART > $IEND Then Return SetError(5, 0, 0)

If $IDIRECTION Then

For $I = $ISTART To $IEND

$AVARRAY[$I] = StringTrimRight($AVARRAY[$I], $ITRIMNUM)

Next

Else

For $I = $ISTART To $IEND

$AVARRAY[$I] = StringTrimLeft($AVARRAY[$I], $ITRIMNUM)

Next

EndIf

Return 1

EndFunc

 

 

Func _ARRAYUNIQUE($AARRAY, $IDIMENSION = 1, $IBASE = 0, $ICASE = 0, $VDELIM = "|")

Local $IUBOUNDDIM

If $VDELIM = "|" Then $VDELIM = Chr(1)

If Not IsArray($AARRAY) Then Return SetError(1, 0, 0)

If Not $IDIMENSION > 0 Then

Return SetError(3, 0, 0)

Else

$IUBOUNDDIM = UBound($AARRAY, 1)

If @error Then Return SetError(3, 0, 0)

If $IDIMENSION > 1 Then

Local $AARRAYTMP[1]

For $I = 0 To $IUBOUNDDIM - 1

_ARRAYADD($AARRAYTMP, $AARRAY[$I][$IDIMENSION - 1])

Next

_ARRAYDELETE($AARRAYTMP, 0)

Else

If UBound($AARRAY, 0) = 1 Then

Dim $AARRAYTMP[1]

For $I = 0 To $IUBOUNDDIM - 1

_ARRAYADD($AARRAYTMP, $AARRAY[$I])

Next

_ARRAYDELETE($AARRAYTMP, 0)

Else

Dim $AARRAYTMP[1]

For $I = 0 To $IUBOUNDDIM - 1

_ARRAYADD($AARRAYTMP, $AARRAY[$I][$IDIMENSION - 1])

Next

_ARRAYDELETE($AARRAYTMP, 0)

EndIf

EndIf

EndIf

Local $SHOLD

For $ICC = $IBASE To UBound($AARRAYTMP) - 1

If Not StringInStr($VDELIM & $SHOLD, $VDELIM & $AARRAYTMP[$ICC] & $VDELIM, $ICASE) Then $SHOLD &= $AARRAYTMP[$ICC] & $VDELIM

Next

If $SHOLD Then

$AARRAYTMP = StringSplit(StringTrimRight($SHOLD, StringLen($VDELIM)), $VDELIM, 1)

Return $AARRAYTMP

EndIf

Return SetError(2, 0, 0)

EndFunc

 

 

Func __ARRAY_EXETERINTERNAL(ByRef $AVARRAY, $ISTART, $ISIZE, $SDELIM, ByRef $AIDX, ByRef $ARESULT, ByRef $ICOUNT)

If $ISTART == $ISIZE - 1 Then

For $I = 0 To $ISIZE - 1

$ARESULT[$ICOUNT] &= $AVARRAY[$AIDX[$I]] & $SDELIM

Next

If $SDELIM <> "" Then $ARESULT[$ICOUNT] = StringTrimRight($ARESULT[$ICOUNT], 1)

$ICOUNT += 1

Else

Local $ITEMP

For $I = $ISTART To $ISIZE - 1

$ITEMP = $AIDX[$I]

$AIDX[$I] = $AIDX[$ISTART]

$AIDX[$ISTART] = $ITEMP

__ARRAY_EXETERINTERNAL($AVARRAY, $ISTART + 1, $ISIZE, $SDELIM, $AIDX, $ARESULT, $ICOUNT)

$AIDX[$ISTART] = $AIDX[$I]

$AIDX[$I] = $ITEMP

Next

EndIf

EndFunc

 

 

Func __ARRAY_COMBINATIONS($IN, $IR)

Local $I_TOTAL = 1

For $I = $IR To 1 Step -1

$I_TOTAL *= ($IN / $I)

$IN -= 1

Next

Return Round($I_TOTAL)

EndFunc

 

 

Func __ARRAY_GETNEXT($IN, $IR, ByRef $ILEFT, $ITOTAL, ByRef $AIDX)

If $ILEFT == $ITOTAL Then

$ILEFT -= 1

Return

EndIf

Local $I = $IR - 1

While $AIDX[$I] == $IN - $IR + $I

$I -= 1

WEnd

$AIDX[$I] += 1

For $J = $I + 1 To $IR - 1

$AIDX[$J] = $AIDX[$I] + $J - $I

Next

$ILEFT -= 1

EndFunc

 

HotKeySet("{F9}", "StartOrStop")

Opt("GUICloseOnESC", 0)

Opt("GUIOnEventMode", 1)

Opt("TrayAutoPause", 0)

Opt("TrayMenuMode", 1)

Global $CHAT = 11463304, $WHISPER = 0, $LASTCHAT = 11463316

Global $EXP_NEEDED[151], $HADTARGET = 0, $DISTANCE = 7, $SITTING = 0, $ATHOME = 0

Global $SELECTED_SPECIAL_INFO[300] = ["None", "Incr. Movement", "Unknown Special", "Incr. Defence", "Incr. Mag Resist", "Incr. Attack", "Incr. Magical Attk", "Sacrificial Assault", "Incr. Life", "Weak"]

Global $PET_HUNGER_INFO[300] = ["Full", "Satisfied", "Peckish", "Hungry", "Hungry", "Hungry", "Hungry"]

Global $CHAR_CLASS_INFO[300] = ["Blademaster", "Wizard", "Psychic", "Venomancer", "Barbarian", "Assassin", "Archer", "Cleric", "Seeker", "Mystic", "None"]

Global $HERBS[31] = ["", "Nectar", "Salvia Root", "Ageratum", "Golden Herb", "Tranquillia Herb", "Elderwood", "Elecampane", "Realgar", "Palo Herb", "Tuckahoe", "Crane Herb", "Black Henbane", "Fleece-flower Root", "Green Berry", "Ligumaloes Wood", "Valdia Root", "Serpentine Herb", "Ox Bezoar", "Tulip", "Perfumedew Herb", "Butterfly Herb", "Tiger-ear Herb", "Red Berry", "Worm Sprouts", "White Berry", "Devilwood", "Scented Fungus", "Tiery Herb", "Longen Herb"]

Global $RESOURCES[23] = ["", "Withered Tree Root", "Old Tree Root", "Willow Stake", "Peatree Stake", "Dragonwood Stake", "Cinnabar Ore", "Iron Ore", "Black Iron Ore", "Manganese Iron Ore", "Hsuan Iron Ore", "Meteorite Iron Ore", "Sandstone Rock", "Gravel Pile", "Rubstone Rock", "Corundum Rock", "Granite ROck", "Rough Coal Stack", "Coal Stack", "Fine Coal Stack", "Volcanic Coal Stack", "Lava Coal Stack"]

Global $KEYCODE = "--|{F1}|{F2}|{F3}|{F4}|{F5}|{F6}|{F7}|{F8}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}|{9}", $COUNT = 0, $LOG = "", $LOGS = "", $MOBLISTFORMOPEN = "0", $MOVEING = "0", $GATHERING = "0"

Global $SOFTWARE_TITLE = "Afford Bot 1.0", $SOFTWARE_VERSION = "", $SOFTWARE_CONFIG = "Afford-Bot-Config.ini", $STOP = True, $CURRENT_MOB_LIST[100], $MOB_LIST_COUNT = "0", $ACTIVE_SKILL = "0", $ACTIVE_WEAPONS = "0", $TIMER_CHANGE_WEAPON = "0", $TIMER_APOTHOCARY_RAIL = "0", $RAIL_LIST_COUNT = "0"

Global $ACTIONFLAG, $MOVEFLAG, $CASTING, $LVL, $CLASS, $HP, $MP, $MAXHP, $HPPERC, $MAXMP, $EXP, $STR, $DEX, $VIT, $MAG, $SPIRIT, $GOLD, $AP, $X, $Y, $Z, $NPCID, $RESOURCEID, $LASTGATHERED, $LASTSHOPCHECKED, $CURRENTRAIL, $PACKFULL, $PLAYERCOUNT, $FORM_PARTY, $MOVEMODE, $CHARSTATE, $PLAYERCOUNT, $HEALTAR, $FLYTOESCAPE = 0

Global $LAST_HP_READ, $FZ, $HEALTAR, $TEMP_TAR, $TAR, $TAR_BASE, $DEFTAR = 0, $DEFTAR2 = 0, $TARGET, $TID, $TARNAME, $TARLVL, $TARHP, $TARMAXHP, $TARAPI, $TARX, $LASTTARX[3], $TARY, $LASTTARY[3], $TARZ, $LASTTARZ[3], $TARSPEC, $LAST_KILLEDTIME, $LAST_KILLED, $KILLS_COUNT, $TARDIS, $LEADER, $KILL = 0, $LASTRAILX = 0, $LASTRAILY = 0, $LASTRAILZ = 0, $HIGHT = 0, $REST = 0

Global $CHECK_HEALPET = "0", $INPUT_PETSLOT = "0", $INPUT_PETHP = "0", $INPUT_PETHEALKEY = "0", $INPUT_PETREZKEY = "0", $MOBLISTOFORMOPEN = "0", $MOVEX = "0", $MOVEY = "0", $MOVEZ = "0", $PETHP[1], $PETHUNGER[1]

Global $BUFFS_TIMER[9], $BUFFS_TIMER_DIFF[9], $SKILL_DELAY_CHECK[10], $PARTYBUFFS_TIMER[9], $PARTYBUFFS_TIMER_DIFF[9]

Global $SOFTWARE_OFFSET_CONFIG = "Afford-Bot.BR", $CFG_OFFSET_ROOT_KEY = "Custom_32_Offsets_In_Decimal", $CFG_BASEADDRESS_ROOT_KEY = "Perfect_World_Base_Address_In_Decimal", $CFG_BASEADDRESS_APP_KEY = "Application_Title", $CFG_BASEADDRESS_KEY = "Base_Address", $CFG_BASEADDRESSFZ_KEY = "Base_AddressFZ", $CFG_BASEADDRESSEXP_KEY = "Base_AddressEXP"

Global $APP_BASE_ADDRESS = "0x" & Hex(IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_BASEADDRESS_ROOT_KEY, $CFG_BASEADDRESS_KEY, "")), $APP_BASE_ADDRESSFZ = "0x" & Hex(IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_BASEADDRESS_ROOT_KEY, $CFG_BASEADDRESSFZ_KEY, "")), $APP_BASE_ADDRESSEXP = "0x" & Hex(IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_BASEADDRESS_ROOT_KEY, $CFG_BASEADDRESSEXP_KEY, ""))

Global $APP_TITLE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_BASEADDRESS_ROOT_KEY, $CFG_BASEADDRESS_APP_KEY, "Perfect World International"), $HANDLE = ControlGetHandle($APP_TITLE, "", ""), $KERNEL32 = DllOpen("kernel32.dll")

Global $PROCESS_ID = WinGetProcess($APP_TITLE), $PROCESS_INFORMATION = _MEMORYOPEN($PROCESS_ID), $APP_PATH = _PROCESSIDPATH($PROCESS_ID)

Global $ANSWER

If @error Then

$ANSWER = InputBox("Can´t Find Perfect World", "Impossible to detect your Perfect World. If you have another client you would like to attach to, type the name of that client into the field and click OK. Or click Cancel to Exit", "", "", -1, -1, 0, 0)

If $ANSWER = "" Then

Exit

Else

Global $APP_TITLE = $ANSWER, $HANDLE = ControlGetHandle($APP_TITLE, "", "")

Global $PROCESS_ID = WinGetProcess($APP_TITLE), $PROCESS_INFORMATION = _MEMORYOPEN($PROCESS_ID), $APP_PATH = _PROCESSIDPATH($PROCESS_ID)

If @error Then

MsgBox(0, "Can´t Find Perfect World", "Impossible to detect your Perfect World. Review settings in " & $SOFTWARE_OFFSET_CONFIG & ". Set the correct value for " & $CFG_BASEADDRESS_APP_KEY & " and for " & $CFG_BASEADDRESS_KEY & " properties.")

EndIf

EndIf

EndIf

SETEXPLIST()

Global $SOFTWARE_OFFSET_CONFIG = "Afford-Bot.BR", $CFG_OFFSET_ROOT_KEY = "Custom_32_Offsets_In_Decimal"

Global $CFG_OFFSET_PETBASE = "PetBase_OffSet", $CFG_OFFSET_PETHP = "PetHP_OffSet", $CFG_OFFSET_PETHUNGER = "PetHunger_OffSet"

$FILE = FileOpen($APP_PATH, 16)

$DATA = FileRead($FILE, FileGetSize($APP_PATH))

FileClose($FILE)

$SELECT = StringRegExp($DATA, "(A1(.{8})578B482081C1EC000000E8(.{8}))", 1)

If @error Then

MsgBox(0, "Issues Attaching For Offsets", "There may be another bot attached to this process. Please close that bot and try again")

Exit

EndIf

$OPBASE = REV($SELECT[1])

$PICK = StringRegExp($DATA, "(8B15(.{8})50518B4A2081C1EC000000E8(.{8}))", 1)

$PACKET = StringRegExp($DATA, "6A21" & "E8.{8}" & "8BF0" & "83C404" & "85F6" & "74.{2}" & "8A442418" & "668B4C2410" & "66C7060000" & "88461E" & "8B442408" & "66894E1A" & "D9442414" & "8B10" & "895602" & "8B4804" & "D80D.{8}" & "894E06" & "8B5008" & "8B44240C" & "89560A" & "D805.{8}" & "8B08" & "894E0E" & "8B5004" & "895612" & "8B4008" & "894616" & "E8.{8}" & "668B4C241C" & "6689461C" & "66894E1F" & "8B15(.{8})" & "6A21" & "56" & "8B4A20" & "E8(.{8})" & "56" & "E8.{8}" & "83C404" & "5E" & "C3", 2)

Global $REALBASEADDRESS = "0x" & REV($SELECT[1])

$CALL_POS = StringInStr($DATA, $SELECT[0]) / 2 + 4194318

Global $SELECT_CALL = "0x" & Hex(("0x" & REV($SELECT[2])) + $CALL_POS + 5)

$CALL_POS = StringInStr($DATA, $PICK) / 2 + 4194320

$CALL_POS = StringInStr($DATA, $PACKET[0]) / 2 + 4194427

Global $SENDPACKETADDRESS = "0x" & Hex(Dec(REV($PACKET[2])) + $CALL_POS + 6)

Global $OFFSET_TAR[3], $CFG_OFFSET_TAR = "Target_OffSet"

$OFFSET_TAR[1] = 52

$OFFSET_TAR[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_TAR, "")

Global $OFFSET_CASTING, $OFFSET_NAME, $OFFSET_LVL, $OFFSET_CLASS, $OFFSET_HP, $OFFSET_CHARID, $OFFSET_MAXHP, $OFFSET_MAX_HP, $OFFSET_MP, $OFFSET_MAX_MP, $OFFSET_MAXMP, $OFFSET_EXP, $OFFSET_STR, $OFFSET_DEX, $OFFSET_VIT, $OFFSET_MAG, $OFFSET_SPIRIT, $OFFSET_GOLD, $OFFSET_CHI, $OFFSET_AP, $OFFSET_X, $OFFSET_Y, $OFFSET_Z, $OFFSET_TAR, $OFFSET_TARHP, $OFFSET_TARMAXHP, $OFFSET_TARNAME, $OFFSET_TARLVL, $OFFSET_TARSPEC

Global $CFG_OFFSET_CASTING = "CASTING_OffSet", $OFFSET_CASTING = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_CASTING, "")

Global $CFG_OFFSET_NAME = "NAME_OffSet", $OFFSET_NAME = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NAME, "")

Global $CFG_OFFSET_LVL = "LVL_OffSet", $OFFSET_LVL = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_LVL, "")

Global $CFG_OFFSET_CLASS = "CLASS_OffSet", $OFFSET_CLASS = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_CLASS, "")

Global $CFG_OFFSET_HP = "HP_OffSet", $OFFSET_HP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_HP, "")

Global $CFG_OFFSET_CHARID = "CHARID_OffSet", $OFFSET_CHARID = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_CHARID, "")

Global $CFG_OFFSET_MAXHP = "MaxHP_OffSet", $OFFSET_MAX_HP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MAXHP, "")

Global $CFG_OFFSET_MP = "MP_OffSet", $OFFSET_MP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MP, "")

Global $CFG_OFFSET_MAXMP = "MaxMP_OffSet", $OFFSET_MAX_MP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MAXMP, "")

Global $CFG_OFFSET_EXP = "EXP_OffSet", $OFFSET_EXP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_EXP, "")

Global $CFG_OFFSET_STR = "STR_OffSet", $OFFSET_STR = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_STR, "")

Global $CFG_OFFSET_DEX = "DEX_OffSet", $OFFSET_DEX = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_DEX, "")

Global $CFG_OFFSET_VIT = "VIT_OffSet", $OFFSET_VIT = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_VIT, "")

Global $CFG_OFFSET_MAG = "MAG_OffSet", $OFFSET_MAG = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MAG, "")

Global $CFG_OFFSET_SPIRIT = "SPIRIT_OffSet", $OFFSET_SPIRIT = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_SPIRIT, "")

Global $CFG_OFFSET_GOLD = "Gold_Offset", $OFFSET_GOLD = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_GOLD, "")

Global $CFG_OFFSET_FLYSPEED = "FlySpeed_Offset", $OFFSET_FLYSPEED = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_FLYSPEED, "")

Global $CFG_OFFSET_FLYCOUNTER = "FlyCounter_OffSet", $OFFSET_FLYCOUNTER = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_FLYCOUNTER, "")

Global $CFG_OFFSET_MOVEMODE = "MoveMode_OffSet", $OFFSET_MOVEMODE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MOVEMODE, "")

Global $CFG_OFFSET_CHARSTATE = "CharState_OffSet", $OFFSET_CHARSTATE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_CHARSTATE, "")

Global $CFG_OFFSET_CHI = "CHI_OffSet", $OFFSET_CHI = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_CHI, "")

Global $CFG_OFFSET_MAXCHI = "MAXCHI_OffSet", $OFFSET_MAXCHI = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_MAXCHI, "")

Global $CFG_OFFSET_X = "X_OffSet", $OFFSET_X = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_X, "")

Global $CFG_OFFSET_Y = "Y_OffSet", $OFFSET_Y = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Y, "")

Global $CFG_OFFSET_Z = "Z_OffSet", $OFFSET_Z = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Z, "")

Global $OFFSET_PLAYERBASE[4], $CFG_OFFSET_PLAYERBASE = "PlayerBase_OffSet"

$OFFSET_PLAYERBASE[1] = 28

$OFFSET_PLAYERBASE[2] = 32

$OFFSET_PLAYERBASE[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERBASE, "")

Global $OFFSET_PLAYERCOUNT[4], $CFG_OFFSET_PLAYERCOUNT = "PlayerCount_OffSet"

$OFFSET_PLAYERCOUNT[1] = 28

$OFFSET_PLAYERCOUNT[2] = 32

$OFFSET_PLAYERCOUNT[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERCOUNT, "")

Global $CFG_OFFSET_PLAYERID = "PlayerID_OffSet", $OFFSET_PLAYERID = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERID, "")

Global $CFG_OFFSET_PLAYERLVL = "PlayerLVL_OffSet", $OFFSET_PLAYERLVL = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERLVL, "")

Global $CFG_OFFSET_PLAYERNAME = "PlayerName_OffSet", $OFFSET_PLAYERNAME = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERNAME, "")

Global $CFG_OFFSET_PLAYERHP = "PlayerHP_OffSet", $OFFSET_PLAYERHP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERHP, "")

Global $CFG_OFFSET_PLAYERMAXHP = "PlayerMAXHP_OffSet", $OFFSET_PLAYERMAXHP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERMAXHP, "")

Global $CFG_OFFSET_PLAYERCLASS = "PlayerClass_OffSet", $OFFSET_PLAYERCLASS = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PLAYERCLASS, "")

Global $OFFSET_PLAYERX = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_X, "")

Global $OFFSET_PLAYERY = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Y, "")

Global $OFFSET_PLAYERZ = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Z, "")

Global $OFFSET_NPCBASE[4], $CFG_OFFSET_NPCBASE = "NPCBase_OffSet"

$OFFSET_NPCBASE[1] = 28

$OFFSET_NPCBASE[2] = 36

$OFFSET_NPCBASE[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCBASE, "")

Global $OFFSET_NPCCOUNT[4], $CFG_OFFSET_NPCCOUNT = "NPCCount_OffSet"

$OFFSET_NPCCOUNT[1] = 28

$OFFSET_NPCCOUNT[2] = 36

$OFFSET_NPCCOUNT[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCCOUNT, "")

Global $CFG_OFFSET_NPCID = "NPCID_OffSet", $OFFSET_NPCID = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCID, "")

Global $CFG_OFFSET_NPCPAI = "NPCPAI_OffSet", $OFFSET_NPCPAI = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCPAI, "")

Global $CFG_OFFSET_NPCNAME = "NPCName_OffSet", $OFFSET_NPCNAME = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCNAME, "")

Global $CFG_OFFSET_NPCLVL = "NPCLVL_OffSet", $OFFSET_NPCLVL = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCLVL, "")

Global $CFG_OFFSET_NPCHP = "NPCHP_OffSet", $OFFSET_NPCHP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCHP, "")

Global $CFG_OFFSET_NPCMAXHP = "NPCMAXHP_OffSet", $OFFSET_NPCMAXHP = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCMAXHP, "")

Global $CFG_OFFSET_NPCSPECIAL = "NPCSpecial_OffSet", $OFFSET_NPCSPECIAL = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_NPCSPECIAL, "")

Global $OFFSET_NPCX = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_X, "")

Global $OFFSET_NPCY = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Y, "")

Global $OFFSET_NPCZ = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Z, "")

Global $OFFSET_ITEMBASE[4], $CFG_OFFSET_ITEMBASE = "ItemBase_OffSet"

$OFFSET_ITEMBASE[1] = 28

$OFFSET_ITEMBASE[2] = 40

$OFFSET_ITEMBASE[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ITEMBASE, "")

Global $CFG_OFFSET_ITEMID = "ItemID_OffSet", $OFFSET_ITEMID = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ITEMID, "")

Global $CFG_OFFSET_ITEMSN = "ItemSN_OffSet", $OFFSET_ITEMSN = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ITEMSN, "")

Global $CFG_OFFSET_ITEMNAME = "ItemName_OffSet", $OFFSET_ITEMNAME = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ITEMNAME, "")

Global $OFFSET_ITEMX = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_X, "")

Global $OFFSET_ITEMY = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Y, "")

Global $OFFSET_ITEMZ = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_Z, "")

Global $OFFSET_INVENTORYBASE[3], $CFG_OFFSET_INVENTORYBASE = "InventoryBase_OffSet"

$OFFSET_INVENTORYBASE[1] = 3180

$OFFSET_INVENTORYBASE[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYBASE, "")

Global $OFFSET_EQUIPPEDINVENTORBASE[3], $CFG_OFFSET_EQUIPPEDINVENTORBASE = "EquippedInventoryBase_OffSet"

$OFFSET_EQUIPPEDINVENTORBASE[1] = 3180

$OFFSET_EQUIPPEDINVENTORBASE[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $OFFSET_EQUIPPEDINVENTORBASE, "")

Global $CFG_OFFSET_INVENTORYID = "InventoryID_OffSet", $OFFSET_INVENTORYID = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYID, "")

Global $CFG_OFFSET_INVENTORYSTACKAMOUNT = "InventoryStackAmount_OffSet", $OFFSET_INVENTORYSTACKAMOUNT = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYSTACKAMOUNT, "")

Global $CFG_OFFSET_INVENTORYMAXSTACKAMOUNT = "InventoryMAXStackAmount_OffSet", $OFFSET_INVENTORYMAXSTACKAMOUNT = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYMAXSTACKAMOUNT, "")

Global $CFG_OFFSET_INVENTORYSELLPRICE = "InventoryPrice_OffSet", $OFFSET_INVENTORYSELLPRICE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYSELLPRICE, "")

Global $CFG_OFFSET_INVENTORYBUYPRICE = "InventorySellPrice_OffSet", $OFFSET_INVENTORYBUYPRICE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYBUYPRICE, "")

Global $CFG_OFFSET_INVENTORYDESCRIPTION = "InventoryDescription_OffSet", $OFFSET_INVENTORYDESCRIPTION = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_INVENTORYDESCRIPTION, "")

Global $OFFSET_ACTIONFLAG[4], $CFG_OFFSET_ACTIONFLAG = "ActionFlag_Offset"

$OFFSET_ACTIONFLAG[1] = 52

$OFFSET_ACTIONFLAG[2] = 4168

$OFFSET_ACTIONFLAG[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONFLAG, "24")

Global $OFFSET_ACTIONREAD[5], $CFG_OFFSET_ACTIONREAD = "ActionRead_Offset"

$OFFSET_ACTIONREAD[1] = 52

$OFFSET_ACTIONREAD[2] = 4168

$OFFSET_ACTIONREAD[3] = 48

$OFFSET_ACTIONREAD[4] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONREAD, "4")

Global $OFFSET_ACTIONREAD2[5], $CFG_OFFSET_ACTIONREAD2 = "ActionRead2_Offset"

$OFFSET_ACTIONREAD2[1] = 52

$OFFSET_ACTIONREAD2[2] = 4168

$OFFSET_ACTIONREAD2[3] = 48

$OFFSET_ACTIONREAD2[4] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONREAD2, "8")

Global $OFFSET_ACTIONREAD3[5], $CFG_OFFSET_ACTIONREAD3 = "ActionRead3_Offset"

$OFFSET_ACTIONREAD3[1] = 52

$OFFSET_ACTIONREAD3[2] = 4168

$OFFSET_ACTIONREAD3[3] = 48

$OFFSET_ACTIONREAD3[4] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONREAD3, "28")

Global $OFFSET_ACTIONWRITE[4], $CFG_OFFSET_ACTIONWRITE = "ActionWrite_Offset"

$OFFSET_ACTIONWRITE[1] = 52

$OFFSET_ACTIONWRITE[2] = 4168

$OFFSET_ACTIONWRITE[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONWRITE, "12")

Global $OFFSET_ACTIONWRITE2[4], $CFG_OFFSET_ACTIONWRITE2 = "ActionWrite2_Offset"

$OFFSET_ACTIONWRITE2[1] = 52

$OFFSET_ACTIONWRITE2[2] = 4168

$OFFSET_ACTIONWRITE2[3] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONWRITE2, "20")

Global $OFFSET_ACTIONMOVEX[6], $CFG_OFFSET_ACTIONMOVEX = "ActionMoveX_OffSet"

$OFFSET_ACTIONMOVEX[1] = 52

$OFFSET_ACTIONMOVEX[2] = 4168

$OFFSET_ACTIONMOVEX[3] = 48

$OFFSET_ACTIONMOVEX[4] = 4

$OFFSET_ACTIONMOVEX[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONMOVEX, "32")

Global $OFFSET_ACTIONMOVEY[6], $CFG_OFFSET_ACTIONMOVEY = "ActionMoveY_OffSet"

$OFFSET_ACTIONMOVEY[1] = 52

$OFFSET_ACTIONMOVEY[2] = 4168

$OFFSET_ACTIONMOVEY[3] = 48

$OFFSET_ACTIONMOVEY[4] = 4

$OFFSET_ACTIONMOVEY[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONMOVEY, "40")

Global $OFFSET_ACTIONMOVEZ[6], $CFG_OFFSET_ACTIONMOVEZ = "ActionMoveZ_OffSet"

$OFFSET_ACTIONMOVEZ[1] = 52

$OFFSET_ACTIONMOVEZ[2] = 4168

$OFFSET_ACTIONMOVEZ[3] = 48

$OFFSET_ACTIONMOVEZ[4] = 4

$OFFSET_ACTIONMOVEZ[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONMOVEZ, "36")

Global $OFFSET_ACTIONHEIGHT[6], $CFG_OFFSET_ACTIONHEIGHT = "ActionHeight_OffSet"

$OFFSET_ACTIONHEIGHT[1] = 52

$OFFSET_ACTIONHEIGHT[2] = 4168

$OFFSET_ACTIONHEIGHT[3] = 48

$OFFSET_ACTIONHEIGHT[4] = 4

$OFFSET_ACTIONHEIGHT[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONHEIGHT, "104")

Global $OFFSET_ACTIONHEIGHTFLAG[6], $CFG_OFFSET_ACTIONHEIGHTFLAG = "ActionHeightFlag_OffSet"

$OFFSET_ACTIONHEIGHTFLAG[1] = 52

$OFFSET_ACTIONHEIGHTFLAG[2] = 4168

$OFFSET_ACTIONHEIGHTFLAG[3] = 48

$OFFSET_ACTIONHEIGHTFLAG[4] = 4

$OFFSET_ACTIONHEIGHTFLAG[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONHEIGHTFLAG, "100")

Global $OFFSET_ACTIONHEIGHTFLAG2[6], $CFG_OFFSET_ACTIONHEIGHTFLAG2 = "ActionHeightFlag2_Offset"

$OFFSET_ACTIONHEIGHTFLAG2[1] = 52

$OFFSET_ACTIONHEIGHTFLAG2[2] = 4168

$OFFSET_ACTIONHEIGHTFLAG2[3] = 48

$OFFSET_ACTIONHEIGHTFLAG2[4] = 4

$OFFSET_ACTIONHEIGHTFLAG2[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONHEIGHTFLAG2, "108")

Global $OFFSET_ACTIONDONE[6], $CFG_OFFSET_ACTIONDONE = "ActionDoneFlag_OffSet"

$OFFSET_ACTIONDONE[1] = 52

$OFFSET_ACTIONDONE[2] = 4168

$OFFSET_ACTIONDONE[3] = 48

$OFFSET_ACTIONDONE[4] = 4

$OFFSET_ACTIONDONE[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONDONE, "8")

Global $OFFSET_ACTIONVALUE[6], $CFG_OFFSET_ACTIONVALUE = "ActionValue_OffSet"

$OFFSET_ACTIONVALUE[1] = 52

$OFFSET_ACTIONVALUE[2] = 4168

$OFFSET_ACTIONVALUE[3] = 48

$OFFSET_ACTIONVALUE[4] = 4

$OFFSET_ACTIONVALUE[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONVALUE, "44")

Global $OFFSET_ACTIONVALUE2[6], $CFG_OFFSET_ACTIONVALUE2 = "ActionValue2_OffSet"

$OFFSET_ACTIONVALUE2[1] = 52

$OFFSET_ACTIONVALUE2[2] = 4168

$OFFSET_ACTIONVALUE2[3] = 48

$OFFSET_ACTIONVALUE2[4] = 4

$OFFSET_ACTIONVALUE2[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONVALUE2, "64")

Global $OFFSET_ACTIONSETERROR[6], $CFG_OFFSET_ACTIONSETERROR = "ActionSetError_Offset"

$OFFSET_ACTIONSETERROR[1] = 52

$OFFSET_ACTIONSETERROR[2] = 4168

$OFFSET_ACTIONSETERROR[3] = 48

$OFFSET_ACTIONSETERROR[4] = 8

$OFFSET_ACTIONSETERROR[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONSETERROR, "52")

Global $OFFSET_ACTIONFINISHED[6], $CFG_OFFSET_ACTIONFINISHED = "ActionFinished_Offset"

$OFFSET_ACTIONFINISHED[1] = 52

$OFFSET_ACTIONFINISHED[2] = 4168

$OFFSET_ACTIONFINISHED[3] = 48

$OFFSET_ACTIONFINISHED[4] = 8

$OFFSET_ACTIONFINISHED[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONFINISHED, "8")

Global $OFFSET_ACTIONSTART[6], $CFG_OFFSET_ACTIONSTART = "ActionStart_Offset"

$OFFSET_ACTIONSTART[1] = 52

$OFFSET_ACTIONSTART[2] = 4168

$OFFSET_ACTIONSTART[3] = 48

$OFFSET_ACTIONSTART[4] = 8

$OFFSET_ACTIONSTART[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONSTART, "20")

Global $OFFSET_ACTIONNOTSTART[6], $CFG_OFFSET_ACTIONNOTSTART = "ActionNotStart_Offset"

$OFFSET_ACTIONNOTSTART[1] = 52

$OFFSET_ACTIONNOTSTART[2] = 4168

$OFFSET_ACTIONNOTSTART[3] = 48

$OFFSET_ACTIONNOTSTART[4] = 8

$OFFSET_ACTIONNOTSTART[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONNOTSTART, "36")

Global $OFFSET_ACTIONOBJECT[6], $CFG_OFFSET_ACTIONOBJECT = "ActionObject_Offset"

$OFFSET_ACTIONOBJECT[1] = 52

$OFFSET_ACTIONOBJECT[2] = 4168

$OFFSET_ACTIONOBJECT[3] = 48

$OFFSET_ACTIONOBJECT[4] = 8

$OFFSET_ACTIONOBJECT[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONOBJECT, "32")

Global $OFFSET_OBJECTACTION[6], $CFG_OFFSET_OBJECTACTION = "ObjectAction_Offset"

$OFFSET_OBJECTACTION[1] = 52

$OFFSET_OBJECTACTION[2] = 4168

$OFFSET_OBJECTACTION[3] = 48

$OFFSET_OBJECTACTION[4] = 8

$OFFSET_OBJECTACTION[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_OBJECTACTION, "56")

Global $OFFSET_ACTIONSKILL[6], $CFG_OFFSET_ACTIONSKILL = "ActionSkill_Offset"

$OFFSET_ACTIONSKILL[1] = 52

$OFFSET_ACTIONSKILL[2] = 4168

$OFFSET_ACTIONSKILL[3] = 48

$OFFSET_ACTIONSKILL[4] = 8

$OFFSET_ACTIONSKILL[5] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_ACTIONSKILL, "80")

Global $CHAR_DATA_BASE = _MEMORYREAD(_MEMORYREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION) + 52, $PROCESS_INFORMATION)

Global $PLAYER_DATA_BASE = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PLAYERBASE)

Global $NPC_DATA_BASE = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_NPCBASE)

Global $ITEM_DATA_BASE = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ITEMBASE)

Global $NAME = _MEMORYREAD(_MEMORYREAD($CHAR_DATA_BASE + $OFFSET_NAME, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

Global $CFG_FLYESCAPE_ROOT_KEY = "FlyEscape", $CFG_FLYESCAPE_FLAG_KEY = $NAME & "--" & "FlyEscapeFlag", $CFG_FLYESCAPE_KEY = $NAME & "--" & "FlyEscapeKey", $CFG_FLYESCAPE_DAMAGE_KEY = $NAME & "--" & "FlyEscapeDamage", $CFG_FLYESCAPE_SPACE_KEY = $NAME & "--" & "FlyEscapeTotalSpaces"

Global $CFG_EXTRAS_ROOT_KEY = "Extras", $CFG_EXTRAS_AKS_KEY = $NAME & "--" & "ExtrasAKS", $CFG_HEAL_FM_KEY = $NAME & "--" & "HEALFM", $CFG_EXTRAS_HBN_KEY = $NAME & "--" & "ExtrasHBN", $CFG_EXTRAS_FREEZE_KEY = $NAME & "--" & "ExtrasFreeze", $CFG_EXTRAS_ATTACKRAD_KEY = $NAME & "--" & "ExtrasAttackRad", $CFG_EXTRAS_HOMEX_KEY = $NAME & "--" & "ExtrasHomeX", $CFG_EXTRAS_HOMEY_KEY = $NAME & "--" & "ExtrasHomeY", $CFG_EXTRAS_HOMEZ_KEY = $NAME & "--" & "ExtrasHomeZ"

Global $CFG_SKILLS_ROOT_KEY = "Skills", $CFG_SKILL_UBOUND_KEY = $NAME & "--" & "SkillUbound", $CFG_SKILL_COMBO_KEY = $NAME & "--" & "SkillComboKey", $CFG_SKILL_DELAY_KEY = $NAME & "--" & "SkillDelay", $SKCOUNTCFG = IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_UBOUND_KEY, "1")

Global $CFG_BUFFS_ROOT_KEY = "Buffs", $CFG_BUFFS_FLAG_KEY = $NAME & "--" & "AutoBuffsFlag", $CFG_BUFFS_UBOUND_KEY = $NAME & "--" & "BuffsUbound", $CFG_BUFFS_COMBO_KEY = $NAME & "--" & "BuffsComboKey", $CFG_BUFFS_DELAY_KEY = $NAME & "--" & "BuffsDelay", $CFG_BUFFS_FREQUENCY_KEY = $NAME & "--" & "BuffsFrequency", $SKCOUNTCFG_BUFFS = IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, "1")

Global $CFG_WEAPONS_ROOT_KEY = "ChangeWeapons", $CFG_WEAPONS_FLAG_KEY = $NAME & "--" & "ChangeWeaponsFlag", $CFG_WEAPONS_UBOUND_KEY = $NAME & "--" & "ChangeWeaponsUbound", $CFG_WEAPONS_COMBO_KEY = $NAME & "--" & "ChangeWeaponsComboKey", $CFG_WEAPONS_DELAY_KEY = $NAME & "--" & "ChangeWeaponsDelay", $SKCOUNTCFG_WEAPONS = IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_UBOUND_KEY, "1")

Global $CFG_MOBLIST_ROOT_KEY = "MobList", $CFG_MOBLIST_UBOUND_KEY = $NAME & "--" & "MobListUbound", $CFG_MOBLIST_MONSTER_KEY = $NAME & "--" & "Monster", $CFG_MOBLIST_MONSTERNAME_KEY = $NAME & "--" & "MonsterName", $CFG_MOBLIST_TARGET_KEY = $NAME & "--" & "TargetKey"

Global $CFG_HEAL_ROOT_KEY = "Heal", $CFG_HEAL_AUTOREST_HP_KEY = $NAME & "--" & "AutoRestHP", $CFG_HEAL_AUTOREST_HP_PERC_KEY = $NAME & "--" & "AutoRestHPPerc", $CFG_HEAL_AUTOREST_MP_KEY = $NAME & "--" & "AutoRestMP", $CFG_HEAL_AUTOREST_MP_PERC_KEY = $NAME & "--" & "AutoRestMPPerc", $CFG_HEAL_AUTOREST_KEY = $NAME & "--" & "AutoRestKey", $CFG_HEAL_AUTOPOT_HP_FLAG_KEY = $NAME & "--" & "AutoPotHPFlag", $CFG_HEAL_AUTOPOT_HP_PERC_KEY = $NAME & "--" & "AutoPotHPPerc", $CFG_HEAL_AUTOPOT_HP_KEY = $NAME & "--" & "AutoPotHPKey", $CFG_HEAL_AUTOPOT_HP_TIMER = $NAME & "--" & "AutoPotHPTimer", $CFG_HEAL_AUTOHP_FLAG_KEY = $NAME & "--" & "AutoHPFlag", $CFG_HEAL_AUTOHP_PERC_KEY = $NAME & "--" & "AutoHPPerc", $CFG_HEAL_AUTOHP_KEY = $NAME & "--" & "AutoHPKey", $CFG_HEAL_AUTOHP_TIMER = $NAME & "--" & "AutoHPTimer", $CFG_HEAL_AUTOPOT_MP_FLAG_KEY = $NAME & "--" & "AutoPotFlagMP", $CFG_HEAL_AUTOPOT_MP_PERC_KEY = $NAME & "--" & "AutoPotMPPerc", $CFG_HEAL_AUTOPOT_MP_KEY = $NAME & "--" & "AutoPotMPKey", $CFG_HEAL_RES_ON_DIE_KEY = $NAME & "--" & "ResOnDie", $CFG_HEAL_APOTHOCARY_RAIL_KEY = $NAME & "--" & "ApothocaryRail", $CFG_HEAL_APOTHOCARY_TIMER_KEY = $NAME & "--" & "ApothocaryTimer", $CFG_HEAL_MOVE_TO_CORPSE_KEY = $NAME & "--" & "MoveToCorpse", $CFG_HEAL_DEFEND_KEY = "DEFENDING", $CFG_HEAL_CPU_THROTTLE_KEY = "CPUThrottle", $CFG_HEAL_LAST_GUI_X = "LastGUIX", $CFG_HEAL_LAST_GUI_Y = "LastGUIY"

Global $CFG_PETHEAL_ROOT_KEY = "PetHeal", $CFG_PETHEAL_CHECK_KEY = $NAME & "--" & "AutoHealPetCheck", $CFG_PETATTACK_CHECK_KEY = $NAME & "--" & "PetAttackCheck", $CFG_PETHEAL_SLOT_KEY = $NAME & "--" & "AutoHealPetNumber", $CFG_PETHEAL_HP_KEY = $NAME & "--" & "AutoHealPetHP", $CFG_PETHEAL_HEALKEY_KEY = $NAME & "--" & "AutoHealPetKey", $CFG_PETHEAL_FEEDKEY_KEY = $NAME & "--" & "AutoFeedPetKey", $CFG_PETHEAL_SUMMONKEY_KEY = $NAME & "--" & "SummonPetKey", $CFG_PETHEAL_REZKEY_KEY = $NAME & "--" & "ResPetKey"

Global $CFG_LOOT_ROOT_KEY = "Loot", $CFG_LOOT_FLAG_KEY = $NAME & "--" & "LootFlag", $CFG_LOOTHERBS_FLAG_KEY = $NAME & "--" & "LootHerbsFlag", $CFG_LOOTRESOURCES_FLAG_KEY = $NAME & "--" & "LootResourcesFlag", $CFG_LOOT_TIMES_KEY = $NAME & "--" & "Times", $CFG_LOOT_KEY = $NAME & "--" & "LootKey"

Global $CFG_RAIL_ROOT_KEY = "Rails", $CFG_RAIL_UBOUND_KEY = $NAME & "--" & "RailUbound", $CFG_RAIL_APOTHOCARYID_KEY = $NAME & "--" & "ApothocaryID", $CFG_RAIL_X_KEY = $NAME & "--" & "RailX", $CFG_RAIL_Z_KEY = $NAME & "--" & "RailZ", $CFG_RAIL_Y_KEY = $NAME & "--" & "RailY"

Global $ATTACK_RAD = "0", $TARDIS = "0", $LASTTARDIS = "0", $TARHOMEDIS = "0", $HOME_X = IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEX_KEY, "Float"), $HOME_Y = IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEY_KEY, "Float"), $HOME_Z = IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEZ_KEY, "Float")

$DEFAULT_BROWSER_PATH = RegRead("HKCR\" & RegRead("HKCR\.html", "") & "\shell\open\command", "")

If StringLeft($DEFAULT_BROWSER_PATH, 1) = '"' Then

$DEFAULT_BROWSER_PATH = StringRegExpReplace($DEFAULT_BROWSER_PATH, '\A"+|".*\z', "")

Else

$DEFAULT_BROWSER_PATH = StringRegExpReplace($DEFAULT_BROWSER_PATH, "\A\s+|\s.*\z", "")

EndIf

Global $LAST_START_X = 0

Global $LAST_START_Y = 0

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_X, "") <> -32000 Then

$LAST_START_X = IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_X, "")

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_Y, "") <> -32000 Then

$LAST_START_Y = IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_Y, "")

EndIf

$PROPHETBOT = GUICreate($SOFTWARE_TITLE, 251, 601, $LAST_START_X, $LAST_START_Y)

GUISetState()

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowCloseClicked")

TraySetIcon("ProphetBot.ico")

GUISetIcon("ProphetBot.ico")

$MENUITEM1 = GUICtrlCreateMenu("&File")

$MENUITEM4 = GUICtrlCreateMenuItem("Start", $MENUITEM1)

GUICtrlSetOnEvent(-1, "StartOrStop")

$MENUITEM5 = GUICtrlCreateMenuItem("Exit", $MENUITEM1)

GUICtrlSetOnEvent(-1, "WindowCloseClicked")

$MENUITEM2 = GUICtrlCreateMenu("&Options")

$MENUITEM7 = GUICtrlCreateMenuItem("Skills", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetSkills")

$MENUITEM6 = GUICtrlCreateMenuItem("Buffs", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetAutoBuffs")

$MENUITEM8 = GUICtrlCreateMenuItem("Life Support", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetLifeSupport")

$MENUITEM10 = GUICtrlCreateMenuItem("Pet Support", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetPetSupport")

$MENUITEM9 = GUICtrlCreateMenuItem("Fly 2 Escape", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetFlyEscape")

$MENUITEM11 = GUICtrlCreateMenuItem("Rotate Weapons", $MENUITEM2)

GUICtrlSetOnEvent(-1, "SetChangeWeapons")

$MENUITEM12 = GUICtrlCreateMenuItem("Target List", $MENUITEM2)

GUICtrlSetOnEvent(-1, "Set_MobList")

$MENUITEM3 = GUICtrlCreateMenu("Help")

GUISetFont(8, 800, 0, "MS Sans Serif")

GUISetBkColor(65280)

Global $MENUITEM13 = GUICtrlCreateMenuItem("Online Support", $MENUITEM3)

GUICtrlSetOnEvent(-1, "OnlineSupport")

Global $MENUITEM14 = GUICtrlCreateMenuItem("About Prophet Bot", $MENUITEM3)

GUICtrlSetOnEvent(-1, "Set_AboutProphet")

$BOTSTATUS = GUICtrlCreateGroup("BOT Status", 0, 0, 250, 51, -1, $WS_EX_TRANSPARENT)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($BOTSTATUS), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

GUICtrlCreateGroup("Bot Status", -99, -99, 1, 1)

GUICtrlSetTip(-1, "Bot Status")

$BUTTON_START = GUICtrlCreateButton("Start", 5, 15, 60, 30)

GUICtrlSetOnEvent(-1, "StartOrStop")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$LABEL_BOT_STATUS = GUICtrlCreateLabel("BOT Status: Stopped", 75, 14, 155, 15)

GUICtrlSetColor(-1, 0)

$LABEL_GENERAL_STATUS = GUICtrlCreateLabel("Action: Nothing", 75, 31, 200, 15)

GUICtrlSetColor(-1, 0)

$CHARINFO = GUICtrlCreateGroup("Character Info", 0, 51, 250, 132)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHARINFO), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

$LABENAME = GUICtrlCreateLabel("Name:", 12, 67, 35, 17)

GUICtrlSetColor(-1, 0)

$LABEL_NAME = GUICtrlCreateLabel("None", 50, 67, 150, 17)

GUICtrlSetColor(-1, 0)

$LABELLVL = GUICtrlCreateLabel("Level:", 13, 81, 35, 17)

GUICtrlSetColor(-1, 0)

$LABEL_LVL = GUICtrlCreateLabel("0", 52, 81, 40, 17)

GUICtrlSetColor(-1, 0)

$LABELCLASS = GUICtrlCreateLabel("Class:", 98, 81, 34, 18)

GUICtrlSetColor(-1, 0)

$LABEL_CLASS = GUICtrlCreateLabel("None", 134, 81, 110, 18)

GUICtrlSetColor(-1, 0)

$LABELHP = GUICtrlCreateLabel("HP:", 9, 100, 22, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABELHP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 65280)

$PERC_HP = GUICtrlCreateProgress(32, 98, 120, 17, $PBS_SMOOTH)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($PERC_HP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 16757685)

$LABEL_HP = GUICtrlCreateLabel("0/0", 32, 98, 120, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))

GUICtrlSetFont(-1, 7, 10000, 0, "Arial")

GUICtrlSetBkColor(-1, -2)

$LABELMP = GUICtrlCreateLabel("MP:", 8, 120, 23, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABELMP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 3289855)

GUICtrlSetBkColor(-1, 65280)

$PERC_MP = GUICtrlCreateProgress(32, 118, 120, 17, $PBS_SMOOTH)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($PERC_MP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 3289855)

GUICtrlSetBkColor(-1, 10066431)

$LABEL_MP = GUICtrlCreateLabel("0/0", 32, 118, 120, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))

GUICtrlSetFont(-1, 7, 10000, 0, "Arial")

GUICtrlSetBkColor(-1, -2)

$LABELEXP = GUICtrlCreateLabel("Exp:", 5, 138, 25, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABELEXP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 8388736)

GUICtrlSetBkColor(-1, 65280)

$PERC_EXP = GUICtrlCreateProgress(32, 138, 120, 17, $PBS_SMOOTH)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($PERC_EXP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 16711935)

GUICtrlSetBkColor(-1, 14196939)

$LABEL_EXP = GUICtrlCreateLabel("0/0", 32, 138, 120, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))

GUICtrlSetFont(-1, 7, 10000, 0, "Arial")

GUICtrlSetBkColor(-1, -2)

$LABELSTR = GUICtrlCreateLabel("Str:", 166, 97, 20, 17)

GUICtrlSetColor(-1, 0)

$LABEL_STR = GUICtrlCreateLabel("00", 186, 97, 60, 17)

GUICtrlSetColor(-1, 0)

$LABELDEX = GUICtrlCreateLabel("Dex:", 159, 113, 26, 17)

GUICtrlSetColor(-1, 0)

$LABEL_DEX = GUICtrlCreateLabel("00", 186, 113, 60, 17)

GUICtrlSetColor(-1, 0)

$LABELVIT = GUICtrlCreateLabel("Vit:", 167, 129, 19, 17)

GUICtrlSetColor(-1, 0)

$LABEL_VIT = GUICtrlCreateLabel("00", 186, 129, 60, 17)

GUICtrlSetColor(-1, 0)

$LABELMAG = GUICtrlCreateLabel("Mag:", 157, 145, 28, 17)

GUICtrlSetColor(-1, 0)

$LABEL_MAG = GUICtrlCreateLabel("00", 186, 145, 60, 17)

GUICtrlSetColor(-1, 0)

$LABELXYZ = GUICtrlCreateLabel("XYZ:", 5, 160, 26, 17, $SS_CENTERIMAGE)

GUICtrlSetColor(-1, 0)

$LABEL_XYZ = GUICtrlCreateLabel("000.0/000.0/000.0", 31, 160, 125, 17, $SS_CENTERIMAGE)

GUICtrlSetColor(-1, 0)

$LABESPIRIT = GUICtrlCreateLabel("Spirit:", 153, 160, 31, 18, $SS_CENTERIMAGE)

GUICtrlSetColor(-1, 0)

$LABEL_SPIRIT = GUICtrlCreateLabel("0", 186, 160, 60, 18, $SS_CENTERIMAGE)

GUICtrlSetColor(-1, 0)

$TARINFO = GUICtrlCreateGroup("Target Info", 0, 184, 250, 75)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($TARINFO), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

$LABELTARNAME = GUICtrlCreateLabel("Name:", 12, 200, 35, 17)

GUICtrlSetColor(-1, 0)

$LABEL_TARNAME = GUICtrlCreateLabel("None", 50, 200, 195, 17)

GUICtrlSetColor(-1, 0)

$LABELTARDIST = GUICtrlCreateLabel("Dist:", 22, 213, 35, 17)

GUICtrlSetColor(-1, 0)

$LABEL_TARDIST = GUICtrlCreateLabel("0", 52, 213, 40, 17)

GUICtrlSetColor(-1, 0)

$LABELTARSPEC = GUICtrlCreateLabel("Spec:", 98, 213, 34, 18)

GUICtrlSetColor(-1, 0)

$LABEL_TARSPEC = GUICtrlCreateLabel("None", 134, 213, 114, 18)

GUICtrlSetColor(-1, 0)

$LABELTARHP = GUICtrlCreateLabel("HP:", 9, 232, 22, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABELHP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 65280)

$PERC_TARHP = GUICtrlCreateProgress(32, 231, 120, 17, $PBS_SMOOTH)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($PERC_TARHP), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 16757685)

$LABEL_TARHP = GUICtrlCreateLabel("0/0", 32, 231, 120, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))

GUICtrlSetFont(-1, 7, 10000, 0, "Arial")

GUICtrlSetBkColor(-1, -2)

$HUNTOPTS = GUICtrlCreateGroup("Hunting Options", 0, 263, 250, 80)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($HUNTOPTS), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

$CHK_ANTIKS = GUICtrlCreateCheckbox("AntiKS", 5, 278, 105, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHK_ANTIKS), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_AKS_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

$CHK_HBN = GUICtrlCreateCheckbox("Hunt By Name", 5, 298, 105, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHK_HBN), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 3289855)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HBN_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

$CHK_FZ = GUICtrlCreateCheckbox("Unfreeze", 5, 318, 105, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHK_FZ), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 8388736)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_FREEZE_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

$TAR_RAD = GUICtrlCreateGroup("Target Radius", 112, 271, 131, 65)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($TAR_RAD), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 16776960)

$BTN_SETRAD = GUICtrlCreateButton("Set", 203, 289, 35, 21, $WS_GROUP)

GUICtrlSetOnEvent(-1, "SETHOMEXYZ")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$INPT_RAD = GUICtrlCreateInput("", 166, 289, 33, 21)

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") <> "0" Then

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0"))

Else

GUICtrlSetData(-1, "0")

EndIf

$LABEL_RADIUS = GUICtrlCreateLabel("Radius:", 118, 292, 47, 17)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 0)

$LABEL_RADCENTER = GUICtrlCreateLabel("0 = No Limit", 114, 315, 127, 17, $SS_CENTER)

GUICtrlSetColor(-1, 0)

$HISTORY = GUICtrlCreateGroup("Battle History", 0, 345, 250, 203)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($HISTORY), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

$LOG = GUICtrlCreateEdit("", 5, 362, 240, 185, BitOR($ES_CENTER, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN), 0)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LOG), "wstr", 0, "wstr", 0)

GUISetState(@SW_SHOW)

$LABELGOLD = GUICtrlCreateLabel("Gold:", 5, 557, 29, 18, $SS_CENTERIMAGE)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABELGOLD), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 16776960)

$LABEL_GOLD = GUICtrlCreateLabel("0", 37, 557, 70, 18, $SS_CENTERIMAGE)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($LABEL_GOLD), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 16776960)

$BTN_DONATE = GUICtrlCreateButton("Duvida", 172, 554, 74, 21, $BS_BITMAP, $WS_GROUP)

GUICtrlSetImage($BTN_DONATE, @ScriptDir & "\Donate.bmp", -1)

GUICtrlSetOnEvent(-1, "Donate")

Global $FLYUPTIMER = TimerInit() + 750, $CHATTIMER = TimerInit() + 100, $PLAYERARRAYTIMER = TimerInit() + 750, $NPCARRAYTIMER = TimerInit() + 750, $PETSUPPORTTIMER = TimerInit() + 750, $GATHERARRAYTIMER = TimerInit() + 7500, $ITEMARRAYTIMER = TimerInit() + 7500, $TIMER_FEED_PET = TimerInit() + 65000, $MPTIMER = TimerInit() + 18000, $HPTIMER = TimerInit() + 1000, $HP2TIMER = TimerInit() + 1000

SITUATIONALAWARENESS()

BUILDITEMARRAY()

If Not $NAME <> "" Then

ADDHISTORY("[[[searching For Character]]]")

Do

SITUATIONALAWARENESS()

Sleep(10)

Until $NAME <> ""

ADDHISTORY("[[[Character Found]]]")

EndIf

ADDHISTORY(@CRLF & "Afford 1.0" & @CRLF & @HOUR & ":" & @MIN & ":" & @SEC & " | " & @MON & "/" & @MDAY & "/" & @YEAR & @CRLF & "Todos os Creditos:" & @CRLF & "Afford" & @CRLF & "" & @CRLF & "" & @CRLF & "" & @CRLF & "" & @CRLF & "" & @CRLF & "" & @CRLF & "" & @CRLF & "")

Sleep(20)

RENAMEWINDOW()

Sleep(20)

While (1)

MAIN()

WEnd

 

Func MAIN()

If $STOP = False Then

If $HP > 0 Then

SITUATIONALAWARENESS()

FLYMODE()

HPMPAUTOPOTCHECK()

PETSUPPORT()

Else

STOPCHECK()

EndIf

STOPCHECK()

If TimerDiff($TIMER_APOTHOCARY_RAIL) / (60000 * 60) > IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_TIMER_KEY, "1") And IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_RAIL_KEY, "1") = 1 And $HP > 0 Then

ADDHISTORY("Returning to apothocary for repairs")

Sleep(20)

If $CHARSTATE <> 16 Then

If IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_FLAG_KEY, 0) = 1 And $HP <> 0 And IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, "0") <> 1 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "")))

Sleep(20)

EndIf

EndIf

RUNAPOTHOCARYRAIL()

Sleep(20)

If $CHARSTATE = 16 And IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, "0") = 4 Then

If IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_FLAG_KEY, 0) = 1 And $HP <> 0 And IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, "0") <> 1 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "")))

Sleep(20)

EndIf

EndIf

EndIf

STOPCHECK()

If GUICtrlRead($LABEL_BOT_STATUS) <> "BOT Status: Started" Then

GUICtrlSetData($LABEL_BOT_STATUS, "BOT Status: Started")

EndIf

If $HP > 0 Then

HPMPAUTOPOTCHECK()

PETSUPPORT()

EndIf

If $HP > 0 Then

SELECTTARGET()

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTHERBS_FLAG_KEY, "0") = 1 Or IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTRESOURCES_FLAG_KEY, "0") = 1 Then

Do

Sleep(10)

SITUATIONALAWARENESS()

If $HP > 0 Then

$GATHERING = 0

If $CHARSTATE = 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

HPMPAUTOPOTCHECK()

FINDHERBSRESOURCES()

EndIf

Until $GATHERING = 0 Or $HP = 0

EndIf

If $HADTARGET = 1 And $HP > 0 Then

$HADTARGET = 0

$ATHOME = 0

ElseIf $HP > 0 And $ATHOME = 0 Then

ADDHISTORY("Moving Back To HomeXYZ")

$MOVEING = 1

MOVETOXYZ($HOME_X, $HOME_Y, $HOME_Z, $HOME_Z / 10)

If $TAR <> 0 Then

ADDHISTORY("Defending During Movement")

$TARGET = $TAR

KILLTARGET()

$HADTARGET = 1

$KILL = 0

$ATHOME = 0

Else

$HADTARGET = 0

$ATHOME = 1

EndIf

Sleep(20)

EndIf

HPMPAUTOPOTCHECK()

If $TAR <> 0 And $HP > 0 Then

ADDHISTORY("Defending")

$TARGET = $TAR

KILLTARGET()

$KILL = 0

$HADTARGET = 1

$ATHOME = 0

EndIf

If $HP = 0 Then

STOPCHECK()

EndIf

Sleep(10)

Else

If GUICtrlRead($LABEL_BOT_STATUS) <> "BOT Status: Stopped" Then

GUICtrlSetData($LABEL_BOT_STATUS, "BOT Status: Stopped")

EndIf

$ACTIVE_WEAPONS = 0

$TIMER_CHANGE_WEAPON = TimerInit()

GETPETSTATE()

SITUATIONALAWARENESS()

PETSUPPORT()

HPMPAUTOPOTCHECK()

Sleep(10)

EndIf

EndFunc

 

 

Func BUILDCHATARRAY()

Local $ARRAY[1][2], $POINTER, $ITEM_BASE, $COUNTER, $LASTCHATPOINTER, $LASTMSG

$LASTCHATPOINTER = _MEMORYREAD($LASTCHAT, $PROCESS_INFORMATION)

$LASTMSG = ($LASTCHATPOINTER - 10)

For $I = $LASTMSG To $LASTCHATPOINTER - 1

$POINTER = _MEMORYREAD($CHAT, $PROCESS_INFORMATION)

ReDim $ARRAY[$COUNTER + 1][2]

$ARRAY[$COUNTER][0] = _MEMORYREAD($POINTER + $I * Dec("1c") + 4, $PROCESS_INFORMATION, "Byte")

$ARRAY[$COUNTER][1] = _MEMORYREAD(_MEMORYREAD($POINTER + $I * Dec("1c") + 8, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[100]")

If $ARRAY[$COUNTER][0] = 4 Then

ADDHISTORY($ARRAY[$COUNTER][1])

$WHISPER = 1

Sleep(10)

EndIf

$COUNTER += 1

Next

Global $CHATARRAY = $ARRAY

Sleep(1)

EndFunc

 

 

Func POTONE()

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_FLAG_KEY, 0) = 1 And TimerDiff($HPTIMER) > IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_TIMER, "1") * 1000 Then

If GUICtrlRead($PERC_HP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_PERC_KEY, 1)) Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_KEY, 0)))

Sleep(10)

$HPTIMER = TimerInit()

EndIf

EndIf

EndFunc

 

 

Func PETDEF()

SITUATIONALAWARENESS()

If $TAR > 0 Then

$TARGET = $TAR

$HADTARGET = 1

KILLTARGET()

$KILL = 0

Sleep(10)

EndIf

Do

$KILL = 0

BUILDNPCARRAY()

HPMPAUTOPOTCHECK()

AUTOBUFFSCHECK()

RESETSKILLDELAYS()

CHANGEWEAPONSCHECK()

Local $TEMPNPCARRAY, $TEMPNPCARRAYCOUNT, $COUNTER, $COUNTERMONNAME, $COUNTERMONID, $TEMPTAR, $TEMPTARDIS

$TEMPNPCARRAY = $NPCARRAY

$TEMPNPCARRAYSIZE = UBound($TEMPNPCARRAY)

For $N = 0 To $TEMPNPCARRAYSIZE - 1

$TEMPTAR = 0

If $TEMPNPCARRAY[$N][12] = $PETID[1] And $PETID[1] > 0 Then

$TEMPTAR = $TEMPNPCARRAY[$N][0]

SELECTTARID($TEMPTAR)

$ST = TimerInit()

Do

Sleep(10)

SITUATIONALAWARENESS()

$TIMER = TimerDiff($ST)

Until $TARMAXHP <> 0 Or $TIMER > 2000 Or $HP = 0

If $TAR > 0 Then

$TARGET = $TAR

$HADTARGET = 1

KILLTARGET()

$KILL = 1

Sleep(10)

EndIf

Else

$KILL = 0

EndIf

Next

Until $KILL = 0 Or $HP = 0

EndFunc

 

 

Func SELECTTARGET()

$KILL = 0

BUILDNPCARRAY()

HPMPAUTOPOTCHECK()

AUTOBUFFSCHECK()

RESETSKILLDELAYS()

CHANGEWEAPONSCHECK()

Local $TEMPNPCARRAY, $TEMPNPCARRAYCOUNT, $COUNTER, $COUNTERMONNAME, $COUNTERMONID, $TEMPTAR, $TEMPTARDIS

$TEMPNPCARRAY = $NPCARRAY

$TEMPNPCARRAYSIZE = UBound($TEMPNPCARRAY)

If GUICtrlRead($LABEL_GENERAL_STATUS) <> "Action: Finding Target" Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Finding Target")

EndIf

PETDEF()

If $KILL = 0 Then

For $N = 0 To $TEMPNPCARRAYSIZE - 1

$TEMPTAR = 0

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HBN_KEY, "0") = 1 Then

For $C = 0 To IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1)

If $TEMPNPCARRAY[$N][1] = IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTERNAME_KEY & $C, "") Then

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") > 0 And $TEMPNPCARRAY[$N][11] > IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") Then

ExitLoop

Else

$TEMPTAR = $TEMPNPCARRAY[$N][0]

ExitLoop

EndIf

EndIf

Next

Else

For $C = 0 To IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1)

If $TEMPNPCARRAY[$N][0] = IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTER_KEY & $C, "") Then

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") > 0 And $TEMPNPCARRAY[$N][11] > IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") Then

ExitLoop

Else

$TEMPTAR = $TEMPNPCARRAY[$N][0]

ExitLoop

EndIf

EndIf

Next

EndIf

If $TEMPTAR <> 0 Then

SELECTTARID($TEMPTAR)

Sleep(5)

$ST = TimerInit()

Do

SITUATIONALAWARENESS()

Sleep(2)

$TIMER = TimerDiff($ST)

Until $TARMAXHP <> 0 Or $TIMER > 1500 Or $HP = 0

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_AKS_KEY, "0") = 1 And $TARHP = $TARMAXHP Then

$TARGET = $TAR

$HADTARGET = 1

KILLTARGET()

ExitLoop

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_AKS_KEY, "0") <> 1 Then

$TARGET = $TAR

$HADTARGET = 1

KILLTARGET()

If $FLYTOESCAPE = 1 Then

$FLYTOESCAPE = 0

EndIf

ExitLoop

EndIf

EndIf

Next

EndIf

$KILL = 0

EndFunc

 

 

Func FLYMODE()

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, "0") = 1 Then

If $CHARSTATE <> 16 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "")))

Sleep(20)

EndIf

EndIf

EndFunc

 

 

Func CHANGEWEAPONSCHECK()

If IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_FLAG_KEY, "0") = 1 Then

If TimerDiff($TIMER_CHANGE_WEAPON) / 60000 > IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_DELAY_KEY, "180") Then

$ACTIVE_WEAPONS = $ACTIVE_WEAPONS + 1

If $ACTIVE_WEAPONS <= IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_UBOUND_KEY, "1") Then

$KEY_WEAPON = IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $ACTIVE_WEAPONS, "")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $ACTIVE_WEAPONS, "")))

$TIMER_CHANGE_WEAPON = TimerInit()

Else

$TIMER_CHANGE_WEAPON = TimerInit()

EndIf

EndIf

EndIf

EndFunc

 

 

Func FLYESCAPECHECK()

Local $POTENTIAL_DAMAGE = $MAXHP - $HP, $LASTELEVATION

If IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_FLAG_KEY, 0) = 1 And $HP <> 0 Then

If $POTENTIAL_DAMAGE > IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_DAMAGE_KEY, $MAXHP) Then

$FLYTOESCAPE = 1

$LASTELEVATION = $Z / 10

ADDHISTORY("Flying To Escape")

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Flying To Escape")

If $CHARSTATE <> 16 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "")))

Sleep(10)

EndIf

Local $FLYTIMER = TimerInit()

Do

Sleep(10)

SITUATIONALAWARENESS()

If $TAR > 0 Then

Sleep(1)

DESELECTTARGET()

EndIf

FLYUPVERTICAL()

Sleep(5)

Until $Z / 10 >= IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_SPACE_KEY, 10) Or $HP = 0 Or TimerDiff($FLYTIMER) > 20000

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $X, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $Y, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $Z, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE2, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

Sleep(20)

Do

Sleep(10)

SITUATIONALAWARENESS()

HPMPAUTOPOTCHECK()

Until GUICtrlRead($PERC_HP) > 98 Or $HP = 0

ADDHISTORY("Going Back From Escape")

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Going Back")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "")))

Sleep(50)

GETPETSTATE()

EndIf

EndIf

EndFunc

 

 

Func HPMPRESTORECHECK()

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_KEY, 0) = 1 Then

If GUICtrlRead($PERC_HP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_PERC_KEY, 1)) Then

Sleep(1)

RESTORECHARSTATE(1)

EndIf

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_KEY, 0) = 1 Then

If GUICtrlRead($PERC_MP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_PERC_KEY, 1)) Then

Sleep(1)

RESTORECHARSTATE(2)

EndIf

EndIf

EndFunc

 

 

Func AUTOBUFFSCHECK()

If IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FLAG_KEY, "0") = 1 Then

For $Q = 1 To IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, "1") Step +1

$BUFFS_TIMER_DIFF[$Q] = TimerDiff($BUFFS_TIMER[$Q])

Next

For $Q = 1 To IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, "1") Step +1

If $BUFFS_TIMER_DIFF[$Q] / 60000 > IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FREQUENCY_KEY & $Q, "1") And $CASTING = 0 Then

If $TAR > 0 Then

Sleep(1)

DESELECTTARGET()

Sleep(5)

EndIf

ADDHISTORY("Buffing Myself")

Sleep(1)

SENDBUFF($Q)

Local $TT = TimerInit()

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $CASTING > 0 Or TimerDiff($TT) > 2500 Or $HP = 0

$BUFFS_TIMER[$Q] = TimerInit()

EndIf

Next

EndIf

EndFunc

 

 

Func HPMPAUTOPOTCHECK()

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_FLAG_KEY, 0) = 1 And TimerDiff($HPTIMER) > IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_TIMER, "1") * 1000 Then

If GUICtrlRead($PERC_HP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_PERC_KEY, 1)) Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_KEY, 0)))

Sleep(10)

$HPTIMER = TimerInit()

EndIf

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_FLAG_KEY, 0) = 1 And TimerDiff($HP2TIMER) > IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_TIMER, "1") * 1000 And $REST = 0 Then

If GUICtrlRead($PERC_HP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_PERC_KEY, 1)) Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_KEY, 0)))

Sleep(10)

$HP2TIMER = TimerInit()

EndIf

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_FLAG_KEY, 0) = 1 And TimerDiff($MPTIMER) > 16000 Then

If GUICtrlRead($PERC_MP) < Int(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_PERC_KEY, 1)) Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_KEY, 0)))

Sleep(10)

$MPTIMER = TimerInit()

EndIf

EndIf

EndFunc

 

 

Func FINDHERBSRESOURCES()

Sleep(1)

BUILDITEMARRAY()

Local $ARRAY[1][8], $ARRAYSIZE, $POINTER, $ITEM_BASE, $COUNTER, $COUNTERHERBS, $COUNTERRESOURCES, $TEMPLASTTARX[3], $TEMPLASTTARY[3], $TEMPLASTTARZ[3]

$TEMPITEMARRAY = $ITEMARRAY

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTHERBS_FLAG_KEY, "0") = 1 Or IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTRESOURCES_FLAG_KEY, "0") = 1 Then

If GUICtrlRead($LABEL_GENERAL_STATUS) <> "Action: Finding Gatherables" Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Finding Gatherables")

EndIf

For $H = 0 To UBound($TEMPITEMARRAY) - 1

$GATHERTARGET = 0

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTHERBS_FLAG_KEY, "0") = 1 Then

For $I = 0 To UBound($HERBS) - 1

If $TEMPITEMARRAY[$H][2] = $HERBS[$I] And $LASTGATHERED <> $TEMPITEMARRAY[$H][0] Then

$GATHERTARGET = $TEMPITEMARRAY[$H][0]

$GATHERTARGETNAME = $HERBS[$I]

$GATHERTARGETDIS = $TEMPITEMARRAY[$H][6]

$GATHERTARGETHOMEDIS = $TEMPITEMARRAY[$H][7]

$TEMPLASTTARX[2] = $TEMPITEMARRAY[$H][3]

$TEMPLASTTARX[1] = Round(($TEMPITEMARRAY[$H][3] + 4000) / 10, 2)

$TEMPLASTTARY[2] = $TEMPITEMARRAY[$H][4]

$TEMPLASTTARY[1] = Round(($TEMPITEMARRAY[$H][4] + 5500) / 10, 2)

$TEMPLASTTARZ[2] = $TEMPITEMARRAY[$H][5]

$TEMPLASTTARZ[1] = Round(($TEMPITEMARRAY[$H][5]) / 10, 2)

ExitLoop

EndIf

Next

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTRESOURCES_FLAG_KEY, "0") = 1 Then

For $I = 0 To UBound($RESOURCES) - 1

If $TEMPITEMARRAY[$H][2] = $RESOURCES[$I] And $LASTGATHERED <> $TEMPITEMARRAY[$H][0] Then

$GATHERTARGET = $TEMPITEMARRAY[$H][0]

$GATHERTARGETNAME = $RESOURCES[$I]

$GATHERTARGETDIS = $TEMPITEMARRAY[$H][6]

$GATHERTARGETHOMEDIS = $TEMPITEMARRAY[$H][7]

$TEMPLASTTARX[2] = $TEMPITEMARRAY[$H][3]

$TEMPLASTTARX[1] = Round(($TEMPITEMARRAY[$H][3] + 4000) / 10, 2)

$TEMPLASTTARY[2] = $TEMPITEMARRAY[$H][4]

$TEMPLASTTARY[1] = Round(($TEMPITEMARRAY[$H][4] + 5500) / 10, 2)

$TEMPLASTTARZ[2] = $TEMPITEMARRAY[$H][5]

$TEMPLASTTARZ[1] = Round(($TEMPITEMARRAY[$H][5]) / 10, 2)

ExitLoop

EndIf

Next

EndIf

If $GATHERTARGET <> 0 And $LASTGATHERED <> $GATHERTARGET Then

If $GATHERTARGETDIS < IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") And $GATHERTARGETHOMEDIS < IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Collecting Gatherable")

ADDHISTORY("Gathering " & $GATHERTARGETNAME)

$MOVEING = 1

GRABHERBRESOURCE($GATHERTARGET)

$GATHERING = 0

Return MAIN()

EndIf

Else

EndIf

Next

EndIf

$GATHERING = 0

Return $ARRAY

EndFunc

 

 

Func PETSUPPORT()

If IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_CHECK_KEY, "0") = "1" Then

Sleep(1)

GETPETHEALTH()

Sleep(1)

GETPETHUNGER()

If $PETHP < IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HP_KEY, "0") And $PETHP > 0 Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Healing Pet")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HEALKEY_KEY, "")))

Sleep(20)

EndIf

If $PETHUNGER > 0 And TimerDiff($TIMER_FEED_PET) > 60100 And $PETHP > 0 Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Feeding Pet")

Sleep(5)

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_FEEDKEY_KEY, "")))

$TIMER_FEED_PET = TimerInit()

Sleep(5)

EndIf

EndIf

$PETSUPPORTTIMER = TimerInit()

EndFunc

 

 

Func FLYUPVERTICAL()

If TimerDiff($FLYUPTIMER) > 500 And $HP > 0 Then

Local $NEWX, $NEWY, $NEWZ, $FLYSPEED, $SPEED, $DIRECTION, $MOVETYPE, $COUNTER, $TIME, $PACKET, $PACKETSIZE

$FLYSPEED = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_FLYSPEED, $PROCESS_INFORMATION, "Float")

$NEWX = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_X, $PROCESS_INFORMATION, "Float")

$NEWY = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Z, $PROCESS_INFORMATION, "Float") + ($FLYSPEED * 0.5)

$NEWZ = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Y, $PROCESS_INFORMATION, "Float")

$SPEED = Floor(($FLYSPEED * 256) + 0.5)

$DIRECTION = 0

$MOVETYPE = 97

$COUNTER = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_FLYCOUNTER, $PROCESS_INFORMATION, "UShort")

$TIME = 500

$PACKET = "0700"

$PACKET &= _HEX($NEWX, 8, "float")

$PACKET &= _HEX($NEWY, 8, "float")

$PACKET &= _HEX($NEWZ, 8, "float")

$PACKET &= _HEX($SPEED, 4)

$PACKET &= _HEX($DIRECTION, 2)

$PACKET &= _HEX(97, 2)

$PACKET &= _HEX($COUNTER, 4)

$PACKET &= _HEX($TIME, 4)

$PACKETSIZE = 22

_MEMORYWRITE($CHAR_DATA_BASE + 2304, $PROCESS_INFORMATION, $COUNTER + 1, "UShort")

_MEMORYWRITE($CHAR_DATA_BASE + 64, $PROCESS_INFORMATION, $NEWY, "Float")

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

$FLYUPTIMER = TimerInit()

Sleep(1)

_MEMORYWRITE($CHAR_DATA_BASE + $OFFSET_Z, $PROCESS_INFORMATION, $NEWY, "Float")

EndIf

EndFunc

 

 

Func FLYUPANGLE($MOVETOX, $MOVETOY, $MOVETOZ)

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

Local $FLAG = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG)

ADDHISTORY("FLYING " & $FLAG[1])

ADDHISTORY("MOVE " & $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, "966.302795410156", "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, "4159.5380859375", "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, "219.026138305664", "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHT, "66", "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG, $FLAG[1] + 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG2, "0")

EndFunc

 

 

Func GRABHERBRESOURCE($RESOURCEID)

If $HP > 0 Then

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD2)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFINISHED, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSTART, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONNOTSTART, 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONOBJECT, $RESOURCEID)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_OBJECTACTION, 4)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSETERROR, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSKILL, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

$ACTIONFLAG = 1

$MOVEFLAG = 1

Sleep(2)

$GT = TimerInit()

Do

POTONE()

PETDEF()

Sleep(5)

SITUATIONALAWARENESS()

If $TAR <> 0 Then

$TARGET = $TAR

$HADTARGET = 1

ADDHISTORY("Defending During Gathering")

KILLTARGET()

$KILL = 0

$LASTGATHERED = 0

$GATHERING = 0

$LASTGATHERED = 0

$MOVEFLAG = 0

$ACTIONFLAG = 0

EndIf

$GTIMER = TimerDiff($GT)

Until $ACTIONFLAG = 0 Or $HP = 0 Or $GTIMER > 50000

Local $TS = TimerInit()

Sleep(20)

Do

POTONE()

Sleep(5)

SITUATIONALAWARENESS()

Local $TIMER = TimerDiff($TS)

Until $ACTIONFLAG <> 0 Or $TIMER > 5000 Or $HP = 0

Do

POTONE()

Sleep(5)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0 Or $GTIMER > 50000

$LASTGATHERED = $RESOURCEID

EndIf

PETDEF()

EndFunc

 

 

Func MOVETOXYZ($MOVETOX, $MOVETOY, $MOVETOZ, $HIGHT)

$KILL = 0

If $MOVEMODE = 1 And $HP > 0 Or $MOVEMODE = 2 And $HP > 0 Then

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

Local $FLAG = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $MOVETOX, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $MOVETOY, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $MOVETOZ, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHT, $HIGHT, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG, $FLAG[1] + 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG2, "0")

Else

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $MOVETOX, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $MOVETOZ, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $MOVETOY, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE2, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

EndIf

$ACTIONFLAG = 1

Do

Sleep(10)

POTONE()

SITUATIONALAWARENESS()

If $TAR <> 0 Then

$KILL = 1

EndIf

Until $LASTTARDIS < $DISTANCE Or $ACTIONFLAG = 0 Or $KILL = 1 Or $HP = 0

$MOVEING = 0

EndFunc

 

 

Func DASHTOXYZ($MOVETOX, $MOVETOY, $MOVETOZ, $HIGHT)

$MOVEING = 1

Do

Sleep(10)

SITUATIONALAWARENESS()

Sleep(2)

Until $ACTIONFLAG = 0 Or $HP = 0 Or $TAR <> 0

If $HP > 0 Then

If $MOVEMODE = 1 Or $MOVEMODE = 2 And $HP > 0 Then

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

Local $FLAG = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $MOVETOX, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $MOVETOY, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $MOVETOZ, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHT, $HIGHT, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG, $FLAG[1] + 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONHEIGHTFLAG2, "0")

Else

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $MOVETOX, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $MOVETOZ, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $MOVETOY, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE2, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

EndIf

EndIf

Sleep(10)

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $TARDIS < 20 Or $ACTIONFLAG = 0 Or $HP = 0

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEX, $X + 1, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEZ, $Z, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONMOVEY, $Y, "Float")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONDONE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONVALUE2, 0)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, 1)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0

$MOVEING = 0

EndFunc

 

 

Func TALKTONPC($NPCID)

Local $READ = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONREAD2)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFINISHED, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSTART, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONNOTSTART, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONOBJECT, $NPCID)

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_OBJECTACTION, "2")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSETERROR, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONSKILL, "0")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE, $READ[1])

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG, "1")

_MEMORYPOINTERWRITE($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONWRITE2, $READ[1])

EndFunc

 

 

Func SENDBUFF($BUFF_SEQ)

$KEY = IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $BUFF_SEQ, "0")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $BUFF_SEQ, "0")))

Sleep(Int(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_DELAY_KEY & $BUFF_SEQ, "0")) * 1000)

EndFunc

 

 

Func TIMERBUFFSSTART()

If IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FLAG_KEY, "0") = 1 Then

For $Q = 1 To IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, "1") Step +1

$BUFFS_TIMER[$Q] = TimerInit()

Next

EndIf

EndFunc

 

 

Func KILLTARGET()

If $CHARSTATE = 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

Local $ACTIVE_SKILL = 0

Local $LASTSPIRIT = $SPIRIT

Local $TS = TimerInit()

Local $KEY, $TIMER, $W8, $LOOT, $LOOTTIMES, $TEMPHOMEX, $TEMPHOMEY, $TEMPHOMEZ

If $TARGET <> 0 And $TAR = $TARGET Then

ADDHISTORY("Killing Monster #" & $KILLS_COUNT + 1 & " ID:[" & $TAR & "]")

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Killing Monster #" & $KILLS_COUNT + 1)

If IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETATTACK_CHECK_KEY, "0") = 1 Then

If $TARDIS > 17 And $TARHP = $TARMAXHP Then

$MOVEING = 1

$HIGHT = $LASTTARZ[2] / 10

DASHTOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $HIGHT)

Do

SETPETATTACK($TARGET)

Sleep(5)

SITUATIONALAWARENESS()

$TIMER = TimerDiff($TS)

Until $TARHP < $TARMAXHP Or $TAR = "" Or $TIMER > 10000 Or $HP = 0

Else

Do

SETPETATTACK($TARGET)

Sleep(5)

SITUATIONALAWARENESS()

$TIMER = TimerDiff($TS)

Until $TARHP < $TARMAXHP Or $TAR = "" Or $TIMER > 10000 Or $HP = 0

EndIf

EndIf

Do

Sleep(5)

SITUATIONALAWARENESS()

If $HP > 0 Then

FLYESCAPECHECK()

FLYMODE()

HPMPAUTOPOTCHECK()

GETPETSTATE()

PETSUPPORT()

EndIf

If $CHARSTATE = 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

$W8 = IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_DELAY_KEY & $ACTIVE_SKILL, "1")

If TimerDiff($SKILL_DELAY_CHECK[$ACTIVE_SKILL]) > ($W8 * 1000) And $CASTING = 0 Then

$ACTIVE_SKILL = $ACTIVE_SKILL + 1

If $ACTIVE_SKILL > $SKCOUNTCFG Then

$ACTIVE_SKILL = 1

EndIf

$SKILL_DELAY_CHECK[$ACTIVE_SKILL] = TimerInit()

$KEY = IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $ACTIVE_SKILL, "{F1}")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $ACTIVE_SKILL, "{F1}")))

EndIf

If $TARHP = $TARMAXHP Then

$TIMER = TimerDiff($TS)

If $TIMER > 30000 Then

Sleep(1)

DESELECTTARGET()

EndIf

EndIf

$TIMER = TimerDiff($TS)

Until $TAR = 0 Or $TIMER > 180000 Or $HP = 0

If $HP = 0 Then

EndIf

$TEMPHOMEX = $HOME_X

$TEMPHOMEY = $HOME_Y

$TEMPHOMEZ = $HOME_Z

$HOME_X = $LASTTARX[2]

$HOME_Y = $LASTTARY[2]

$HOME_Z = $LASTTARZ[2]

$LAST_KILLEDTIME = TimerInit()

$SPIRIT = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_SPIRIT, $PROCESS_INFORMATION)

$KILLS_COUNT = $KILLS_COUNT + 1

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, "0") = 1 Then

Sleep(10)

BUILDITEMARRAY()

EndIf

Local $TEMPITEMARRAY, $TEMPITEMARRAYSIZE, $COUNTER, $TEMPITEM, $TEMPITEMDIS

$TEMPITEMARRAY = $ITEMARRAY

$TEMPITEMARRAYSIZE = UBound($TEMPITEMARRAY)

If GUICtrlRead($LABEL_GENERAL_STATUS) <> "Action: Scanning Items" Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Scanning Items")

EndIf

For $N = 0 To $TEMPITEMARRAYSIZE - 1

If $TEMPITEMARRAY[$N][7] < 7 And $TEMPITEMARRAY[$N][7] > 0 Then

$COUNTER = $COUNTER + 1

$HIGHT = $TEMPITEMARRAY[$N][5] / 10

EndIf

Next

If $COUNTER > "" Then

$LOOT = 1

$LOOTTIMES = $COUNTER * 8

EndIf

If $TARDIS > 6 And $LOOT = 1 Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Moveing To Corpse")

Do

Sleep(5)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_MOVE_TO_CORPSE_KEY, "0") = 1 And IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, "0") = 1 Then

$MOVEING = 1

$MTLT = TimerInit()

Do

Sleep(5)

SITUATIONALAWARENESS()

$TIMER = TimerDiff($MTLT)

Until $CASTING = 0 Or $TIMER > 5000 Or $HP = 0

Sleep(1)

MOVETOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $HIGHT)

EndIf

$MOVEING = 0

$LASTGATHERED = 0

EndIf

If $LOOT = 1 And IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, "0") = 1 Then

If $LOOTTIMES = 1 Then

ADDHISTORY("Looting 1 Items")

Else

ADDHISTORY("Looting " & $LOOTTIMES / 8 & " Items")

Sleep(1)

PICKLOOT($LOOTTIMES)

EndIf

EndIf

$HOME_X = $TEMPHOMEX

$HOME_Y = $TEMPHOMEY

$HOME_Z = $TEMPHOMEZ

EndIf

$ATHOME = 0

EndFunc

 

 

Func PICKLOOT($MAX)

$PLT = TimerInit()

Do

Sleep(10)

SITUATIONALAWARENESS()

$TIMER = TimerDiff($PLT)

Until $CASTING = 0 Or $TIMER > 5000 Or $HP = 0

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, "0") = 1 Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Looting")

For $P = $MAX To 1 Step -1

$PKEY = IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_KEY, "0")

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_KEY, "0")))

Sleep(2)

Next

If $REST = 1 Then

$REST = 0

Sleep(2)

ElseIf $HP > 0 Then

Sleep(10)

HPMPRESTORECHECK()

EndIf

EndIf

EndFunc

 

 

Func SELECTTARIDD($ID)

Local $PREMOTETHREAD, $VBUFFER, $LOOP, $RESULT, $OPCODE

$PREMOTEMEM = DllCall($KERNEL32, "int", "VirtualAllocEx", "int", $PROCESS_INFORMATION[1], "ptr", 0, "int", 70, "int", 4096, "int", 64)

$OPCODE &= "60"

$OPCODE &= "A1" & _HEX($REALBASEADDRESS)

$OPCODE &= "68" & _HEX($ID)

$OPCODE &= "8B4820"

$OPCODE &= "81C1" & _HEX(236)

$OPCODE &= "E8" & _HEX($SELECT_CALL - $PREMOTEMEM[0] - 5 - StringLen($OPCODE) / 2)

$OPCODE &= "61"

$OPCODE &= "C3"

$VBUFFER = DllStructCreate("byte[" & StringLen($OPCODE) / 2 & "]")

For $LOOP = 1 To DllStructGetSize($VBUFFER)

DllStructSetData($VBUFFER, 1, Dec(StringMid($OPCODE, ($LOOP - 1) * 2 + 1, 2)), $LOOP)

Next

DllCall($KERNEL32, "int", "WriteProcessMemory", "int", $PROCESS_INFORMATION[1], "int", $PREMOTEMEM[0], "int", DllStructGetPtr($VBUFFER), "int", DllStructGetSize($VBUFFER), "int", 0)

$HREMOTETHREAD = DllCall($KERNEL32, "int", "CreateRemoteThread", "int", $PROCESS_INFORMATION[1], "int", 0, "int", 0, "int", $PREMOTEMEM[0], "ptr", 0, "int", 0, "int", 0)

Do

$RESULT = DllCall("kernel32.dll", "int", "WaitForSingleObject", "int", $HREMOTETHREAD[0], "int", 50)

Until $RESULT[0] <> 258

Sleep(25)

DllCall($KERNEL32, "int", "CloseHandle", "int", $HREMOTETHREAD[0])

DllCall($KERNEL32, "ptr", "VirtualFreeEx", "hwnd", $PROCESS_INFORMATION[1], "int", $PREMOTEMEM[0], "int", 0, "int", 32768)

Return True

EndFunc

 

 

Func GETPETSTATE()

$PETNO = IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SLOT_KEY, "0")

If $PETNO = 0 Then

Else

Global $OFFSET_PETSTATE[4]

$OFFSET_PETSTATE[1] = Dec("34")

$OFFSET_PETSTATE[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETBASE, "")

$OFFSET_PETSTATE[3] = 8

Global $PETSTATE = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PETSTATE, "UShort")

$PETSTATE = $PETSTATE[1]

GETPETHEALTH()

If $PETHP = 0 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_REZKEY_KEY, "")))

Sleep(10)

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SUMMONKEY_KEY, "")))

Sleep(10)

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0

Sleep(1)

SETPETFOLLOW()

ElseIf $PETSTATE <> 0 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SUMMONKEY_KEY, "")))

Sleep(10)

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0 Or $HP = 0

Sleep(1)

SETPETFOLLOW()

EndIf

EndIf

EndFunc

 

 

Func GETPETHEALTH()

$PETNO = IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SLOT_KEY, "0")

Global $OFFSET_PETHP[5]

$OFFSET_PETHP[1] = Dec("34")

$OFFSET_PETHP[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETBASE, "")

$OFFSET_PETHP[3] = 16 + (($PETNO - 1) * 4)

$OFFSET_PETHP[4] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETHP, "")

Global $PETHP = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PETHP)

$PETHP = $PETHP[1]

EndFunc

 

 

Func GETPETHUNGER()

$PETNO = IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SLOT_KEY, "0")

Global $OFFSET_PETHUNGER[5]

$OFFSET_PETHUNGER[1] = Dec("34")

$OFFSET_PETHUNGER[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETBASE, "")

$OFFSET_PETHUNGER[3] = 16 + (($PETNO - 1) * 4)

$OFFSET_PETHUNGER[4] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETHUNGER, "")

$PETHUNGER = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PETHUNGER)

$PETHUNGER = $PETHUNGER[1]

EndFunc

 

 

Func RESETSKILLDELAYS()

$SKILL_DELAY_CHECK[1] = TimerInit()

$SKILL_DELAY_CHECK[2] = TimerInit()

$SKILL_DELAY_CHECK[3] = TimerInit()

$SKILL_DELAY_CHECK[4] = TimerInit()

$SKILL_DELAY_CHECK[5] = TimerInit()

$SKILL_DELAY_CHECK[6] = TimerInit()

$SKILL_DELAY_CHECK[7] = TimerInit()

$SKILL_DELAY_CHECK[8] = TimerInit()

$SKILL_DELAY_CHECK[9] = TimerInit()

EndFunc

 

 

Func SELLITEMS()

Sleep(1)

BUILDINVENTORYARRAY()

Local $TEMPINVENTORYARRAY = $INVENTORYARRAY, $TEMPINVENTORYARRAYSIZE = UBound($TEMPINVENTORYARRAY), $BUYLIST, $DONOTSELLLIST, $DONOTSELL

_FILEREADTOARRAY("Afford Config/" & $NAME & "_BuyList.gat", $BUYLIST)

_FILEREADTOARRAY("Afford Config/" & $NAME & "_DoNotSellList.gat", $DONOTSELLLIST)

For $I = 1 To UBound($BUYLIST) - 1

ReDim $DONOTSELLLIST[uBound($DONOTSELLLIST) + 1]

$DONOTSELLLIST[uBound($DONOTSELLLIST) - 1] = $BUYLIST[$I]

Next

For $I = 0 To $TEMPINVENTORYARRAYSIZE - 1

$DONOTSELL = False

For $J = 1 To UBound($DONOTSELLLIST) - 1

If $TEMPINVENTORYARRAY[$I][1] = $DONOTSELLLIST[$J] Then

$DONOTSELL = True

ExitLoop

EndIf

Next

If $TEMPINVENTORYARRAY[$I][0] <> 0 And $DONOTSELL = False Then

$SELLID = $TEMPINVENTORYARRAY[$I][1]

$SELLAMOUNT = $TEMPINVENTORYARRAY[$I][2]

SELLITEM($SELLID, $I, $SELLAMOUNT)

Sleep(10)

EndIf

Next

EndFunc

 

 

Func BUYITEMS()

Sleep(1)

BUILDINVENTORYARRAY()

Local $BUYLIST, $BUYLISTQTY, $CURQTY, $BUYAMOUNT, $SHOPINDEX

_FILEREADTOARRAY("Afford Config/" & $NAME & "_BuyList.gat", $BUYLIST)

_FILEREADTOARRAY("Afford Config/" & $NAME & "_BuyListQTY.gat", $BUYLISTQTY)

For $I = 1 To UBound($BUYLIST) - 1

$CURQTY = 0

For $J = 0 To $INVENTORYARRAYSIZE - 1

If $BUYLIST[$I] = $INVENTORYARRAY[$J][1] Then

$CURQTY = $CURQTY + $INVENTORYARRAY[$J][2]

EndIf

Next

ADDHISTORY("buying items")

If 0 = 0 Then

ADDHISTORY("need pots")

If $BUYLIST[$I] = 8617 Then

$SHOPINDEX = 0

ElseIf $BUYLIST[$I] = 8618 Then

$SHOPINDEX = 1

ElseIf $BUYLIST[$I] = 8619 Then

$SHOPINDEX = 2

ElseIf $BUYLIST[$I] = 8620 Then

$SHOPINDEX = 3

ElseIf $BUYLIST[$I] = 8621 Then

$SHOPINDEX = 4

ElseIf $BUYLIST[$I] = 8612 Then

$SHOPINDEX = 5

ElseIf $BUYLIST[$I] = 8613 Then

$SHOPINDEX = 6

ElseIf $BUYLIST[$I] = 8614 Then

$SHOPINDEX = 7

ElseIf $BUYLIST[$I] = 8647 Then

$SHOPINDEX = 8

ElseIf $BUYLIST[$I] = 8648 Then

$SHOPINDEX = 9

ElseIf $BUYLIST[$I] = 8649 Then

$SHOPINDEX = 10

ElseIf $BUYLIST[$I] = 8650 Then

$SHOPINDEX = 11

ElseIf $BUYLIST[$I] = 8651 Then

$SHOPINDEX = 12

ElseIf $BUYLIST[$I] = 8642 Then

$SHOPINDEX = 13

ElseIf $BUYLIST[$I] = 8643 Then

$SHOPINDEX = 14

ElseIf $BUYLIST[$I] = 8644 Then

$SHOPINDEX = 15

Else

$SHOPINDEX = "N/A"

EndIf

ADDHISTORY("Have " & $CURQTY & " Of " & $BUYLIST[$I])

If $CURQTY < $BUYLISTQTY[$I] Then

$BUYAMOUNT = $BUYLISTQTY[$I] - $CURQTY

ADDHISTORY("$curqty = " & $CURQTY)

ADDHISTORY("$buylistqty = " & $BUYLISTQTY[$I])

ADDHISTORY("$buyamount = " & $BUYAMOUNT)

Do

BUILDINVENTORYARRAY()

Sleep(10)

$CURQTY = 0

For $K = 0 To $INVENTORYARRAYSIZE - 1

If $BUYLIST[$I] = $INVENTORYARRAY[$K][1] Then

$CURQTY = $CURQTY + $INVENTORYARRAY[$K][2]

EndIf

Next

$BUYAMOUNT = $BUYLISTQTY[$I] - $CURQTY

If $BUYAMOUNT < 100 And $BUYAMOUNT > 0 Then

$AMOUNT = $BUYAMOUNT

ADDHISTORY("Buying1 " & $AMOUNT & " of " & $BUYLIST[$I] & " Shop " & $SHOPINDEX)

BUYITEM($BUYLIST[$I], $SHOPINDEX, $AMOUNT)

$AMOUNT = $AMOUNT - $BUYAMOUNT

Sleep(20)

ElseIf $BUYAMOUNT > 100 Then

$AMOUNT = 100

ADDHISTORY("Buying2 " & $AMOUNT & " of " & $BUYLIST[$I] & " Shop " & $SHOPINDEX)

BUYITEM($BUYLIST[$I], $SHOPINDEX, $AMOUNT)

$BUYAMOUNT = $BUYAMOUNT - 100

Sleep(20)

EndIf

Until $BUYAMOUNT = 0

EndIf

Else

ADDHISTORY("noshopindex")

EndIf

Next

EndFunc

 

 

Func RESURRECT()

Sleep(10)

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Resurrecting")

Do

REZTOTOWN()

Sleep(50)

SITUATIONALAWARENESS()

Until $HP > 0

_SENDMESSAGE($HANDLE, 256, KEYCODE("{ESC}"))

Sleep(1)

GETPETSTATE()

Sleep(10)

FLYMODE()

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Returning to Battle")

$CURRENTRAIL = "Resurrect"

Sleep(1)

RUNRAIL()

EndFunc

 

 

Func RESTORECHARSTATE($MODE)

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Restoring")

ADDHISTORY("Restoring")

$KEY = IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")

If $CHARSTATE = 32 Then

Sleep(5)

ElseIf $CHARSTATE <> 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

$RESTTIMER = TimerInit()

If $MODE = 1 Then

Do

PETDEF()

Sleep(10)

SITUATIONALAWARENESS()

Sleep(1)

HPMPAUTOPOTCHECK()

If $TAR <> 0 Then

$TARGET = $TAR

$HADTARGET = 1

ADDHISTORY("Defending During Restore")

$REST = 1

Sleep(1)

KILLTARGET()

If $CHARSTATE <> 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

EndIf

$RESTTIMERDIFF = TimerDiff($RESTTIMER)

Until $RESTTIMERDIFF / 60000 > 3 Or GUICtrlRead($PERC_HP) > 98 Or $TAR <> 0 Or $HP = 0

ElseIf $MODE = 2 Then

Do

PETDEF()

Sleep(10)

SITUATIONALAWARENESS()

HPMPAUTOPOTCHECK()

If $TAR <> 0 Then

$TARGET = $TAR

ADDHISTORY("Defending During Restore")

$REST = 1

$HADTARGET = 1

Sleep(1)

KILLTARGET()

If $CHARSTATE <> 32 Then

_SENDMESSAGE($HANDLE, 256, KEYCODE(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "")))

Sleep(20)

EndIf

EndIf

$RESTTIMERDIFF = TimerDiff($RESTTIMER)

Until $RESTTIMERDIFF / 60000 > 3 Or GUICtrlRead($PERC_MP) > 98 Or $TAR <> 0 Or $HP = 0

EndIf

EndFunc

 

 

Func SETEXPLIST()

For $I = 0 To 150

$EXP_NEEDED[$I] = _MEMORYREAD($APP_BASE_ADDRESSEXP + ($I * 4), $PROCESS_INFORMATION)

Next

EndFunc

 

 

Func KEYCODE($KEY)

If $KEY == "{F1}" Then

Return 112

ElseIf $KEY == "{F2}" Then

Return 113

ElseIf $KEY == "{F3}" Then

Return 114

ElseIf $KEY == "{F4}" Then

Return 115

ElseIf $KEY == "{F5}" Then

Return 116

ElseIf $KEY == "{F6}" Then

Return 117

ElseIf $KEY == "{F7}" Then

Return 118

ElseIf $KEY == "{F8}" Then

Return 119

ElseIf $KEY == "{0}" Then

Return 48

ElseIf $KEY == "{1}" Then

Return 49

ElseIf $KEY == "{2}" Then

Return 50

ElseIf $KEY == "{3}" Then

Return 51

ElseIf $KEY == "{4}" Then

Return 52

ElseIf $KEY == "{5}" Then

Return 53

ElseIf $KEY == "{6}" Then

Return 54

ElseIf $KEY == "{7}" Then

Return 55

ElseIf $KEY == "{8}" Then

Return 56

ElseIf $KEY == "{9}" Then

Return 57

ElseIf $KEY == "{TAB}" Then

Return 9

ElseIf $KEY == "{LMB}" Then

Return 1

ElseIf $KEY == "{RMB}" Then

Return 2

ElseIf $KEY == "{SHIFT}" Then

Return 160

ElseIf $KEY == "{CTRL}" Then

Return 162

ElseIf $KEY == "{ALT}" Then

Return 18

ElseIf $KEY == "{SPACE}" Then

Return 32

ElseIf $KEY == "{ESC}" Then

Return 27

ElseIf $KEY == "{+}" Then

Return 107

ElseIf $KEY == "{-}" Then

Return 109

Else

Return "none"

EndIf

EndFunc

 

 

Func ADDHISTORY($TEXT)

If _GUICTRLEDIT_GETLINECOUNT($LOG) > 14 Then

GUICtrlSetData($LOG, "")

EndIf

$OLDLOGS = GUICtrlRead($LOG)

GUICtrlSetData($LOG, $TEXT & @CRLF & $OLDLOGS)

EndFunc

 

 

Func STOPCHECK()

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_RES_ON_DIE_KEY, 0) = 1 Then

If $HP = 0 Then

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Dead")

Do

Sleep(10)

SITUATIONALAWARENESS()

If $HP = 0 Then

Sleep(10)

RESURRECT()

EndIf

Sleep(2)

Until $HP > 0

EndIf

EndIf

EndFunc

 

 

Func GETREALXYZ($RAWX, $RAWY, $RAWZ)

Local $REALXYZ

$REALX = ($RAWX + 4000) / 10

$REALY = ($RAWY + 5500) / 10

$REALZ = $RAWZ / 10

Return $REALX & "," & $REALY & "," & $REALZ

EndFunc

 

 

Func GETGRADE($X1, $Y1, $Z1, $X2, $Y2, $Z2)

Local $RISE, $RUN, $GRADE

$RISE = GETSLOPEDISTANCE($X1, $Y1, $Z1, $X2, $Y2, $Z2)

$RUN = GETDISTANCE($X1, $Y1, $X2, $Y2)

$GRADE = ($RUN / $RISE) * 100

Return $GRADE

EndFunc

 

 

Func GETDISTANCE($X1, $Y1, $X2, $Y2)

GETREALXYZ($X1, $Y1, "")

Local $DIS

$DIS = Round(10 * Sqrt(($X1 - $X2) ^ 2 + ($Y1 - $Y2) ^ 2), 1)

Return $DIS

EndFunc

 

 

Func GETSLOPEDISTANCE($X1, $Y1, $Z1, $X2, $Y2, $Z2)

Local $DIS

$DIS = Round(10 * Sqrt(($X1 - $X2) ^ 2 + ($Y1 - $Y2) ^ 2 + ($Z1 - $Z2) ^ 2), 1)

Return $DIS

EndFunc

 

 

Func STRADDCOMMA($SSTR, $SSEPERATOR = -1, $SEND = -1)

If $SSEPERATOR = -1 Or $SSEPERATOR = Default Then $SSEPERATOR = ","

If $SEND = -1 Or $SEND = Default Then $SEND = "."

Local $ANUM = StringSplit($SSTR, $SEND), $NHOLD, $ASRE, $FUB, $IADD

If UBound($ANUM) > 2 Then

$ASRE = StringRegExp($ANUM[1], "(\d+)(\d{3})", 3)

$FUB = True

Else

$ASRE = StringRegExp($SSTR, "(\d+)(\d{3})", 3)

EndIf

If UBound($ASRE) = 2 Then

While IsArray($ASRE)

$NHOLD = $SSEPERATOR & $ASRE[1] & $NHOLD

$ASRE = StringRegExp($ASRE[0], "(\d+)(\d{3})", 3)

$IADD += 1

WEnd

EndIf

If $FUB And $NHOLD Then

Return SetError(0, 0, StringTrimRight($SSTR, ($IADD + 1) * 3) & $NHOLD & $SEND & $ANUM[2])

ElseIf $NHOLD Then

Return SetError(0, 0, StringTrimRight($SSTR, $IADD * 3) & $NHOLD)

EndIf

Return SetError(1, 0, $SSTR)

EndFunc

 

 

Func _HEX($VALUE, $SIZE = 8, $TYPE = "int")

Local $TMP1, $TMP2, $I

If ($TYPE = "int") Then

$TMP1 = StringRight("000000000" & Hex($VALUE), $SIZE)

ElseIf ($TYPE = "float") Then

$TMP1 = StringRight("000000000" & _FLOATTOHEX($VALUE), $SIZE)

EndIf

For $I = 0 To StringLen($TMP1) / 2 - 1

$TMP2 = $TMP2 & StringMid($TMP1, StringLen($TMP1) - 1 - 2 * $I, 2)

Next

Return $TMP2

EndFunc

 

 

Func _FLOATTOHEX($FLOATVAL)

$SF = DllStructCreate("float")

$SB = DllStructCreate("ptr", DllStructGetPtr($SF))

If $FLOATVAL = "" Then Exit

DllStructSetData($SF, 1, $FLOATVAL)

$RETURN = DllStructGetData($SB, 1)

Return $RETURN

EndFunc

 

 

Func REV($STRING)

Local $ALL

For $I = StringLen($STRING) + 1 To 1 Step -2

$ALL = $ALL & StringMid($STRING, $I, 2)

Next

Return $ALL

EndFunc

 

 

Func _PROCESSIDPATH($VPID)

Local $OBJWMISERVICE, $OCOLITEMS

Local $SNOEXEPATH = ""

Local Const $WBEMFLAGRETURNIMMEDIATELY = 16

Local Const $WBEMFLAGFORWARDONLY = 32

Local $RETERR_PROCESSDOESNTEXIST = 1

Local $RETERR_PROCESSPATHUNKNOWN = 2

Local $RETERR_PROCESSNOTFOUND = 3

Local $RETERR_OBJCREATEERR = 4

Local $RETERR_UNKNOWNERR = 5

If Not ProcessExists($VPID) Then

SetError($RETERR_PROCESSDOESNTEXIST)

Return $SNOEXEPATH

EndIf

$OBJWMISERVICE = ObjGet("winmgmts:\\localhost\root\CIMV2")

$OCOLITEMS = $OBJWMISERVICE.ExecQuery("SELECT * FROM Win32_Process", "WQL", $WBEMFLAGRETURNIMMEDIATELY + $WBEMFLAGFORWARDONLY)

If IsObj($OCOLITEMS) Then

For $OBJITEM In $OCOLITEMS

If $VPID = $OBJITEM.ProcessId Then

If $OBJITEM.ExecutablePath = "0" Then

If FileExists(@SystemDir & "\" & $OBJITEM.Caption) Then

Return @SystemDir & "\" & $OBJITEM.Caption

Else

SetError($RETERR_PROCESSPATHUNKNOWN)

Return $SNOEXEPATH

EndIf

Else

Return $OBJITEM.Executablepath

EndIf

EndIf

Next

SetError($RETERR_PROCESSNOTFOUND)

Return $SNOEXEPATH

Else

SetError($RETERR_OBJCREATEERR)

Return $SNOEXEPATH

EndIf

SetError($RETERR_UNKNOWNERR)

Return $SNOEXEPATH

EndFunc

 

 

Func RENAMEWINDOW()

If $ANSWER Then

WinSetTitle($ANSWER, "", $NAME)

Else

Global $APP_TITLE = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_BASEADDRESS_ROOT_KEY, $CFG_BASEADDRESS_APP_KEY, "Element Client"), $PROCESS_ID = WinGetProcess($APP_TITLE), $PROCESS_INFORMATION = _MEMORYOPEN($PROCESS_ID), $HANDLE = ControlGetHandle($APP_TITLE, "", "")

EndIf

If @error Then

If @error Then

MsgBox(0, "Can´t Find Perfect World", "Impossible to detect your Perfect World. Review settings in " & $SOFTWARE_OFFSET_CONFIG & ". Set the correct value for " & $CFG_BASEADDRESS_APP_KEY & " and for " & $CFG_BASEADDRESS_KEY & " properties.")

Exit

EndIf

EndIf

EndFunc

 

 

Func SITUATIONALAWARENESS()

If TimerDiff($CHATTIMER) > 10000 Then

BUILDCHATARRAY()

If $WHISPER = 1 Then

SoundPlay("Alien.wav")

$WHISPER = 0

EndIf

$CHATTIMER = TimerInit()

EndIf

$NAME = _MEMORYREAD(_MEMORYREAD($CHAR_DATA_BASE + $OFFSET_NAME, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

If $NAME <> "" Then

$CLASS = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_CLASS, $PROCESS_INFORMATION)

$LVL = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_LVL, $PROCESS_INFORMATION)

Else

$LVL = "0"

$CLASS = "8"

EndIf

$CHARID = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_CHARID, $PROCESS_INFORMATION)

$HP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_HP, $PROCESS_INFORMATION)

$MAXHP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_MAX_HP, $PROCESS_INFORMATION)

$HPPERC = ($HP / $MAXHP) * 100

$MP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_MP, $PROCESS_INFORMATION)

$MAXMP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_MAX_MP, $PROCESS_INFORMATION)

$EXP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_EXP, $PROCESS_INFORMATION)

$STR = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_STR, $PROCESS_INFORMATION)

$DEX = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_DEX, $PROCESS_INFORMATION)

$VIT = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_VIT, $PROCESS_INFORMATION)

$MAG = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_MAG, $PROCESS_INFORMATION)

$SPIRIT = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_SPIRIT, $PROCESS_INFORMATION)

$GOLD = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_GOLD, $PROCESS_INFORMATION)

$CHI = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_CHI, $PROCESS_INFORMATION)

$AP = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_AP, $PROCESS_INFORMATION)

$X = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_X, $PROCESS_INFORMATION, "float")

$Y = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Y, $PROCESS_INFORMATION, "float")

$Z = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Z, $PROCESS_INFORMATION, "float")

$TEMPACTIONFLAG = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_ACTIONFLAG)

$MOVEMODE = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_MOVEMODE, $PROCESS_INFORMATION)

$CHARSTATE = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_CHARSTATE, $PROCESS_INFORMATION, "byte")

$ACTIONFLAG = $TEMPACTIONFLAG[1]

$CASTING = _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_CASTING, $PROCESS_INFORMATION)

BUILDGLOBALDATA()

EndFunc

 

 

Func BUILDGLOBALDATA()

BUILDPLAYERARRAY()

BUILDNPCARRAY()

Local $TAR_TEMP, $TEMPNPCARRAY, $TEMPPLAYERARRAY, $SELECTED

$TEMPNPCARRAY = $NPCARRAY

$TEMPPLAYERARRAY = $PLAYERARRAY

$TAR_TEMP = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_TAR)

$SELECTED = 0

If TimerDiff($GATHERARRAYTIMER) > 5000 Then

_FILEREADTOARRAY("Afford Config/" & $NAME & "_HerbsToLoot.gat", $HERBS)

_FILEREADTOARRAY("Afford Config/" & $NAME & "_ResourcesToLoot.gat", $RESOURCES)

$GATHERARRAYTIMER = TimerInit()

EndIf

If $TAR_TEMP[1] = 0 Then

$TAR = 0

Else

$TEMPNPCARRAY = $NPCARRAY

$TEMPNPCARRAYSIZE = $NPCARRAYSIZE

For $X = 0 To $TEMPNPCARRAYSIZE - 1

If $TAR_TEMP[1] = $TEMPNPCARRAY[$X][0] Then

$TAR = $TAR_TEMP[1]

$SELECTED = 1

ExitLoop

EndIf

Next

If $SELECTED = 1 Then

$TARNAME = $TEMPNPCARRAY[$X][1]

$TARLVL = $TEMPNPCARRAY[$X][2]

$TARHP = $TEMPNPCARRAY[$X][3]

$TARMAXHP = $TEMPNPCARRAY[$X][4]

If $TEMPNPCARRAY[$X][5] < 9 Then

$TARSPEC = $SELECTED_SPECIAL_INFO[$TEMPNPCARRAY[$X][5]]

EndIf

$TARX = Round(($TEMPNPCARRAY[$X][6] + 4000) / 10, 1)

$TARY = Round(($TEMPNPCARRAY[$X][7] + 5500) / 10, 1)

$TARZ = Round($TEMPNPCARRAY[$X][8] / 10, 1)

If $TARX <> 400 And $TARY <> 550 Then

$LASTTARX[1] = Round(($TEMPNPCARRAY[$X][6] + 4000) / 10, 1)

$LASTTARX[2] = $TEMPNPCARRAY[$X][6]

$LASTTARY[1] = Round(($TEMPNPCARRAY[$X][7] + 5500) / 10, 1)

$LASTTARY[2] = $TEMPNPCARRAY[$X][7]

$LASTTARZ[1] = Round($TEMPNPCARRAY[$X][8] / 10, 1)

$LASTTARZ[2] = $TEMPNPCARRAY[$X][8]

$TARDIS = $TEMPNPCARRAY[$X][10]

$TARHOMEDIS = $TEMPNPCARRAY[$X][11]

EndIf

Else

$TEMPPLAYERARRAY = $PLAYERARRAY

$TEMPPLAYERARRAYSIZE = $PLAYERARRAYSIZE

For $X = 0 To $TEMPPLAYERARRAYSIZE - 1

If $TAR_TEMP[1] = $TEMPPLAYERARRAY[$X][0] Then

$TAR = $TAR_TEMP[1]

$TARNAME = $TEMPPLAYERARRAY[$X][0]

$SELECTED = 2

ExitLoop

EndIf

Next

If $SELECTED = 2 Then

$TARNAME = $TEMPPLAYERARRAY[$X][1]

$TARLVL = $TEMPPLAYERARRAY[$X][2]

$TARHP = $TEMPPLAYERARRAY[$X][3]

$TARMAXHP = $TEMPPLAYERARRAY[$X][4]

$TARSPEC = $CHAR_CLASS_INFO[$TEMPPLAYERARRAY[$X][5]]

$TARX = Round(($TEMPPLAYERARRAY[$X][6] + 4000) / 10, 1)

$TARY = Round(($TEMPPLAYERARRAY[$X][7] + 5500) / 10, 1)

$TARZ = Round($TEMPPLAYERARRAY[$X][8] / 10, 1)

If $TARX <> 400 And $TARY <> 550 Then

$LASTTARX[1] = Round(($TEMPPLAYERARRAY[$X][6] + 4000) / 10, 1)

$LASTTARX[2] = $TEMPPLAYERARRAY[$X][6]

$LASTTARY[1] = Round(($TEMPPLAYERARRAY[$X][7] + 5500) / 10, 1)

$LASTTARY[2] = $TEMPPLAYERARRAY[$X][7]

$LASTTARZ[1] = Round($TEMPPLAYERARRAY[$X][8] / 10, 1)

$LASTTARZ[2] = $TEMPPLAYERARRAY[$X][8]

$TARDIS = $TEMPPLAYERARRAY[$X][10]

$TARHOMEDIS = $TEMPPLAYERARRAY[$X][11]

EndIf

EndIf

EndIf

EndIf

UPDATEGUIDATA()

EndFunc

 

 

Func UPDATEGUIDATA()

If GUICtrlRead($CHK_ANTIKS) <> IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_AKS_KEY, "0") Then

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_AKS_KEY, GUICtrlRead($CHK_ANTIKS))

EndIf

If GUICtrlRead($CHK_HBN) <> IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HBN_KEY, "0") Then

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HBN_KEY, GUICtrlRead($CHK_HBN))

EndIf

If GUICtrlRead($CHK_FZ) <> IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_FREEZE_KEY, "0") Then

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_FREEZE_KEY, GUICtrlRead($CHK_FZ))

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_FREEZE_KEY, "0") = 1 Then

$FZ = _MEMORYREAD($APP_BASE_ADDRESSFZ, $PROCESS_INFORMATION)

If $FZ <> 1 Then

_MEMORYWRITE($APP_BASE_ADDRESSFZ, $PROCESS_INFORMATION, "1")

EndIf

EndIf

If GUICtrlRead($LABEL_NAME) <> $NAME Then

GUICtrlSetData($LABEL_NAME, $NAME)

EndIf

If GUICtrlRead($LABEL_LVL) <> $LVL Then

GUICtrlSetData($LABEL_LVL, $LVL)

EndIf

If GUICtrlRead($LABEL_CLASS) <> $CHAR_CLASS_INFO[$CLASS] Then

GUICtrlSetData($LABEL_CLASS, $CHAR_CLASS_INFO[$CLASS])

EndIf

If GUICtrlRead($PERC_HP) <> $HP / $MAXHP * 100 Then

GUICtrlSetData($PERC_HP, $HP / $MAXHP * 100)

GUICtrlSetData($LABEL_HP, STRADDCOMMA($HP) & "/" & STRADDCOMMA($MAXHP))

EndIf

If GUICtrlRead($PERC_MP) <> $MP / $MAXMP * 100 Then

GUICtrlSetData($PERC_MP, $MP / $MAXMP * 100)

GUICtrlSetData($LABEL_MP, STRADDCOMMA($MP) & "/" & STRADDCOMMA($MAXMP))

EndIf

If GUICtrlRead($LABEL_EXP) <> Round($EXP / $EXP_NEEDED[$LVL] * 100, 2) & "%" Then

GUICtrlSetData($PERC_EXP, Round($EXP / $EXP_NEEDED[$LVL] * 100, 2))

GUICtrlSetData($LABEL_EXP, Round($EXP / $EXP_NEEDED[$LVL] * 100, 2) & "%")

EndIf

If GUICtrlRead($LABEL_NAME) = "" Then

GUICtrlSetData($LABEL_EXP, "0%")

EndIf

If GUICtrlRead($LABEL_LVL) = 0 Then

GUICtrlSetData($LABEL_LVL, $LVL)

EndIf

If GUICtrlRead($LABEL_NAME) = "" Then

GUICtrlSetData($LABEL_XYZ, "000/000/000")

ElseIf GUICtrlRead($LABEL_XYZ) <> Round(($X + 4000) / 10, 2) & "/" & Round(($Y + 5500) / 10, 2) & "/" & Round($Z / 10, 1) Then

$MOVEFLAG = 1

GUICtrlSetData($LABEL_XYZ, Round(($X + 4000) / 10, 2) & "/" & Round(($Y + 5500) / 10, 2) & "/" & Round($Z / 10, 1))

Else

$MOVEFLAG = 0

EndIf

If GUICtrlRead($LABEL_STR) <> $STR Then

GUICtrlSetData($LABEL_STR, $STR)

EndIf

If GUICtrlRead($LABEL_DEX) <> $DEX Then

GUICtrlSetData($LABEL_DEX, $DEX)

EndIf

If GUICtrlRead($LABEL_VIT) <> $VIT Then

GUICtrlSetData($LABEL_VIT, $VIT)

EndIf

If GUICtrlRead($LABEL_MAG) <> $MAG Then

GUICtrlSetData($LABEL_MAG, $MAG)

EndIf

If GUICtrlRead($LABEL_SPIRIT) <> $SPIRIT Then

GUICtrlSetData($LABEL_SPIRIT, $SPIRIT)

EndIf

If GUICtrlRead($LABEL_GOLD) <> $GOLD Then

GUICtrlSetData($LABEL_GOLD, $GOLD)

EndIf

If Not $TAR Then

If GUICtrlRead($LABEL_TARNAME) <> "None" Then

GUICtrlSetData($LABEL_TARNAME, "None")

EndIf

If $MOVEING = 1 Then

$LASTTARDIS = GETDISTANCE(($X + 4000) / 10, ($Y + 5500) / 10, $LASTTARX[1], $LASTTARY[1])

GUICtrlSetData($LABEL_TARDIST, $LASTTARDIS & "m")

Else

GUICtrlSetData($LABEL_TARDIST, "0m")

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") = 0 Then

GUICtrlSetData($LABEL_RADCENTER, "Infinite Radius")

Else

GUICtrlSetData($LABEL_RADCENTER, "Hunt By Radius ON")

EndIf

If GUICtrlRead($LABEL_TARSPEC) <> "None" Then

GUICtrlSetData($LABEL_TARSPEC, "None")

EndIf

If GUICtrlRead($PERC_TARHP) <> "0" Then

GUICtrlSetData($PERC_TARHP, "0")

EndIf

If GUICtrlRead($LABEL_TARHP) <> "0/0" Then

GUICtrlSetData($LABEL_TARHP, "0/0")

EndIf

Else

If GUICtrlRead($LABEL_TARNAME) <> $TARNAME & " [" & $TARLVL & "]" Then

GUICtrlSetData($LABEL_TARNAME, $TARNAME & " [" & $TARLVL & "]")

EndIf

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") = 0 Then

If GUICtrlRead($LABEL_TARDIST) <> $TARDIS Then

GUICtrlSetData($LABEL_TARDIST, $TARDIS & "m")

EndIf

Else

If GUICtrlRead($LABEL_TARDIST) <> $TARDIS & "m" Then

If IniRead($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, "0") = 0 Then

GUICtrlSetData($LABEL_RADCENTER, "0 = No Limit")

Else

GUICtrlSetData($LABEL_RADCENTER, "Dist: " & $TARHOMEDIS & "m")

EndIf

GUICtrlSetData($LABEL_TARDIST, $TARDIS & "m")

EndIf

EndIf

If GUICtrlRead($LABEL_TARSPEC) <> $TARSPEC Then

GUICtrlSetData($LABEL_TARSPEC, $TARSPEC)

EndIf

If GUICtrlRead($LABEL_TARHP) <> STRADDCOMMA($TARHP) & "/" & STRADDCOMMA($TARMAXHP) Then

GUICtrlSetData($PERC_TARHP, $TARHP / $TARMAXHP * 100)

GUICtrlSetData($LABEL_TARHP, STRADDCOMMA($TARHP) & "/" & STRADDCOMMA($TARMAXHP))

EndIf

EndIf

EndFunc

 

 

Func BUILDPLAYERARRAY()

Local $ARRAY[1][12], $SORTEDPLAYERLIST, $PLAYERCOUNTPOINTER, $PLAYERCOUNT, $PLAYERPOINTER

$PLAYERCOUNT = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PLAYERCOUNT)

If $PLAYERCOUNT[1] <> 0 Then

ReDim $ARRAY[$PLAYERCOUNT[1]][12]

For $P = 0 To ($PLAYERCOUNT[1] - 1)

$PLAYERPOINTER = _MEMORYREAD($PLAYER_DATA_BASE[1] + $P * 4, $PROCESS_INFORMATION)

$ARRAY[$P][0] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERID, $PROCESS_INFORMATION)

$ARRAY[$P][1] = _MEMORYREAD(_MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERNAME + 0, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

$ARRAY[$P][2] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERLVL, $PROCESS_INFORMATION)

$ARRAY[$P][3] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERHP, $PROCESS_INFORMATION)

$ARRAY[$P][4] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERMAXHP, $PROCESS_INFORMATION)

$ARRAY[$P][5] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERCLASS, $PROCESS_INFORMATION)

$ARRAY[$P][6] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERX, $PROCESS_INFORMATION, "float")

$ARRAY[$P][7] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERY, $PROCESS_INFORMATION, "float")

$ARRAY[$P][8] = _MEMORYREAD($PLAYERPOINTER + $OFFSET_PLAYERZ, $PROCESS_INFORMATION, "float")

$ARRAY[$P][9] = $PLAYERPOINTER

$ARRAY[$P][10] = GETSLOPEDISTANCE(($X + 4000) / 10, ($Y + 5500) / 10, $Z / 10, ($ARRAY[$P][6] + 4000) / 10, ($ARRAY[$P][7] + 5500) / 10, $ARRAY[$P][8] / 10)

$ARRAY[$P][11] = GETSLOPEDISTANCE(($HOME_X + 4000) / 10, ($HOME_Y + 5500) / 10, $HOME_Z / 10, ($ARRAY[$P][6] + 4000) / 10, ($ARRAY[$P][7] + 5500) / 10, $ARRAY[$P][8] / 10)

Next

EndIf

_ARRAYSORT($ARRAY, "", "", "", 10)

Global $PLAYERARRAY = $ARRAY, $PLAYERARRAYSIZE = $PLAYERCOUNT[1]

Sleep(1)

EndFunc

 

 

Func BUILDNPCARRAY()

Local $ARRAY[1][17], $SORTEDNPCLIST, $NPCCOUNT, $NPCPOINTER

Global $OFFSET_PETID[4]

$OFFSET_PETID[1] = Dec("34")

$OFFSET_PETID[2] = IniRead($SOFTWARE_OFFSET_CONFIG, $CFG_OFFSET_ROOT_KEY, $CFG_OFFSET_PETBASE, "")

$OFFSET_PETID[3] = Dec("3C")

Global $PETID = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_PETID)

$NPCCOUNT = _MEMORYPOINTERREAD($APP_BASE_ADDRESS, $PROCESS_INFORMATION, $OFFSET_NPCCOUNT)

If $NPCCOUNT[1] <> 0 Then

ReDim $ARRAY[$NPCCOUNT[1]][17]

For $N = 0 To ($NPCCOUNT[1] - 1)

$NPCPOINTER = _MEMORYREAD($NPC_DATA_BASE[1] + $N * 4, $PROCESS_INFORMATION)

$ARRAY[$N][0] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCID, $PROCESS_INFORMATION)

$ARRAY[$N][1] = _MEMORYREAD(_MEMORYREAD($NPCPOINTER + $OFFSET_NPCNAME, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

$ARRAY[$N][2] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCLVL, $PROCESS_INFORMATION)

$ARRAY[$N][3] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCHP, $PROCESS_INFORMATION)

$ARRAY[$N][4] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCMAXHP, $PROCESS_INFORMATION)

$ARRAY[$N][5] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCSPECIAL, $PROCESS_INFORMATION)

$ARRAY[$N][6] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCX, $PROCESS_INFORMATION, "float")

$ARRAY[$N][7] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCY, $PROCESS_INFORMATION, "float")

$ARRAY[$N][8] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCZ, $PROCESS_INFORMATION, "float")

$ARRAY[$N][9] = $NPCPOINTER

$ARRAY[$N][10] = GETSLOPEDISTANCE(($X + 4000) / 10, ($Y + 5500) / 10, $Z / 10, ($ARRAY[$N][6] + 4000) / 10, ($ARRAY[$N][7] + 5500) / 10, $ARRAY[$N][8] / 10)

$ARRAY[$N][11] = GETSLOPEDISTANCE(($HOME_X + 4000) / 10, ($HOME_Y + 5500) / 10, $HOME_Z / 10, ($ARRAY[$N][6] + 4000) / 10, ($ARRAY[$N][7] + 5500) / 10, $ARRAY[$N][8] / 10)

$ARRAY[$N][12] = _MEMORYREAD($NPCPOINTER + Dec("2DC"), $PROCESS_INFORMATION)

$ARRAY[$N][13] = _MEMORYREAD($NPCPOINTER + Dec("2E0"), $PROCESS_INFORMATION)

$ARRAY[$N][14] = _MEMORYREAD($NPCPOINTER + Dec("2B8"), $PROCESS_INFORMATION)

$ARRAY[$N][15] = _MEMORYREAD($NPCPOINTER + $OFFSET_NPCPAI, $PROCESS_INFORMATION)

$ARRAY[$N][16] = $PETID[1]

Next

EndIf

_ARRAYSORT($ARRAY, "", "", "", 10)

Global $NPCARRAY = $ARRAY, $NPCARRAYSIZE = $NPCCOUNT[1]

Sleep(1)

EndFunc

 

 

Func BUILDITEMARRAY()

Local $ARRAY[1][8], $POINTER, $ITEM_BASE, $COUNTER

For $I = 0 To 768

$POINTER = _MEMORYREAD(_MEMORYREAD($ITEM_DATA_BASE[1] + $I * 4, $PROCESS_INFORMATION) + 4, $PROCESS_INFORMATION)

If $POINTER <> 0 Then

ReDim $ARRAY[$COUNTER + 1][8]

$ARRAY[$COUNTER][0] = _MEMORYREAD($POINTER + $OFFSET_ITEMID, $PROCESS_INFORMATION)

$ARRAY[$COUNTER][1] = _MEMORYREAD($POINTER + $OFFSET_ITEMSN, $PROCESS_INFORMATION)

$ARRAY[$COUNTER][2] = _MEMORYREAD(_MEMORYREAD($POINTER + $OFFSET_ITEMNAME, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

$ARRAY[$COUNTER][3] = _MEMORYREAD($POINTER + $OFFSET_ITEMX, $PROCESS_INFORMATION, "float")

$ARRAY[$COUNTER][4] = _MEMORYREAD($POINTER + $OFFSET_ITEMY, $PROCESS_INFORMATION, "float")

$ARRAY[$COUNTER][5] = _MEMORYREAD($POINTER + $OFFSET_ITEMZ, $PROCESS_INFORMATION, "float")

$ARRAY[$COUNTER][6] = GETSLOPEDISTANCE(($X + 4000) / 10, ($Y + 5500) / 10, $Z / 10, ($ARRAY[$COUNTER][3] + 4000) / 10, ($ARRAY[$COUNTER][4] + 5500) / 10, $ARRAY[$COUNTER][5] / 10)

$ARRAY[$COUNTER][7] = GETSLOPEDISTANCE(($HOME_X + 4000) / 10, ($HOME_Y + 5500) / 10, $HOME_Z / 10, ($ARRAY[$COUNTER][3] + 4000) / 10, ($ARRAY[$COUNTER][4] + 5500) / 10, $ARRAY[$COUNTER][5] / 10)

$COUNTER += 1

EndIf

Next

_ARRAYSORT($ARRAY, "", "", "", 6)

Global $ITEMARRAY = $ARRAY, $ITEMARRAYSIZE = $COUNTER - 1

Sleep(1)

EndFunc

 

 

Func BUILDINVENTORYARRAY()

Local $ARRAY[1][7], $POINTER, $INVENTORY_BASE, $COUNTER, $INVENTORYSIZE

$INVENTORYSIZE = _MEMORYREAD(_MEMORYREAD($CHAR_DATA_BASE + 3180, $PROCESS_INFORMATION) + 16, $PROCESS_INFORMATION)

$POINTER = _MEMORYREAD(_MEMORYREAD($CHAR_DATA_BASE + 3180, $PROCESS_INFORMATION) + 12, $PROCESS_INFORMATION)

For $I = 0 To $INVENTORYSIZE - 1

$INVENTORY_BASE = _MEMORYREAD($POINTER + $I * 4, $PROCESS_INFORMATION)

ReDim $ARRAY[$I + 1][7]

$ARRAY[$I][0] = _MEMORYREAD($INVENTORY_BASE, $PROCESS_INFORMATION)

$ARRAY[$I][1] = _MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYID, $PROCESS_INFORMATION)

$ARRAY[$I][2] = _MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYSTACKAMOUNT, $PROCESS_INFORMATION)

$ARRAY[$I][3] = _MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYMAXSTACKAMOUNT, $PROCESS_INFORMATION)

$ARRAY[$I][4] = _MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYSELLPRICE, $PROCESS_INFORMATION)

$ARRAY[$I][5] = _MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYBUYPRICE, $PROCESS_INFORMATION)

$ARRAY[$I][6] = _MEMORYREAD(_MEMORYREAD($INVENTORY_BASE + $OFFSET_INVENTORYDESCRIPTION, $PROCESS_INFORMATION), $PROCESS_INFORMATION, "wchar[30]")

Next

If $ARRAY[$INVENTORYSIZE - 1][0] <> "" Then

$PACKFULL = True

Else

$PACKFULL = False

EndIf

Global $INVENTORYARRAY = $ARRAY, $INVENTORYARRAYSIZE = $INVENTORYSIZE - 1

Sleep(1)

EndFunc

 

 

Func BUILDDONOTSELLLIST()

Sleep(1)

BUILDINVENTORYARRAY()

Local $TEMPINVENTORYARRAY = $INVENTORYARRAY

Local $ARRAY[1]

For $I = 0 To UBound($TEMPINVENTORYARRAY) - 1

If $TEMPINVENTORYARRAY[$I][1] <> 0 Then

_ARRAYSEARCH($ARRAY, $TEMPINVENTORYARRAY[$I][1])

If @error = 6 Then

ReDim $ARRAY[uBound($ARRAY) + 1]

$ARRAY[uBound($ARRAY) - 1] = $TEMPINVENTORYARRAY[$I][1]

EndIf

EndIf

Next

Local $BUYLIST[1]

$BUYLIST[0] = "Insert Item ID's That You Wish To Purchase At Apothocary, Each On A Seperate Line (Delete This Text)"

Local $BUYLISTQTY[1]

$BUYLISTQTY[0] = "Insert Quantities Of The Item ID's In The Buy List, Each On A Seperate Line (Delete This Text)"

_FILEWRITEFROMARRAY("Afford Config/" & $NAME & "_DoNotSellList.gat", $ARRAY, 1)

_FILEWRITEFROMARRAY("Afford Config/" & $NAME & "_BuyList.gat", $BUYLIST, 1)

_FILEWRITEFROMARRAY("Afford Config/" & $NAME & "_BuyListQTY.gat", $BUYLISTQTY, 1)

EndFunc

 

 

Func SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

Local $PREMOTETHREAD, $VBUFFER, $LOOP, $RESULT, $OPCODE, $PROCESSHANDLE, $PACKETADDRESS

$PROCESSHANDLE = $PROCESS_INFORMATION[1]

$FUNCTIONADDRESS = DllCall($KERNEL32, "int", "VirtualAllocEx", "int", $PROCESSHANDLE, "ptr", 0, "int", 70, "int", 4096, "int", 64)

$PACKETADDRESS = DllCall($KERNEL32, "int", "VirtualAllocEx", "int", $PROCESSHANDLE, "ptr", 0, "int", $PACKETSIZE, "int", 4096, "int", 64)

$OPCODE &= "60"

$OPCODE &= "B8" & _HEX($SENDPACKETADDRESS)

$OPCODE &= "8B0D" & _HEX($REALBASEADDRESS)

$OPCODE &= "8B4920"

$OPCODE &= "BF" & _HEX($PACKETADDRESS[0])

$OPCODE &= "6A" & _HEX($PACKETSIZE, 2)

$OPCODE &= "57"

$OPCODE &= "FFD0"

$OPCODE &= "61"

$OPCODE &= "C3"

$VBUFFER = DllStructCreate("byte[" & StringLen($OPCODE) / 2 & "]")

For $LOOP = 1 To DllStructGetSize($VBUFFER)

DllStructSetData($VBUFFER, 1, Dec(StringMid($OPCODE, ($LOOP - 1) * 2 + 1, 2)), $LOOP)

Next

DllCall($KERNEL32, "int", "WriteProcessMemory", "int", $PROCESSHANDLE, "int", $FUNCTIONADDRESS[0], "int", DllStructGetPtr($VBUFFER), "int", DllStructGetSize($VBUFFER), "int", 0)

$VBUFFER = DllStructCreate("byte[" & StringLen($PACKET) / 2 & "]")

For $LOOP = 1 To DllStructGetSize($VBUFFER)

DllStructSetData($VBUFFER, 1, Dec(StringMid($PACKET, ($LOOP - 1) * 2 + 1, 2)), $LOOP)

Next

DllCall($KERNEL32, "int", "WriteProcessMemory", "int", $PROCESSHANDLE, "int", $PACKETADDRESS[0], "int", DllStructGetPtr($VBUFFER), "int", DllStructGetSize($VBUFFER), "int", 0)

$HREMOTETHREAD = DllCall($KERNEL32, "int", "CreateRemoteThread", "int", $PROCESSHANDLE, "int", 0, "int", 0, "int", $FUNCTIONADDRESS[0], "ptr", 0, "int", 0, "int", 0)

Do

$RESULT = DllCall("kernel32.dll", "int", "WaitForSingleObject", "int", $HREMOTETHREAD[0], "int", 50)

Until $RESULT[0] <> 258

DllCall($KERNEL32, "int", "CloseHandle", "int", $HREMOTETHREAD[0])

DllCall($KERNEL32, "ptr", "VirtualFreeEx", "hwnd", $PROCESSHANDLE, "int", $FUNCTIONADDRESS[0], "int", 0, "int", 32768)

DllCall($KERNEL32, "ptr", "VirtualFreeEx", "hwnd", $PROCESSHANDLE, "int", $PACKETADDRESS[0], "int", 0, "int", 32768)

Return True

EndFunc

 

 

Func LOGOUT()

Local $PACKET, $PACKETSIZE

$PACKET = "0100"

$PACKET &= "01000000"

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SELECTTARID($TARGETID)

Local $PACKET, $PACKETSIZE

$PACKET = "0200"

$PACKET &= _HEX($TARGETID)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REGULARATTACK($AFTERSKILL)

Local $PACKET, $PACKETSIZE

$PACKET = "0300"

$PACKET &= _HEX($AFTERSKILL, 2)

$PACKETSIZE = 3

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func PICKUPITEM($UNIQUEITEMID, $ITEMTYPEID)

Local $PACKET, $PACKETSIZE

$PACKET = "0600"

$PACKET &= _HEX($UNIQUEITEMID)

$PACKET &= _HEX($ITEMTYPEID)

$PACKETSIZE = 10

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func DESELECTTARGET()

Local $PACKET, $PACKETSIZE

$PACKET = "0800"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func UPDATEINVPOSITION($INVPOSITION)

Local $PACKET, $PACKETSIZE

$PACKET = "0900"

$PACKET &= _HEX($INVPOSITION, 2)

$PACKETSIZE = 3

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SWAPITEMININV($INVINDEX1, $INVINDEX2)

Local $PACKET, $PACKETSIZE

$PACKET = "0C00"

$PACKET &= _HEX($INVINDEX1, 2)

$PACKET &= _HEX($INVINDEX2, 2)

$PACKETSIZE = 4

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SPLITSTACKITEMININV($INVINDEXSOURCE, $INVINDEXDESTINATION, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "0D00"

$PACKET &= _HEX($INVINDEXSOURCE, 2)

$PACKET &= _HEX($INVINDEXDESTINATION, 2)

$PACKET &= _HEX($AMOUNT, 4)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func DROPITEMONFLOOR($INVINDEXSOURCE, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "0E00"

$PACKET &= _HEX($INVINDEXSOURCE, 2)

$PACKET &= _HEX($AMOUNT, 4)

$PACKETSIZE = 5

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SWAPEQUIP($EQUIPINDEX1, $EQUIPINDEX2)

Local $PACKET, $PACKETSIZE

$PACKET = "1000"

$PACKET &= _HEX($EQUIPINDEX1, 2)

$PACKET &= _HEX($EQUIPINDEX2, 2)

$PACKETSIZE = 4

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SWAPEQUIPWITHINV($INVINDEX, $EQUIPINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "1100"

$PACKET &= _HEX($INVINDEX, 2)

$PACKET &= _HEX($EQUIPINDEX, 2)

$PACKETSIZE = 4

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func DROPGOLD($AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "1400"

$PACKET &= _HEX($INVINDEX)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func UPDATESTATS()

Local $PACKET, $PACKETSIZE

$PACKET = "1500"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func STARTNPCDIALOGUE($NPCID)

Local $PACKET, $PACKETSIZE

$PACKET = "2300"

$PACKET &= _HEX($NPCID)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func USEITEM($INDEX, $ITEMTYPEID, $EQUIP = 0)

Local $PACKET, $PACKETSIZE

$PACKET = "2800"

$PACKET &= _HEX($EQUIP, 2)

$PACKET &= "01"

$PACKET &= _HEX($INDEX, 2)

$PACKET &= "00"

$PACKET &= _HEX($ITEMTYPEID)

$PACKETSIZE = 10

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func USESKILL($SKILLID, $TARGETID)

Local $PACKET, $PACKETSIZE

$PACKET = "2900"

$PACKET &= _HEX($SKILLID)

$PACKET &= "0001"

$PACKET &= _HEX($TARGETID)

$PACKETSIZE = 12

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func CANCELACTION()

Local $PACKET, $PACKETSIZE

$PACKET = "2A00"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func STARTMEDITATING()

Local $PACKET, $PACKETSIZE

$PACKET = "2E00"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func STOPMEDITATING()

Local $PACKET, $PACKETSIZE

$PACKET = "2F00"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func USEEMOTION($EMOTEINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "3000"

$PACKET &= _HEX($EMOTEINDEX, 4)

$PACKETSIZE = 4

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SWAPITEMINBANK($BANKINDEX1, $BANKINDEX2)

Local $PACKET, $PACKETSIZE

$PACKET = "3800"

$PACKET &= "03"

$PACKET &= _HEX($BANKINDEX1, 2)

$PACKET &= _HEX($BANKINDEX2, 2)

$PACKETSIZE = 5

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SPLITSTACKITEMINBANK($BANKINDEXSOURCE, $BANKINDEXDESTINATION, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "3900"

$PACKET &= "03"

$PACKET &= _HEX($BANKINDEXSOURCE, 2)

$PACKET &= _HEX($BANKINDEXDESTINATION, 2)

$PACKET &= _HEX($AMOUNT, 4)

$PACKETSIZE = 7

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SWAPITEMBANKANDINV($BANKINDEX, $INVINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "3A00"

$PACKET &= "03"

$PACKET &= _HEX($BANKINDEX, 2)

$PACKET &= _HEX($INVINDEX, 2)

$PACKETSIZE = 5

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SPLITSTACKITEMINBANKTOINV($BANKINDEXSOURCE, $INVINDEXDESTINATION, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "3B00"

$PACKET &= "03"

$PACKET &= _HEX($BANKINDEXSOURCE, 2)

$PACKET &= _HEX($INVINDEXDESTINATION, 2)

$PACKET &= _HEX($AMOUNT, 4)

$PACKETSIZE = 7

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SPLITSTACKITEMININVTOBANK($INVINDEXSOURCE, $BANKINDEXDESTINATION, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "3C00"

$PACKET &= "03"

$PACKET &= _HEX($INVINDEXSOURCE, 2)

$PACKET &= _HEX($BANKINDEXDESTINATION, 2)

$PACKET &= _HEX($AMOUNT, 4)

$PACKETSIZE = 7

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func USESKILLWITHOUTCASTTIME($SKILLID, $TARGETID)

Local $PACKET, $PACKETSIZE

$PACKET = "5000"

$PACKET &= _HEX($SKILLID)

$PACKET &= "0001"

$PACKET &= _HEX($TARGETID)

$PACKETSIZE = 12

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func INITIATESETTINGUPCATSHOP()

Local $PACKET, $PACKETSIZE

$PACKET = "5400"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func TOGGLEFASHIONDISPLAY()

Local $PACKET, $PACKETSIZE

$PACKET = "5500"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func INCREASEFLYSPEED($START)

Local $PACKET, $PACKETSIZE

$PACKET = "5A00"

$PACKET &= _HEX($START)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SUMMONPET($PETINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "6400"

$PACKET &= _HEX($PETINDEX)

$PACKETSIZE = 6

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func RECALLPET()

Local $PACKET, $PACKETSIZE

$PACKET = "6500"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETMODE($PETMODE)

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= "00000000"

$PACKET &= "03000000"

$PACKET &= _HEX($PETMODE)

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETFOLLOW()

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= "00000000"

$PACKET &= "02000000"

$PACKET &= "00000000"

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETSTOP()

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= "00000000"

$PACKET &= "02000000"

$PACKET &= "01000000"

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETATTACK($TARGETID)

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= _HEX($TARGETID)

$PACKET &= "01"

$PACKET &= "00000000"

$PACKETSIZE = 11

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETUSESKILL($TARGETID, $SKILLID)

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= _HEX($TARGETID)

$PACKET &= "04000000"

$PACKET &= _HEX($SKILLID)

$PACKET &= "00"

$PACKETSIZE = 15

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SETPETSTANDARDSKILL($SKILLID)

Local $PACKET, $PACKETSIZE

$PACKET = "6700"

$PACKET &= "00000000"

$PACKET &= "05000000"

$PACKET &= _HEX($SKILLID)

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func USEGENIESKILL($SKILLID, $TARGETID)

Local $PACKET, $PACKETSIZE

$PACKET = "7400"

$PACKET &= _HEX($SKILLID, 4)

$PACKET &= "0001"

$PACKET &= _HEX($TARGETID)

$PACKETSIZE = 10

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func FEEDEQUIPPEDGENIE($INVINDEX, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "7500"

$PACKET &= _HEX($INVINDEX, 2)

$PACKET &= _HEX($AMOUNT)

$PACKETSIZE = 7

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func ACCEPTQUEST($QUESTID)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "07000000"

$PACKET &= "04000000"

$PACKET &= _HEX($QUESTID)

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func HANDINQUEST($QUESTID, $OPTIONINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "06000000"

$PACKET &= "08000000"

$PACKET &= _HEX($QUESTID)

$PACKET &= _HEX($OPTIONINDEX)

$PACKET &= "09000001"

$PACKETSIZE = 18

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func SELLITEM($ITEMTYPEID, $INVINDEX, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "02000000"

$PACKET &= "10000000"

$PACKET &= "01000000"

$PACKET &= _HEX($ITEMTYPEID)

$PACKET &= _HEX($INVINDEX)

$PACKET &= _HEX($AMOUNT)

$PACKETSIZE = 26

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func BUYITEM($ITEMTYPEID, $SHOPINDEX, $AMOUNT)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "01000000"

$PACKET &= "1c000000"

$PACKET &= "00000000"

$PACKET &= "00000000"

$PACKET &= "00000000"

$PACKET &= "01000000"

$PACKET &= _HEX($ITEMTYPEID)

$PACKET &= _HEX($SHOPINDEX)

$PACKET &= _HEX($AMOUNT)

$PACKETSIZE = 38

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REPAIRALL()

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "03000000"

$PACKET &= "06000000"

$PACKET &= "FFFFFFFF"

$PACKET &= "0000"

$PACKETSIZE = 16

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REPAIRITEM($ITEMTYPEID, $ISEQUIPPED, $LOCATIONINDEX)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "03000000"

$PACKET &= "06000000"

$PACKET &= _HEX($ITEMTYPEID)

$PACKET &= _HEX($ISEQUIPPED, 2)

$PACKET &= _HEX($LOCATIONINDEX, 2)

$PACKETSIZE = 16

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func UPGRADESKILL($SKILLID)

Local $PACKET, $PACKETSIZE

$PACKET = "2500"

$PACKET &= "09000000"

$PACKET &= "04000000"

$PACKET &= _HEX($SKILLID)

$PACKETSIZE = 14

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REZTOTOWN()

Local $PACKET, $PACKETSIZE

$PACKET = "0400"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REZWITHSCROLL()

Local $PACKET, $PACKETSIZE

$PACKET = "0500"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func REZACCEPT()

Local $PACKET, $PACKETSIZE

$PACKET = "5700"

$PACKETSIZE = 2

SENDPACKET($PACKET, $PACKETSIZE, $PROCESS_ID)

EndFunc

 

 

Func STARTORSTOP()

If $STOP = True Then

GUICtrlSetData($BUTTON_START, "Stop")

GUICtrlSetOnEvent($BUTTON_START, "StartOrStop")

GUICtrlSetData($MENUITEM4, "Stop")

GUICtrlSetOnEvent($MENUITEM4, "StartOrStop")

GUICtrlSetData($LOG, "")

ADDHISTORY("[[[Afford Bot Started]]]")

$TIMER_APOTHOCARY_RAIL = TimerInit()

$STOP = False

Else

GUICtrlSetData($BUTTON_START, "Start")

GUICtrlSetOnEvent($BUTTON_START, "StartOrStop")

GUICtrlSetData($MENUITEM4, "Start")

GUICtrlSetOnEvent($MENUITEM4, "StartOrStop")

ADDHISTORY("[[[Afford Bot Stopped]]]")

$STOP = True

EndIf

EndFunc

 

 

Func SETHOMEXYZ()

$HOME_X = $X

$HOME_Y = $Y

$HOME_Z = $Z

If Not @error Then

$ATTACK_RAD = GUICtrlRead($INPT_RAD)

If GUICtrlRead($INPT_RAD) <> 0 Then

ADDHISTORY("Base = " & Round(($HOME_X + 4000) / 10, 1) & "/" & Round(($HOME_Y + 5500) / 10, 1) & " With A " & GUICtrlRead($INPT_RAD) & " Radius")

Else

ADDHISTORY("Base = " & Round(($HOME_X + 4000) / 10, 1) & "/" & Round(($HOME_Y + 5500) / 10, 1) & " With No Radius")

EndIf

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_ATTACKRAD_KEY, GUICtrlRead($INPT_RAD))

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEX_KEY, $HOME_X)

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEY_KEY, $HOME_Y)

IniWrite($SOFTWARE_CONFIG, $CFG_EXTRAS_ROOT_KEY, $CFG_EXTRAS_HOMEZ_KEY, $HOME_Z)

EndIf

EndFunc

 

 

Func DONATE()

ShellExecute($DEFAULT_BROWSER_PATH, "

É necessário se cadastrar para acessar o conteúdo.
)

EndFunc

 

 

Func WINDOWCLOSECLICKED()

Local $SOFTWAREWINPOS

$SOFTWAREWINPOS = WinGetPos($SOFTWARE_TITLE)

If $SOFTWAREWINPOS[0] <> 32000 Then

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_X, $SOFTWAREWINPOS[0])

EndIf

If $SOFTWAREWINPOS[1] <> 32000 Then

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_LAST_GUI_Y, $SOFTWAREWINPOS[1])

EndIf

Exit

EndFunc

 

 

Func SETSKILLS()

Global $FORM_SKILL = GUICreate("Skills", 250, 400, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowSkillCloseClicked")

GUISwitch($FORM_SKILL)

GUISetBkColor(65280)

GUISetFont(9, 800, 0, "MS Sans Serif")

Global $HISTORY = GUICtrlCreateGroup("Skill List", 0, 0, 250, 399)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($HISTORY), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetTip(-1, "Skills List")

Global $SCOMBOKEY[9], $SKCOUNT, $LABELSK1[9], $LABELSK2[9], $LABELSK3[9], $SDELAY[9], $FORM_SKILL

$SKCOUNTCFG = IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_UBOUND_KEY, 1)

GUISetFont(8, 800, 0, "Arial")

Global $BUTTON_ADD_SKILL = GUICtrlCreateButton("Add", 75, 28, 50, 18)

GUICtrlSetOnEvent(-1, "AddSkill")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $BUTTON_REMOVE_SKILL = GUICtrlCreateButton("Remove", 130, 28, 50, 18)

GUICtrlSetOnEvent(-1, "RemoveSkill")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $BUTTON_SAVE_SKILLS = GUICtrlCreateButton("Save", 185, 28, 50, 18)

GUICtrlSetOnEvent(-1, "SaveSkills")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

For $SKCOUNT = 1 To IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_UBOUND_KEY, 1) Step +1

$LABELSK1[$SKCOUNT] = GUICtrlCreateLabel("Key", 20, 57 + ($SKCOUNT - 1) * 42, 30, 20)

GUICtrlSetColor(-1, 0)

$SCOMBOKEY[$SKCOUNT] = GUICtrlCreateCombo("", 50, 55 + ($SKCOUNT - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $SKCOUNT, "{F1}"))

$LABELSK2[$SKCOUNT] = GUICtrlCreateLabel("Delay", 120, 57 + ($SKCOUNT - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$SDELAY[$SKCOUNT] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_DELAY_KEY & $SKCOUNT, "1"), 155, 55 + ($SKCOUNT - 1) * 42, 40, 20)

$LABELSK3[$SKCOUNT] = GUICtrlCreateLabel("Secs", 200, 57 + ($SKCOUNT - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

Next

$SKCOUNT = $SKCOUNT - 1

GUISetState(@SW_SHOW, $FORM_SKILL)

EndFunc

 

 

Func ADDSKILL()

GUISwitch($FORM_SKILL)

$SKCOUNTCFG = $SKCOUNTCFG + 1

If $SKCOUNTCFG >= 9 Then

$SKCOUNTCFG = 9

MsgBox(0, "Error", "Max Skills Reached")

Else

$LABELSK1[$SKCOUNTCFG] = GUICtrlCreateLabel("Key", 20, 57 + ($SKCOUNTCFG - 1) * 42, 30, 20)

GUICtrlSetColor(-1, 0)

$SCOMBOKEY[$SKCOUNTCFG] = GUICtrlCreateCombo("", 50, 55 + ($SKCOUNTCFG - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $SKCOUNTCFG, "{F1}"))

$LABELSK2[$SKCOUNTCFG] = GUICtrlCreateLabel("Delay", 120, 57 + ($SKCOUNTCFG - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$SDELAY[$SKCOUNTCFG] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_DELAY_KEY & $SKCOUNTCFG, "1"), 155, 55 + ($SKCOUNTCFG - 1) * 42, 40, 20)

$LABELSK3[$SKCOUNTCFG] = GUICtrlCreateLabel("secs", 200, 57 + ($SKCOUNTCFG - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

EndIf

EndFunc

 

 

Func REMOVESKILL()

GUISwitch($FORM_SKILL)

If $SKCOUNTCFG < 2 Then

$SKCOUNTCFG = 1

MsgBox(0, "Error", "Minimum Skills Reached")

Else

GUICtrlDelete($SCOMBOKEY[$SKCOUNTCFG])

GUICtrlDelete($LABELSK1[$SKCOUNTCFG])

GUICtrlDelete($LABELSK2[$SKCOUNTCFG])

GUICtrlDelete($LABELSK3[$SKCOUNTCFG])

GUICtrlDelete($SDELAY[$SKCOUNTCFG])

$SKCOUNTCFG = $SKCOUNTCFG - 1

EndIf

EndFunc

 

 

Func SAVESKILLS()

$COUNT = 1

$MAX = $SKCOUNTCFG

$ACTIVE_SKILL = 1

IniWrite($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_UBOUND_KEY, $MAX)

IniWrite($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $COUNT, GUICtrlRead($SCOMBOKEY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_DELAY_KEY & $COUNT, GUICtrlRead($SDELAY[$COUNT]))

Do

$COUNT = $COUNT + 1

IniWrite($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_COMBO_KEY & $COUNT, GUICtrlRead($SCOMBOKEY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_SKILLS_ROOT_KEY, $CFG_SKILL_DELAY_KEY & $COUNT, GUICtrlRead($SDELAY[$COUNT]))

Sleep(2)

Until $COUNT >= $MAX

GUIDelete($FORM_SKILL)

EndFunc

 

 

Func WINDOWSKILLCLOSECLICKED()

GUIDelete($FORM_SKILL)

EndFunc

 

 

Func SETLIFESUPPORT()

Global $FORM_LIFESUPPORT = GUICreate("Life Support", 621, 320, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowLifeSupportCloseClicked")

GUISwitch($FORM_LIFESUPPORT)

GUISetBkColor(65280)

Global $CHECK_AUTO_REST_HP, $CHECK_AUTO_REST_MP, $SLIDE_AUTO_REST_HP, $SLIDE_AUTO_REST_MP, $REST_KEY

Global $GROUP_AUTO_REST = GUICtrlCreateGroup("Automatic Rest", 5, 5, 160, 215)

GUICtrlSetOnEvent(-1, "SaveAutoPotRest")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_AUTO_REST), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetTip(-1, "Bot Status")

Global $CHECK_AUTO_REST_HP = GUICtrlCreateCheckbox("Restore HP", 20, 25, 90, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTO_REST_HP), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_KEY, "0") = 1 Then

$STATE = $GUI_CHECKED

Else

$STATE = $GUI_UNCHECKED

EndIf

GUICtrlSetState(-1, $STATE)

Global $SLIDE_AUTO_REST_HP = GUICtrlCreateSlider(25, 50, 100, 20)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_PERC_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetLimit(-1, 100, 0)

GUICtrlCreateLabel("0 50 100% HP", 30, 70, 120, 20)

GUICtrlSetColor(-1, 0)

Global $CHECK_AUTO_REST_MP = GUICtrlCreateCheckbox("Restore MP", 20, 100, 90, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTO_REST_MP), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 255)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $SLIDE_AUTO_REST_MP = GUICtrlCreateSlider(25, 130, 100, 20)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_PERC_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetLimit(-1, 100, 0)

GUICtrlCreateLabel("0 50 100% MP", 30, 150, 120, 20)

GUICtrlSetColor(-1, 0)

GUICtrlCreateLabel("Key:", 20, 180, 50, 20)

GUICtrlSetColor(-1, 0)

Global $REST_KEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, "--"), 60, 180, 50, 20)

GUICtrlSetData(-1, $KEYCODE, "")

Global $CHECK_AUTO_PICK, $AUTO_PICK_TIMES, $AUTO_PICK_KEY

Global $GROUP_AUTO_PICK = GUICtrlCreateGroup("Automatic Get Loot", 170, 5, 445, 75)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_AUTO_PICK), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

Global $CHECK_AUTO_PICK = GUICtrlCreateCheckbox("Auto Loot", 185, 25, 80, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTO_PICK), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 8388736)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

GUICtrlCreateLabel("Key:", 275, 28, 40, 20)

GUICtrlSetColor(-1, 0)

Global $AUTO_PICK_KEY = GUICtrlCreateCombo("", 305, 25, 50, 50)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_KEY, "--"))

Global $CHECK_AUTO_PICKHERBS = GUICtrlCreateCheckbox("Get Herbs", 185, 50, 80, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTO_PICKHERBS), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 32768)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTHERBS_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $CHECK_AUTO_PICKRESOURCES = GUICtrlCreateCheckbox("Get Resources", 285, 50, 120, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTO_PICKRESOURCES), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 8404992)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTRESOURCES_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $BUTTON_RESETMININGFILES = GUICtrlCreateButton("Reset Files", 410, 52, 80, 18)

GUICtrlSetOnEvent(-1, "ResetMiningFiles")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $CHECK_MOVE_TO_CORPSE = GUICtrlCreateCheckbox("Move To Corpse", 375, 25, 120, 18)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_MOVE_TO_CORPSE), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_MOVE_TO_CORPSE_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $CHECK_AUTOPOT_FLAG_HP, $CHECK_AUTOPOT_FLAG_MP, $SLIDE_AUTOPOT_HP, $SLIDE_AUTOPOT_MP, $AUTOPOT_HP_PERC, $AUTOPOT_MP_PERC

Global $AUTOPOT_HP_KEY, $AUTOPOT_MP_KEY

Global $CHECK_RES_ON_DIE

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

Global $GROUP_AUTOPOT = GUICtrlCreateGroup("Automatic Pot", 170, 85, 445, 135)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_AUTOPOT), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

Global $CHECK_AUTOPOT_FLAG_HP = GUICtrlCreateCheckbox("Auto-Pot HP", 185, 105, 90, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTOPOT_FLAG_HP), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_FLAG_KEY, "0") = 1 Then

$STATE = $GUI_CHECKED

Else

$STATE = $GUI_UNCHECKED

EndIf

GUICtrlSetState(-1, $STATE)

Global $SLIDE_AUTOPOT_HP = GUICtrlCreateSlider(190, 135, 100, 20)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_PERC_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetLimit(-1, 100, 0)

GUICtrlCreateLabel("0 50 100% HP", 195, 155, 120, 20)

GUICtrlSetColor(-1, 0)

GUICtrlCreateLabel("Key:", 185, 182, 50, 20)

GUICtrlSetColor(-1, 0)

Global $AUTOPOT_HP_KEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_KEY, "--"), 210, 180, 45, 20)

GUICtrlSetData(-1, $KEYCODE, "")

Global $AUTOPOT_HP_TIMER = GUICtrlCreateInput("", 260, 180, 20, 21)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_TIMER, "1"))

GUICtrlCreateLabel("Sec", 285, 182, 20, 20)

GUICtrlSetColor(-1, 0)

Global $AUTOHP_KEY, $CHECK_AUTOHP_FLAG, $SLIDE_AUTOHP, $AUTOHP_PERC, $CFG_HEAL_AUTOHP_FLAG_KEY = $NAME & "--" & "AUTOHPFlag", $CFG_HEAL_AUTOHP_PERC_KEY = $NAME & "--" & "AUTOHPPerc", $CFG_HEAL_AUTOHP_KEY = $NAME & "--" & "AUTOHPKey"

Global $CHECK_AUTOHP_FLAG = GUICtrlCreateCheckbox("Auto-HP 2", 330, 105, 90, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTOHP_FLAG), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $SLIDE_AUTOHP = GUICtrlCreateSlider(335, 135, 100, 20)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_PERC_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetLimit(-1, 100, 0)

GUICtrlCreateLabel("0 50 100% HP", 340, 155, 120, 20)

GUICtrlSetColor(-1, 0)

GUICtrlCreateLabel("Key:", 330, 182, 50, 20)

GUICtrlSetColor(-1, 0)

Global $AUTOHP_KEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_KEY, "--"), 355, 180, 45, 20)

GUICtrlSetData(-1, $KEYCODE, "")

Global $AUTOHP_TIMER = GUICtrlCreateInput("", 405, 180, 20, 21)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_TIMER, "1"))

GUICtrlCreateLabel("Sec", 430, 182, 20, 20)

GUICtrlSetColor(-1, 0)

Global $CHECK_AUTOPOT_FLAG_MP = GUICtrlCreateCheckbox("Auto-Pot MP", 475, 105, 90, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_AUTOPOT_FLAG_MP), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 255)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $SLIDE_AUTOPOT_MP = GUICtrlCreateSlider(480, 135, 100, 20)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_PERC_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetLimit(-1, 100, 0)

GUICtrlCreateLabel("0 50 100% MP", 485, 155, 120, 20)

GUICtrlSetColor(-1, 0)

GUICtrlCreateLabel("Key:", 475, 182, 50, 20)

GUICtrlSetColor(-1, 0)

Global $AUTOPOT_MP_KEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_KEY, "--"), 500, 180, 45, 20)

GUICtrlSetData(-1, $KEYCODE, "")

Global $GROUP_AUTO_RAIL = GUICtrlCreateGroup("Rail Systems", 5, 220, 505, 95)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_AUTO_RAIL), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetTip(-1, "Bot Status")

Global $CHECK_RES_ON_DIE = GUICtrlCreateCheckbox("Res On Die", 20, 240, 120, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_RES_ON_DIE), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_RES_ON_DIE_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $BUTTON_SETRESURRECTRAIL = GUICtrlCreateButton("Set Rail", 165, 240, 80, 18)

GUICtrlSetOnEvent(-1, "SetResurrectRail")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $BUTTON_TESTRESURRECTRAIL = GUICtrlCreateButton("Test Rail", 255, 240, 80, 18)

GUICtrlSetOnEvent(-1, "RunResurrectRail")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $CHECK_APOTHOCARY_RAIL = GUICtrlCreateCheckbox("Apothocary Rail", 20, 262, 120, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_APOTHOCARY_RAIL), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_RAIL_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $BUTTON_SETAPOTHOCARYRAIL = GUICtrlCreateButton("Set Rail", 165, 262, 80, 18)

GUICtrlSetOnEvent(-1, "SetApothocaryRail")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

Global $BUTTON_TESAPOTHOCARYRAIL = GUICtrlCreateButton("Test Rail", 255, 262, 80, 18)

GUICtrlSetOnEvent(-1, "RunApothocaryRail")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlCreateLabel("How Often:", 350, 264, 60, 20)

GUICtrlSetColor(-1, 0)

Global $APOTHOCARY_TIMER = GUICtrlCreateInput("", 410, 262, 30, 18)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_TIMER_KEY, "1"))

GUICtrlCreateLabel("Hours", 445, 264, 60, 20)

GUICtrlSetColor(-1, 0)

Global $BUTTON_SETDONOTSELLLIST = GUICtrlCreateButton("Set Do Not Sell List", 165, 284, 170, 18)

GUICtrlSetOnEvent(-1, "BuildDoNotSellList")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlCreateLabel("<- Will not sell any items in pack", 350, 286, 150, 20)

GUICtrlSetColor(-1, 0)

Global $CHK_FLYMODE = GUICtrlCreateCheckbox("FLYMODE", 20, 286, 120, 18)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHK_FLYMODE), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 15743782)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

GUICtrlCreateLabel("<= CPU Throttle", 535, 228, 80, 30)

GUICtrlSetColor(-1, 0)

Global $SLIDE_CPUTHROTTLE = GUICtrlCreateSlider(513, 226, 18, 90, BitOR($TBS_VERT, $TBS_AUTOTICKS, $TBS_NOTICKS))

GUICtrlSetLimit(-1, 750, 100)

GUICtrlSetData(-1, IniRead($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_CPU_THROTTLE_KEY, "0"))

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetColor(-1, 0)

Global $BUTTON_SAVE_AUTOPOTREST = GUICtrlCreateButton("Save", 534, 298, 80, 18)

GUICtrlSetOnEvent(-1, "SaveAutoPotRest")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUISetState(@SW_SHOW, $FORM_LIFESUPPORT)

EndFunc

 

 

Func SETRESURRECTRAIL()

$CURRENTRAIL = "Resurrect"

$RAIL_LIST_COUNT = 0

ToolTip("Now go back to the game!", 0, 0)

WinWaitActive($APP_TITLE)

ToolTip("Go to nearest Teleport Master and press F11. Run to hunting ground pressing F11 every 20+ meters", 0, 0)

HotKeySet("{F11}", "SaveRailPointInList")

EndFunc

 

 

Func RUNRESURRECTRAIL()

$CURRENTRAIL = "Resurrect"

RUNRAIL()

EndFunc

 

 

Func SETAPOTHOCARYRAIL()

ToolTip("Now go back to the game!", 0, 0)

WinWaitActive($APP_TITLE)

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, 0)

ToolTip("Go to nearest Apothocary, select it, and press Shift + F10", 0, 0)

HotKeySet("+{F10}", "SetApothocaryID")

Sleep(2)

Do

SITUATIONALAWARENESS()

Sleep(10)

Until IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, "") <> 0

HotKeySet("+{F10}", "")

ADDHISTORY("Set Apothocary ID = " & IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, ""))

$CURRENTRAIL = "Apothocary"

$RAIL_LIST_COUNT = 0

ToolTip("Now go back to the game!", 0, 0)

WinWaitActive($APP_TITLE)

ToolTip("press F11 now, Run to hunting ground pressing F11 every 20+ meters", 0, 0)

HotKeySet("{F11}", "SaveRailPointInList")

EndFunc

 

 

Func SETAPOTHOCARYID()

If $TARDIS < 20 Then

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, $TAR)

Else

ToolTip("Stand closer to Apothocary ", 0, 0)

EndIf

EndFunc

 

 

Func RUNAPOTHOCARYRAIL()

$CURRENTRAIL = "Apothocary"

If $HP > 0 Then

Sleep(10)

FLYMODE()

RUNRAIL()

EndIf

Sleep(1)

BUILDNPCARRAY()

Local $TEMPNPCARRAY[1][13], $TEMPNPCARRAYSIZE

GUICtrlSetData($LABEL_GENERAL_STATUS, "Action: Running Apothocary Rail")

$TEMPNPCARRAY = $NPCARRAY

$TEMPNPCARRAYSIZE = UBound($TEMPNPCARRAY)

For $A = 0 To $TEMPNPCARRAYSIZE - 1

If IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, "") = $TEMPNPCARRAY[$A][0] And $TEMPNPCARRAY[$A][10] < 30 Then

Sleep(1)

TALKTONPC(IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, ""))

Sleep(10)

Do

Sleep(10)

SITUATIONALAWARENESS()

Until $ACTIONFLAG = 0

Sleep(20)

REPAIRALL()

Sleep(20)

SELLITEMS()

Sleep(20)

BUYITEMS()

Sleep(20)

_SENDMESSAGE($HANDLE, 256, KEYCODE("{ESC}"))

Sleep(200)

RUNAPOTHOCARYRAIL()

$TIMER_APOTHOCARY_RAIL = TimerInit()

EndIf

Next

EndFunc

 

 

Func TALKTOAPOTHOCARY()

ADDHISTORY("Trying to talk to NPC")

Sleep(1)

TALKTONPC(IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_APOTHOCARYID_KEY, ""))

EndFunc

 

 

Func RUNRAIL()

If Round(10 * Sqrt((($X + 4000) / 10 - Round((IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & "1", "0") + 4000) / 10, 2)) ^ 2 + (($Y + 5500) / 10 - Round((IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & "1", "0") + 5500) / 10, 2)) ^ 2 + ($Z / 10 - Round(IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & "1", "0") / 10, 2)) ^ 2), 1) < Round(10 * Sqrt((($X + 4000) / 10 - Round((IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, ""), "0") + 4000) / 10, 2)) ^ 2 + (($Y + 5500) / 10 - Round((IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, ""), "0") + 5500) / 10, 2)) ^ 2 + (($Z / 10) - Round(IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, ""), "0") / 10, 2)) ^ 2), 1) Then

$RAIL_LIST_COUNT = 0

Do

Sleep(10)

SITUATIONALAWARENESS()

If $HP > 0 Then

FLYMODE()

HPMPAUTOPOTCHECK()

EndIf

Sleep(1)

If $KILL = 0 Then

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT + 1

$MOVEING = 1

$LASTTARX[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARX[1] = Round(($LASTTARX[2] + 4000) / 10, 2)

$LASTTARZ[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARZ[1] = Round(($LASTTARZ[2]) / 10, 2)

$LASTTARY[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARY[1] = Round(($LASTTARY[2] + 5500) / 10, 2)

MOVETOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $LASTTARZ[1])

If $KILL = 1 Then

If $TAR <> 0 Then

ADDHISTORY("Defending During Movement")

$TARGET = $TAR

$HADTARGET = 1

Sleep(1)

KILLTARGET()

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT - 1

Sleep(2)

EndIf

EndIf

ElseIf $KILL = 1 Then

$KILL = 0

$LASTTARX[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARX[1] = Round(($LASTTARX[2] + 4000) / 10, 2)

$LASTTARZ[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARZ[1] = Round(($LASTTARZ[2]) / 10, 2)

$LASTTARY[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARY[1] = Round(($LASTTARY[2] + 5500) / 10, 2)

MOVETOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $LASTTARZ[1])

If $TAR <> 0 Then

ADDHISTORY("Defending During Movement")

$TARGET = $TAR

$HADTARGET = 1

Sleep(1)

KILLTARGET()

EndIf

EndIf

If $STOP = True Then

Return

EndIf

Sleep(1)

Until $RAIL_LIST_COUNT >= "251" Or $RAIL_LIST_COUNT >= IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, "") Or $HP = 0

Else

$RAIL_LIST_COUNT = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, "")

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT - 1

Do

Sleep(10)

SITUATIONALAWARENESS()

If $HP > 0 Then

FLYMODE()

HPMPAUTOPOTCHECK()

EndIf

Sleep(1)

If $KILL = 0 Then

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT - 1

$MOVEING = 1

$LASTTARX[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARX[1] = Round(($LASTTARX[2] + 4000) / 10, 2)

$LASTTARZ[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARZ[1] = Round(($LASTTARZ[2]) / 10, 2)

$LASTTARY[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARY[1] = Round(($LASTTARY[2] + 5500) / 10, 2)

Sleep(10)

MOVETOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $LASTTARZ[1])

If $KILL = 1 Then

If $TAR <> 0 Then

ADDHISTORY("Defending During Movement")

$TARGET = $TAR

$HADTARGET = 1

Sleep(10)

KILLTARGET()

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT + 1

Sleep(2)

EndIf

EndIf

ElseIf $KILL = 1 Then

$KILL = 0

$LASTTARX[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARX[1] = Round(($LASTTARX[2] + 4000) / 10, 2)

$LASTTARZ[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARZ[1] = Round(($LASTTARZ[2]) / 10, 2)

$LASTTARY[2] = IniRead($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, "0")

$LASTTARY[1] = Round(($LASTTARY[2] + 5500) / 10, 2)

Sleep(10)

MOVETOXYZ($LASTTARX[2], $LASTTARY[2], $LASTTARZ[2], $LASTTARZ[1])

If $TAR <> 0 Then

ADDHISTORY("Defending During Movement")

$TARGET = $TAR

$HADTARGET = 1

Sleep(1)

KILLTARGET()

EndIf

EndIf

If $STOP = True Then

Return

EndIf

Sleep(1)

Until $RAIL_LIST_COUNT = 1 Or $HP = 0

EndIf

$MOVEING = 0

EndFunc

 

 

Func SAVERAILPOINTINLIST()

HotKeySet("{F10}", "EndRailPointList")

$RAIL_LIST_COUNT = $RAIL_LIST_COUNT + 1

If $RAIL_LIST_COUNT <= 250 Then

If $RAIL_LIST_COUNT <= 249 Then

ToolTip("Rail Point " & $RAIL_LIST_COUNT & " Saved" & @CRLF & "Run to next point and press F11 to set or F10 To end", 0, 0)

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, $RAIL_LIST_COUNT)

Else

ToolTip("Rail Point " & $RAIL_LIST_COUNT & " Saved" & @CRLF & "Maximum Rail Points Reached", 0, 0)

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_UBOUND_KEY & $CURRENTRAIL, $RAIL_LIST_COUNT)

EndIf

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_X_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_X, $PROCESS_INFORMATION, "float"))

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Y_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Y, $PROCESS_INFORMATION, "float"))

IniWrite($SOFTWARE_CONFIG, $CFG_RAIL_ROOT_KEY, $CFG_RAIL_Z_KEY & $CURRENTRAIL & $RAIL_LIST_COUNT, _MEMORYREAD($CHAR_DATA_BASE + $OFFSET_Z, $PROCESS_INFORMATION, "float"))

Sleep(15)

ToolTip("")

Else

ToolTip("Max Rail Points Reached. Test Rail for Errors", 0, 0)

EndIf

EndFunc

 

 

Func ENDRAILPOINTLIST()

ToolTip("Rail Finished, Test Rail for Errors", 0, 0)

Sleep(10)

ToolTip("")

HotKeySet("{F10}")

HotKeySet("{F11}")

EndFunc

 

 

Func RESETMININGFILES()

Global $HERBS[31] = ["", "Nectar", "Salvia Root", "Ageratum", "Golden Herb", "Tranquillia Herb", "Elderwood", "Elecampane", "Realgar", "Palo Herb", "Tuckahoe", "Crane Herb", "Black Henbane", "Fleece-flower Root", "Green Berry", "Ligumaloes Wood", "Valdia Root", "Serpentine Herb", "Ox Bezoar", "Tulip", "Perfumedew Herb", "Butterfly Herb", "Tiger-ear Herb", "Red Berry", "Worm Sprouts", "White Berry", "Devilwood", "Scented Fungus", "Tiery Herb", "Longen Herb"]

_FILEWRITEFROMARRAY("Afford Config/" & $NAME & "_HerbsToLoot.gat", $HERBS, 1)

Global $RESOURCES[23] = ["", "Withered Tree Root", "Old Tree Root", "Willow Stake", "Peatree Stake", "Dragonwood Stake", "Cinnabar Ore", "Iron Ore", "Black Iron Ore", "Manganese Iron Ore", "Hsuan Iron Ore", "Meteorite Iron Ore", "Sandstone Rock", "Gravel Pile", "Rubstone Rock", "Corundum Rock", "Granite ROck", "Rough Coal Stack", "Coal Stack", "Fine Coal Stack", "Volcanic Coal Stack", "Lava Coal Stack"]

_FILEWRITEFROMARRAY("Afford Config/" & $NAME & "_ResourcesToLoot.gat", $RESOURCES, 1)

EndFunc

 

 

Func SAVEAUTOPOTREST()

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_KEY, GUICtrlRead($CHECK_AUTO_REST_HP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_HP_PERC_KEY, GUICtrlRead($SLIDE_AUTO_REST_HP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_KEY, GUICtrlRead($CHECK_AUTO_REST_MP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_MP_PERC_KEY, GUICtrlRead($SLIDE_AUTO_REST_MP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOREST_KEY, GUICtrlRead($REST_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_FM_KEY, GUICtrlRead($CHK_FLYMODE))

IniWrite($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_FLAG_KEY, GUICtrlRead($CHECK_AUTO_PICK))

IniWrite($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_KEY, GUICtrlRead($AUTO_PICK_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOT_TIMES_KEY, GUICtrlRead($AUTO_PICK_TIMES))

IniWrite($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTHERBS_FLAG_KEY, GUICtrlRead($CHECK_AUTO_PICKHERBS))

IniWrite($SOFTWARE_CONFIG, $CFG_LOOT_ROOT_KEY, $CFG_LOOTRESOURCES_FLAG_KEY, GUICtrlRead($CHECK_AUTO_PICKRESOURCES))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_FLAG_KEY, GUICtrlRead($CHECK_AUTOPOT_FLAG_HP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_PERC_KEY, GUICtrlRead($SLIDE_AUTOPOT_HP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_KEY, GUICtrlRead($AUTOPOT_HP_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_HP_TIMER, GUICtrlRead($AUTOPOT_HP_TIMER))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_FLAG_KEY, GUICtrlRead($CHECK_AUTOHP_FLAG))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_PERC_KEY, GUICtrlRead($SLIDE_AUTOHP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_KEY, GUICtrlRead($AUTOHP_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOHP_TIMER, GUICtrlRead($AUTOHP_TIMER))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_FLAG_KEY, GUICtrlRead($CHECK_AUTOPOT_FLAG_MP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_PERC_KEY, GUICtrlRead($SLIDE_AUTOPOT_MP))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_AUTOPOT_MP_KEY, GUICtrlRead($AUTOPOT_MP_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_RES_ON_DIE_KEY, GUICtrlRead($CHECK_RES_ON_DIE))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_MOVE_TO_CORPSE_KEY, GUICtrlRead($CHECK_MOVE_TO_CORPSE))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_RAIL_KEY, GUICtrlRead($CHECK_APOTHOCARY_RAIL))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_APOTHOCARY_TIMER_KEY, GUICtrlRead($APOTHOCARY_TIMER))

IniWrite($SOFTWARE_CONFIG, $CFG_HEAL_ROOT_KEY, $CFG_HEAL_CPU_THROTTLE_KEY, GUICtrlRead($SLIDE_CPUTHROTTLE))

GUIDelete($FORM_LIFESUPPORT)

EndFunc

 

 

Func WINDOWLIFESUPPORTCLOSECLICKED()

HotKeySet("{F11}")

HotKeySet("{F10}")

GUIDelete($FORM_LIFESUPPORT)

EndFunc

 

 

Func SETPETSUPPORT()

Global $FORM_PETSUPPORT = GUICreate("Pet Support", 250, 259, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowPetSupportCloseClicked")

GUISetBkColor(65280)

GUISwitch($FORM_PETSUPPORT)

Global $GROUP_PETSUPPORT = GUICtrlCreateGroup("Pet Support", 0, 0, 250, 400)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_PETSUPPORT), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

Global $PETNO = IniRead("smurfit.ini", "WF Pet", "petslot", "1")

Global $CHECK_HEALPET = GUICtrlCreateCheckbox("Auto Heal Pet", 5, 20, 100, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_HEALPET), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_CHECK_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $CHECK_PETATTACK = GUICtrlCreateCheckbox("Pet Attack First", 120, 20, 125, 17)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_PETATTACK), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETATTACK_CHECK_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

Global $GROUP_PETSETTING = GUICtrlCreateGroup("Auto Heal Pet Settings", 25, 40, 200, 196)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_PETSETTING), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

Global $LABEL_PETSLOT = GUICtrlCreateLabel("Pet Slot :", 90, 61, 52, 18)

GUICtrlSetColor(-1, 0)

Global $LABEL_PETHEALHP = GUICtrlCreateLabel("HP To Heal At :", 58, 91, 79, 18)

GUICtrlSetColor(-1, 0)

Global $LABEL_PETHEALKEY = GUICtrlCreateLabel("Heal Pet Key :", 65, 119, 70, 18)

GUICtrlSetColor(-1, 0)

Global $LABEL_PETFEEDKEY = GUICtrlCreateLabel("Feed Pet Key :", 63, 148, 70, 18)

GUICtrlSetColor(-1, 0)

Global $LABEL_PETSUMMONKEY = GUICtrlCreateLabel("Summon Pet Key :", 47, 177, 90, 18)

GUICtrlSetColor(-1, 0)

Global $LABEL_PETREZKEY = GUICtrlCreateLabel("Rez Pet Key :", 69, 203, 90, 18)

GUICtrlSetColor(-1, 0)

Global $INPUT_PETSLOT = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SLOT_KEY, "0"), 148, 59, 50, 22)

Global $INPUT_PETHP = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HP_KEY, "0"), 148, 88, 50, 22)

Global $INPUT_PETHEALKEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HEALKEY_KEY, "--"), 148, 117, 50, 22)

GUICtrlSetData(-1, $KEYCODE, "")

Global $INPUT_PETFEEDKEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_FEEDKEY_KEY, "--"), 148, 146, 50, 22)

GUICtrlSetData(-1, $KEYCODE, "")

Global $INPUT_PETSUMMONKEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SUMMONKEY_KEY, "--"), 148, 175, 50, 22)

GUICtrlSetData(-1, $KEYCODE, "")

Global $INPUT_PETREZKEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_REZKEY_KEY, "--"), 148, 203, 50, 22)

GUICtrlSetData(-1, $KEYCODE, "")

Global $BUTTON_SAVE_PETSETTING = GUICtrlCreateButton("Save", 146, 239, 80, 18)

GUICtrlSetOnEvent(-1, "SaveSetPetSupport")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUISetState(@SW_SHOW, $FORM_PETSUPPORT)

EndFunc

 

 

Func SAVESETPETSUPPORT()

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_CHECK_KEY, GUICtrlRead($CHECK_HEALPET))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SLOT_KEY, GUICtrlRead($INPUT_PETSLOT))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HP_KEY, GUICtrlRead($INPUT_PETHP))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETATTACK_CHECK_KEY, GUICtrlRead($CHECK_PETATTACK))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_HEALKEY_KEY, GUICtrlRead($INPUT_PETHEALKEY))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_FEEDKEY_KEY, GUICtrlRead($INPUT_PETFEEDKEY))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_SUMMONKEY_KEY, GUICtrlRead($INPUT_PETSUMMONKEY))

IniWrite($SOFTWARE_CONFIG, $CFG_PETHEAL_ROOT_KEY, $CFG_PETHEAL_REZKEY_KEY, GUICtrlRead($INPUT_PETREZKEY))

GUIDelete($FORM_PETSUPPORT)

EndFunc

 

 

Func WINDOWPETSUPPORTCLOSECLICKED()

GUIDelete($FORM_PETSUPPORT)

EndFunc

 

 

Func SETAUTOBUFFS()

Global $FORM_BUFFS = GUICreate("Auto-Buff", 370, 230, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowAutoBuffCloseClicked")

GUISetBkColor(65280)

GUISwitch($FORM_BUFFS)

Global $BUFFSCOMBOKEY[9], $BUFFSCOUNT, $LABELBUFFS1[9], $LABELBUFFS2[9], $LABELBUFFS3[9], $LABELBUFFS4[9], $LABELBUFFS5[9], $BUFFSDELAY[9], $BUFFSFREQUENCY[9]

Global $BUFFS_FLAG

$SKCOUNTCFG_BUFFS = IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, 1)

$GROUP_BUFFS = GUICtrlCreateGroup("Buffs", 0, 0, 370, 230)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_BUFFS), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

$BUTTON_ADD_BUFFS = GUICtrlCreateButton("Add", 75, 28, 50, 18)

GUICtrlSetOnEvent(-1, "AddBuffs")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$BUTTON_REMOVE_BUFFS = GUICtrlCreateButton("Remove", 130, 28, 50, 18)

GUICtrlSetOnEvent(-1, "RemoveBuffs")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$BUTTON_SAVE_BUFFS = GUICtrlCreateButton("Save", 185, 28, 50, 18)

GUICtrlSetOnEvent(-1, "SaveBuffs")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$BUFFS_FLAG = GUICtrlCreateCheckbox("Use Auto-Buff", 250, 28, 100, 18)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($BUFFS_FLAG), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

For $BUFFSCOUNT = 1 To IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, 1) Step +1

$LABELBUFFS1[$BUFFSCOUNT] = GUICtrlCreateLabel("Key", 20, 57 + ($BUFFSCOUNT - 1) * 42, 30, 20)

GUICtrlSetColor(-1, 0)

$BUFFSCOMBOKEY[$BUFFSCOUNT] = GUICtrlCreateCombo("", 50, 55 + ($BUFFSCOUNT - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $BUFFSCOUNT, "{F1}"))

$LABELBUFFS2[$BUFFSCOUNT] = GUICtrlCreateLabel("Delay", 120, 57 + ($BUFFSCOUNT - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$BUFFSDELAY[$BUFFSCOUNT] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_DELAY_KEY & $BUFFSCOUNT, "1"), 155, 55 + ($BUFFSCOUNT - 1) * 42, 40, 20)

$LABELBUFFS3[$BUFFSCOUNT] = GUICtrlCreateLabel("secs", 200, 57 + ($BUFFSCOUNT - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

$LABELBUFFS4[$BUFFSCOUNT] = GUICtrlCreateLabel("Interval", 235, 57 + ($BUFFSCOUNT - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$BUFFSFREQUENCY[$BUFFSCOUNT] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FREQUENCY_KEY & $BUFFSCOUNT, "1"), 280, 55 + ($BUFFSCOUNT - 1) * 42, 40, 20)

$LABELBUFFS5[$BUFFSCOUNT] = GUICtrlCreateLabel("mins", 325, 57 + ($BUFFSCOUNT - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

Next

$BUFFSCOUNT = $BUFFSCOUNT - 1

GUISetState(@SW_SHOW, $FORM_BUFFS)

EndFunc

 

 

Func ADDBUFFS()

GUISwitch($FORM_BUFFS)

$SKCOUNTCFG_BUFFS = $SKCOUNTCFG_BUFFS + 1

If $SKCOUNTCFG_BUFFS >= 5 Then

$SKCOUNTCFG_BUFFS = 4

MsgBox(0, "Error", "Max Auto-Buffs Reached")

Else

$LABELBUFFS1[$SKCOUNTCFG_BUFFS] = GUICtrlCreateLabel("Key", 20, 57 + ($SKCOUNTCFG_BUFFS - 1) * 42, 30, 20)

GUICtrlSetColor(-1, 0)

$BUFFSCOMBOKEY[$SKCOUNTCFG_BUFFS] = GUICtrlCreateCombo("", 50, 55 + ($SKCOUNTCFG_BUFFS - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $SKCOUNTCFG_BUFFS, "{F1}"))

$LABELBUFFS2[$SKCOUNTCFG_BUFFS] = GUICtrlCreateLabel("Delay", 120, 57 + ($SKCOUNTCFG_BUFFS - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$BUFFSDELAY[$SKCOUNTCFG_BUFFS] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_DELAY_KEY & $SKCOUNTCFG_BUFFS, "1"), 155, 55 + ($SKCOUNTCFG_BUFFS - 1) * 42, 40, 20)

$LABELBUFFS3[$SKCOUNTCFG_BUFFS] = GUICtrlCreateLabel("secs", 200, 57 + ($SKCOUNTCFG_BUFFS - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

$LABELBUFFS4[$SKCOUNTCFG_BUFFS] = GUICtrlCreateLabel("Interval", 235, 57 + ($SKCOUNTCFG_BUFFS - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$BUFFSFREQUENCY[$SKCOUNTCFG_BUFFS] = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FREQUENCY_KEY & $BUFFSCOUNT, "1"), 280, 55 + ($SKCOUNTCFG_BUFFS - 1) * 42, 40, 20)

$LABELBUFFS5[$SKCOUNTCFG_BUFFS] = GUICtrlCreateLabel("mins", 325, 57 + ($SKCOUNTCFG_BUFFS - 1) * 42, 35, 20)

GUICtrlSetColor(-1, 0)

EndIf

EndFunc

 

 

Func REMOVEBUFFS()

GUISwitch($FORM_BUFFS)

If $SKCOUNTCFG_BUFFS < 2 Then

$SKCOUNTCFG_BUFFS = 1

MsgBox(0, "Error", "Minimum Auto-Buffs Reached")

Else

GUICtrlDelete($BUFFSCOMBOKEY[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($LABELBUFFS1[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($LABELBUFFS2[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($LABELBUFFS3[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($LABELBUFFS4[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($LABELBUFFS5[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($BUFFSDELAY[$SKCOUNTCFG_BUFFS])

GUICtrlDelete($BUFFSFREQUENCY[$SKCOUNTCFG_BUFFS])

$SKCOUNTCFG_BUFFS = $SKCOUNTCFG_BUFFS - 1

EndIf

EndFunc

 

 

Func SAVEBUFFS()

$COUNT = 1

$MAX = $SKCOUNTCFG_BUFFS

$ACTIVE_BUFFS = 1

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_UBOUND_KEY, $MAX)

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FLAG_KEY, GUICtrlRead($BUFFS_FLAG))

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $COUNT, GUICtrlRead($BUFFSCOMBOKEY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_DELAY_KEY & $COUNT, GUICtrlRead($BUFFSDELAY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FREQUENCY_KEY & $COUNT, GUICtrlRead($BUFFSFREQUENCY[$COUNT]))

Do

$COUNT = $COUNT + 1

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_COMBO_KEY & $COUNT, GUICtrlRead($BUFFSCOMBOKEY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_DELAY_KEY & $COUNT, GUICtrlRead($BUFFSDELAY[$COUNT]))

IniWrite($SOFTWARE_CONFIG, $CFG_BUFFS_ROOT_KEY, $CFG_BUFFS_FREQUENCY_KEY & $COUNT, GUICtrlRead($BUFFSFREQUENCY[$COUNT]))

Sleep(25)

Until $COUNT >= $MAX

GUIDelete($FORM_BUFFS)

EndFunc

 

 

Func WINDOWAUTOBUFFCLOSECLICKED()

GUIDelete($FORM_BUFFS)

EndFunc

 

 

Func SETCHANGEWEAPONS()

Global $FORM_WEAPONS = GUICreate("Auto Rotate Weapon", 340, 230, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowChangeWeaponsCloseClicked")

GUISetBkColor(65280)

GUISwitch($FORM_WEAPONS)

Global $WEAPONSCOMBOKEY[9], $WEAPONSCOUNT, $LABELWEAPONS1[9], $WEAPONS_DELAY

Global $WEAPONS_FLAG

$SKCOUNTCFG_WEAPONS = IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_UBOUND_KEY, 1)

$GROUP_WEAPONS = GUICtrlCreateGroup("Rotate Weapon", 10, 10, 185, 210)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_WEAPONS), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

$BUTTON_ADD_WEAPONS = GUICtrlCreateButton("Add", 25, 28, 50, 18)

GUICtrlSetOnEvent(-1, "AddWeapon")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$BUTTON_REMOVE_WEAPONS = GUICtrlCreateButton("Remove", 80, 28, 50, 18)

GUICtrlSetOnEvent(-1, "RemoveWeapon")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$BUTTON_SAVE_WEAPONS = GUICtrlCreateButton("Save", 135, 28, 50, 18)

GUICtrlSetOnEvent(-1, "SaveWeapons")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

$WEAPONS_FLAG = GUICtrlCreateCheckbox("Use Rotate Weapon", 200, 28, 135, 18)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($WEAPONS_FLAG), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

$LABEL_WEAPONS_DELAY = GUICtrlCreateLabel("Interval (In Minutes)", 200, 55, 130, 18)

GUICtrlSetColor(-1, 0)

$WEAPONS_DELAY = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_DELAY_KEY, "180"), 200, 75, 50, 20)

For $WEAPONSCOUNT = 1 To IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_UBOUND_KEY, 1) Step +1

$LABELWEAPONS1[$WEAPONSCOUNT] = GUICtrlCreateLabel("Weapon " & $WEAPONSCOUNT, 20, 57 + ($WEAPONSCOUNT - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$WEAPONSCOMBOKEY[$WEAPONSCOUNT] = GUICtrlCreateCombo("", 90, 55 + ($WEAPONSCOUNT - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $WEAPONSCOUNT, "{F1}"))

Next

$WEAPONSCOUNT = $WEAPONSCOUNT - 1

GUISetState(@SW_SHOW, $FORM_WEAPONS)

EndFunc

 

 

Func ADDWEAPON()

GUISwitch($FORM_WEAPONS)

$SKCOUNTCFG_WEAPONS = $SKCOUNTCFG_WEAPONS + 1

If $SKCOUNTCFG_WEAPONS >= 5 Then

$SKCOUNTCFG_WEAPONS = 4

MsgBox(0, "Error", "Max Change Weapons Reached")

Else

$LABELWEAPONS1[$SKCOUNTCFG_WEAPONS] = GUICtrlCreateLabel("Weapon " & $SKCOUNTCFG_WEAPONS, 20, 57 + ($SKCOUNTCFG_WEAPONS - 1) * 42, 50, 20)

GUICtrlSetColor(-1, 0)

$WEAPONSCOMBOKEY[$SKCOUNTCFG_WEAPONS] = GUICtrlCreateCombo("", 90, 55 + ($SKCOUNTCFG_WEAPONS - 1) * 42, 60, 150)

GUICtrlSetData(-1, $KEYCODE, IniRead($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $SKCOUNTCFG_WEAPONS, "{F1}"))

EndIf

EndFunc

 

 

Func REMOVEWEAPON()

GUISwitch($FORM_WEAPONS)

If $SKCOUNTCFG_WEAPONS < 2 Then

$SKCOUNTCFG_WEAPONS = 1

MsgBox(0, "Error", "Minimum Change Weapons Reached")

Else

GUICtrlDelete($WEAPONSCOMBOKEY[$SKCOUNTCFG_WEAPONS])

GUICtrlDelete($LABELWEAPONS1[$SKCOUNTCFG_WEAPONS])

$SKCOUNTCFG_WEAPONS = $SKCOUNTCFG_WEAPONS - 1

EndIf

EndFunc

 

 

Func SAVEWEAPONS()

$COUNT = 1

$MAX = $SKCOUNTCFG_WEAPONS

$ACTIVE_WEAPONS = 0

IniWrite($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_UBOUND_KEY, $MAX)

IniWrite($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_FLAG_KEY, GUICtrlRead($WEAPONS_FLAG))

IniWrite($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_DELAY_KEY, GUICtrlRead($WEAPONS_DELAY))

IniWrite($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $COUNT, GUICtrlRead($WEAPONSCOMBOKEY[$COUNT]))

Do

$COUNT = $COUNT + 1

IniWrite($SOFTWARE_CONFIG, $CFG_WEAPONS_ROOT_KEY, $CFG_WEAPONS_COMBO_KEY & $COUNT, GUICtrlRead($WEAPONSCOMBOKEY[$COUNT]))

Sleep(2)

Until $COUNT >= $MAX

GUIDelete($FORM_WEAPONS)

EndFunc

 

 

Func WINDOWCHANGEWEAPONSCLOSECLICKED()

GUIDelete($FORM_WEAPONS)

EndFunc

 

 

Func SETFLYESCAPE()

Global $FORM_FLYESCAPE = GUICreate("Fly Escape", 255, 170, -1, -1, -1, -1, $PROPHETBOT)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowFlyEscapeCloseClicked")

GUISetBkColor(65280)

GUISwitch($FORM_FLYESCAPE)

Global $CHECK_FLYESCAPE, $FLYESCAPE_KEY, $FLYESCAPE_DAMAGE_KEY, $FLY_ESCAPE_SPACE_KEY, $BUTTON_FLY_ESCAPE_SAVE

$GROUP_FLYESCAPE = GUICtrlCreateGroup(" Fly Escape Options ", 0, 0, 255, 135)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_FLYESCAPE), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

$CHECK_FLYESCAPE = GUICtrlCreateCheckbox("Try To Fly To Escape Death", 15, 25, 200, 20)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($CHECK_FLYESCAPE), "wstr", 0, "wstr", 0)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUICtrlSetColor(-1, 16776960)

GUICtrlSetBkColor(-1, 65280)

If IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_FLAG_KEY, "0") = 1 Then

GUICtrlSetState(-1, $GUI_CHECKED)

Else

GUICtrlSetState(-1, $GUI_UNCHECKED)

EndIf

GUICtrlCreateLabel("Key to Fly:", 15, 55, 50, 20)

GUICtrlSetColor(-1, 0)

$FLYESCAPE_KEY = GUICtrlCreateCombo(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, "--"), 125, 50, 50, 20)

GUICtrlSetData(-1, $KEYCODE, "")

GUICtrlCreateLabel("Danage to Fly:", 15, 85, 100, 20)

GUICtrlSetColor(-1, 0)

$FLYESCAPE_DAMAGE_KEY = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_DAMAGE_KEY, "0"), 125, 80, 50, 20)

GUICtrlCreateLabel("Fly to Z =", 15, 110, 110, 20)

GUICtrlSetColor(-1, 0)

$FLY_ESCAPE_SPACE_KEY = GUICtrlCreateInput(IniRead($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_SPACE_KEY, "0"), 125, 105, 50, 20)

$BUTTON_FLY_ESCAPE_SAVE = GUICtrlCreateButton("Save", 170, 140, 80, 20)

GUICtrlSetOnEvent(-1, "SaveFlyToEscape")

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUISetState(@SW_SHOW, $FORM_FLYESCAPE)

EndFunc

 

 

Func SAVEFLYTOESCAPE()

IniWrite($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_FLAG_KEY, GUICtrlRead($CHECK_FLYESCAPE))

IniWrite($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_KEY, GUICtrlRead($FLYESCAPE_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_DAMAGE_KEY, GUICtrlRead($FLYESCAPE_DAMAGE_KEY))

IniWrite($SOFTWARE_CONFIG, $CFG_FLYESCAPE_ROOT_KEY, $CFG_FLYESCAPE_SPACE_KEY, GUICtrlRead($FLY_ESCAPE_SPACE_KEY))

GUIDelete($FORM_FLYESCAPE)

EndFunc

 

 

Func WINDOWFLYESCAPECLOSECLICKED()

GUIDelete($FORM_FLYESCAPE)

EndFunc

 

 

Func SET_MOBLIST()

Sleep(1)

BUILDNPCARRAY()

$MOBLISTFORMOPEN = 1

Global $FORM_MOBLIST = GUICreate("Target List", 260, 200, -1, -1, -1, -1, $PROPHETBOT)

GUISetBkColor(65280)

Global $MOBMENUITEM1 = GUICtrlCreateMenu("&File")

Global $MOBMENUITEM4 = GUICtrlCreateMenuItem("Exit", $MOBMENUITEM1)

GUICtrlSetOnEvent(-1, "WindowMobListCloseClicked")

Global $MOBMENUITEM2 = GUICtrlCreateMenu("&Options")

Global $MOBMENUITEM5 = GUICtrlCreateMenuItem("Add To MobList", $MOBMENUITEM2)

GUICtrlSetOnEvent(-1, "SetMobList")

Global $MOBMENUITEM6 = GUICtrlCreateMenuItem("Reset MobList", $MOBMENUITEM2)

GUICtrlSetOnEvent(-1, "ResetMobList")

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowMobListCloseClicked")

GUISwitch($FORM_MOBLIST)

GUISetState(@SW_SHOW, $FORM_MOBLIST)

Global $LABEL_LIST_MOB = GUICtrlCreateLabel("Current Target List (Max: 100)", 5, 5, 250, 20)

GUICtrlSetColor(-1, 0)

GUICtrlSetColor(-1, 0)

Global $LIST_MOB = GUICtrlCreateListView("#|ID", 5, 0, 220, 190)

Sleep(1)

REFRESHMOBLIST()

EndFunc

 

 

Func RESETMOBLIST()

$COUNT = 0

Do

$COUNT = $COUNT + 1

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTER_KEY & $COUNT, "")

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTERNAME_KEY & $COUNT, "")

Sleep(10)

Until $COUNT > IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1)

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, "0")

$MOB_LIST_COUNT = 0

Sleep(1)

REFRESHMOBLIST()

MsgBox(0, "MobList Reseted", "The MobList Was Reseted!")

EndFunc

 

 

Func REFRESHMOBLIST()

If $MOBLISTFORMOPEN = 1 Then

GUICtrlDelete($LIST_MOB)

GUICtrlCreateListView("#|ID|NAME ", 5, 25, 250, 150)

$COUNT = 0

Do

$COUNT = $COUNT + 1

GUICtrlCreateListViewItem($COUNT & ")|" & IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTER_KEY & $COUNT, "") & "|" & IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTERNAME_KEY & $COUNT, ""), $LIST_MOB)

Sleep(1)

Until $COUNT >= IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1)

EndIf

EndFunc

 

 

Func SETMOBLIST()

ToolTip("Now go back to the game!", 0, 0)

WinWaitActive($APP_TITLE)

ToolTip("Select the monster that you want to fight then press F11. You can do that 100 times.", 0, 0)

HotKeySet("{F11}", "SaveMobInMobList")

EndFunc

 

 

Func SAVEMOBINMOBLIST()

HotKeySet("{F10}", "EndSelectMobList")

IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1)

$MOB_LIST_COUNT = IniRead($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, 1) + 1

If $MOB_LIST_COUNT <= 100 Then

If Not @error Then

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTER_KEY & $MOB_LIST_COUNT, $TAR)

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_MONSTERNAME_KEY & $MOB_LIST_COUNT, $TARNAME)

If $MOB_LIST_COUNT <= 99 Then

ToolTip("Monster " & $MOB_LIST_COUNT & " Saved" & @CRLF & "Select another monsters and press F11 to set or F10 To end", 0, 0)

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, $MOB_LIST_COUNT)

Else

ToolTip("Monster " & $MOB_LIST_COUNT & " Saved" & @CRLF & "Now Press Start/F9 to start Bot", 0, 0)

IniWrite($SOFTWARE_CONFIG, $CFG_MOBLIST_ROOT_KEY, $CFG_MOBLIST_UBOUND_KEY, $MOB_LIST_COUNT)

EndIf

Sleep(10)

ToolTip("")

Else

ToolTip("Error!" & @error)

EndIf

Else

ToolTip("Max Monsters Reached. Now Press Start/F9 to start Bot", 0, 0)

EndIf

Sleep(1)

REFRESHMOBLIST()

EndFunc

 

 

Func ENDSELECTMOBLIST()

ToolTip("Set MobList Finished, Now Press F9 to Start", 0, 0)

Sleep(10)

ToolTip("")

HotKeySet("{F10}")

HotKeySet("{F11}")

EndFunc

 

 

Func WINDOWMOBLISTCLOSECLICKED()

$MOBLISTFORMOPEN = 0

HotKeySet("{F11}")

HotKeySet("{F10}")

GUIDelete($FORM_MOBLIST)

EndFunc

 

 

Func SET_ABOUTPROPHET()

Global $FORM_ABOUT = GUICreate("About Afford", 301, 237, 397, 300)

GUISetOnEvent($GUI_EVENT_CLOSE, "WindowAboutProphetCloseClicked")

GUISetBkColor(65280)

GUISwitch($FORM_ABOUT)

Global $GROUP_ABOUT = GUICtrlCreateGroup("About Afford", 2, 0, 297, 234)

DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($GROUP_ABOUT), "wstr", 0, "wstr", 0)

GUICtrlSetColor(-1, 0)

GUICtrlSetBkColor(-1, 65280)

GUICtrlSetFont(-1, 9, 800, 0, "MS Sans Serif")

GUISetState(@SW_SHOW, $FORM_ABOUT)

EndFunc

 

 

Func ONLINESUPPORT()

ShellExecute($DEFAULT_BROWSER_PATH, "

É necessário se cadastrar para acessar o conteúdo.
)

EndFunc

 

 

Func WINDOWABOUTPROPHETCLOSECLICKED()

GUIDelete($FORM_ABOUT)

EndFunc

 

 

quero provas de que ele tem kl pq olha o antivirus que detectou agr me fale pq os principais antivirus nao detectaram kl nele ? e um antivirus DESCONHECIDO detectou ? que talves nem vc deve conhecer ele.

 

 

 

 

e nem vou mais me preucupa com uma coisa que é passado e nem mecho mais com autoit e pw

Link para o comentário
Compartilhar em outros sites

quero provas de que ele tem kl pq olha o antivirus que detectou agr me fale pq os principais antivirus nao detectaram kl nele ? e um antivirus DESCONHECIDO detectou ? que talves nem vc deve conhecer ele.e nem vou mais me preucupa com uma coisa que é passado e nem mecho mais com autoit e pw

não vou me estender muito, o fato de um Av não se conhecido não queira dizer que seja funcional, e muito Av Conhecidos deixam passar, enfim. como disse a prova esta nos scan e no teste que voce me desafiou.. peguei o descompilador do Autoit e fiz o reverso so que como expliquei o descompilador ele pega so os codigos do autoit e descompila para dar a tal prova que voce quer terei que pegar o olly e perder meu tempo em cima de um .exe que nem sequer eu uso. apenas te respondi o que voce perguntou. Desculpe a sinceridade amigo tenho mais o que fazer do que ficar perdendo tempo em cima de analises de addres de um software o qual não estou ganhando pra isso

 

Apenas faço a minha parte, cada software que é lançado aqui eu baixo e passo pelo VT, e sendo o afford recompilação do Propeth o minimo que deveria ter é os mesmos virus achado em tal e nao um , como voce diz, "Falso keylogger".. e como sempre digo apos cada scan mostrado "BAIXA QUEM QUISER, USE POR CONTA E RISCO"

 

Enfim, encerro por aqui. Não mais responderei post aqui.

Link para o comentário
Compartilhar em outros sites

não vou me estender muito, o fato de um Av não se conhecido não queira dizer que seja funcional, e muito Av Conhecidos deixam passar, enfim. como disse a prova esta nos scan e no teste que voce me desafiou.. peguei o descompilador do Autoit e fiz o reverso so que como expliquei o descompilador ele pega so os codigos do autoit e descompila para dar a tal prova que voce quer terei que pegar o olly e perder meu tempo em cima de um .exe que nem sequer eu uso. apenas te respondi o que voce perguntou. Desculpe a sinceridade amigo tenho mais o que fazer do que ficar perdendo tempo em cima de analises de addres de um software o qual não estou ganhando pra isso

 

Apenas faço a minha parte, cada software que é lançado aqui eu baixo e passo pelo VT, e sendo o afford recompilação do Propeth o minimo que deveria ter é os mesmos virus achado em tal e nao um , como voce diz, "Falso keylogger".. e como sempre digo apos cada scan mostrado "BAIXA QUEM QUISER, USE POR CONTA E RISCO"

 

Enfim, encerro por aqui. Não mais responderei post aqui.

 

se eu bindace um o bot com o kl (coisa que eu nao fiz) ele se tornaria packeado e vc nao ia conseguir ver o codigo fonte dele nem o decompilador ia pega o codigo fonte

 

aa e outra o scan é do .rar e nao do .exe

 

e tambem tenho mais oque fazer doque fica comentando em forum que nao ganho nada

Link para o comentário
Compartilhar em outros sites

  • 2 semanas atrás...

Ai eu baxo tudo certinho, faço como no tutorial mais na hora de abrir o hack da um erro 8699 ? e no video, tipo a pasta do cara tem uns 5 itens, na minha tem 3 e um deles é uma pasta vazia, se alguem quiser me adicionar no msn, pra passa a pasta, se voce baxou e deu igual eu agradeço [email protected]

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.