Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   controlsend в играх (http://forum.oszone.net/showthread.php?t=134199)

morgan1991 09-03-2009 12:38 1058644

controlsend в играх
 
Здравствуйте!
Скажите пожалуйста как можно в играх отлавливать поля ввода, кнопки и т.д. и т.п.
Допустим известная всем игра World of Warcraft
Захожу в неё с Au3info и отлавливаю поле ввода, в итоге получаю следующее:

Код:

>>>> Window <<<<
Title:        World of Warcraft
Class:        GxWindowClassD3d
Position:        -32000, -32000
Size:        160, 30
Style:        0xB6080000
ExStyle:        0x00040008
Handle:        0x005B048C

>>>> Control <<<<
Class:       
Instance:       
ClassnameNN:       
Advanced (Class):       
ID:       
Text:       
Position:       
Size:       
ControlClick Coords:       
Style:       
ExStyle:       
Handle:        0x000100C8

>>>> Mouse <<<<
Position:        32536, 32610
Cursor ID:        15
Color:        0xF4F4F4

>>>> StatusBar <<<<

>>>> Visible Text <<<<


>>>> Hidden Text <<<<

Но такой код не работает:

Код:

ControlSend("World of Warcraft", "", "GxWindowClassD3d", "kjhgkjh")
Помогите плиз как мне быть?
Или хотябы как сделать так чтобы можно было отловить с помощью hotkeyset и тут же выслать нажатие этой клавиши используя макрос @HotKeyPressed, но чтобы hotkeyset не вызвался повторно после нажатия этой клавиши.

proxy 09-03-2009 13:06 1058664

самый банальный пример:
Код:

#region: - Include
    #include <GUIConstantsEx.au3>
    #Include <Misc.au3>
    #include <WindowsConstants.au3>
#endregion

#region: - Option

    Opt('GUIOnEventMode',      1)
    Opt('MustDeclareVars',      1)
    Opt('TrayIconDebug',        1)
    Opt('TrayIconHide',        0)
#endregion

#region: - Global

    Global  $hWinMain
#endregion

#region: GUI

    $hWinMain = GUICreate('Test', 400, 400, -1, -1)
        GUISetIcon('shell32.dll', -50)
            GUISetOnEvent($GUI_EVENT_CLOSE,    '_Pro_Exit')

    GUICtrlCreateButton('Exit', 10, 50, 150, 25)
        GUICtrlSetOnEvent(-1, '_Pro_Exit')
#endregion

#region: - После создания всех GUI

    GUISetState(@SW_SHOW, $hWinMain)
#endregion

#region: - Sleep, Exit

While 1
    Sleep(10)
    If _IsPressed(11) Then
        If
_IsPressed(47) Then
            MsgBox(0, '', 'asd')
        EndIf
    EndIf
WEnd

Func
_Pro_Exit()
    Exit
EndFunc

#endregion


+ офф сайт, там смотрел?
1
2
3
4
5
и т.д.

Creat0R 09-03-2009 13:07 1058667

Цитата:

Цитата morgan1991
такой код не работает »

И не должен :) «GxWindowClassD3d» это класс окна, а не контроля.

Можно попробовать так:

Код:

ControlSend("[CLASS:GxWindowClassD3d]", "", "", "kjhgkjh")
Цитата:

Цитата morgan1991
как сделать так чтобы можно было отловить с помощью hotkeyset и тут же выслать нажатие этой клавиши используя макрос @HotKeyPressed, но чтобы hotkeyset не вызвался повторно после нажатия этой клавиши. »

Так:

Код:

HotKeySet("g", "Test_Func")
HotKeySet("r", "Test_Func")
HotKeySet("e", "Test_Func")
HotKeySet("^q", "Test_Func")

While 1
    Sleep(100)
WEnd

Func
Test_Func()
    HotKeySet(@HotKeyPressed)
    Send(@HotKeyPressed)
    HotKeySet(@HotKeyPressed, "Test_Func")

    If @HotKeyPressed = "^q" Then Exit
EndFunc

?

proxy 09-03-2009 13:09 1058668

Цитата:

Цитата Creat0R
Func Test_Func()
HotKeySet(@HotKeyPressed)
Send(@HotKeyPressed)
HotKeySet(@HotKeyPressed, "Test_Func")
If @HotKeyPressed = "^q" Then Exit
EndFunc »

хитро ))

morgan1991 09-03-2009 13:49 1058704

Цитата:

Цитата Creat0R
Так: »

Всё супер только одна проблемка, если в hotkeyset вставить русские буквы тогда при
Код:

Send(@HotKeyPressed)
высылаются русские буквы, а если сделать так:
Код:

msgbox(0, "", @HotKeyPressed)
или так:
Код:

FileWrite($fileopen, @HotKeyPressed)
тогда всеравно пишутся английские буквы.
Как это исправить?

Creat0R 09-03-2009 13:59 1058712

Цитата:

Цитата morgan1991
если в hotkeyset вставить русские буквы »

Полный пример можно?

morgan1991 09-03-2009 14:20 1058720

Цитата:

Цитата Creat0R
Полный пример можно? »

Сори сразу не понял, оказывается hotkeyset совсем не отлавливает нажатие русских букв.
т.е. когда ставлю русскую раскладку клавиатуры.
Как это исправить?

Creat0R 09-03-2009 14:33 1058733

Цитата:

Цитата morgan1991
hotkeyset совсем не отлавливает нажатие русских букв »

А зчем, указывайте английские, например, вместо буквы «А», укажите «F» :).

morgan1991 09-03-2009 14:38 1058737

ну дак мне нужно отловить если нажимаются определённые клавиши нужно их записать в другой текстовик, среди них есть и русские и английские буквы. Как я потом в этом текстовике отличу какие символы были нажаты русские или английские?

Creat0R 09-03-2009 14:50 1058745

Цитата:

Цитата morgan1991
Как я потом в этом текстовике отличу какие символы были нажаты русские или английские? »

Можно через @KBLayout:

Код:

Func Test_Func()
    If @HotKeyPressed = "^q" Then Exit

    HotKeySet(@HotKeyPressed)

    Send(@HotKeyPressed)

    $sSetKey = @HotKeyPressed
    If @KBLayout = "0419" Then $sSetKey &= " (рус.)"

    HotKeySet(@HotKeyPressed, "Test_Func")
EndFunc


morgan1991 09-03-2009 14:52 1058748

спасибо

morgan1991 09-03-2009 20:59 1059086

И всёже как можно отследить окно игры? нужно чтобы когда пользователь войдёт под своим логином в игру запустить функцию. Титла у окна игры нету, пробовал через отслеживал HANDLE, но он всегда одинаковый. Может можно както отслеживать изменения в памяти процесса? Я просто в этом не понимаю, научите плиз...

proxy 09-03-2009 21:13 1059108

morgan1991, просотй пример чтения памяти: http://forum.ru-board.com/topic.cgi?...40&start=520#2
а так, попробуй спросить у парня: Belfigor au3, - у него те же задачи............

morgan1991 09-03-2009 21:45 1059154

Вложений: 1
proxy, не работает выдаёт такое:

proxy 09-03-2009 21:55 1059160

все забываю...вот она:
читать дальше »
#include-once
#region _Memory
;==================================================================================
; AutoIt Version: 3.1.127 (beta)
;
; Functions:
;
;==================================================================================
; Function: _MemoryOpen($iv_Pid[, $iv_DesiredAccess[, $iv_InheritHandle]])
; Description: Opens a process and enables all possible access rights to the
; process. The Process ID of the process is used to specify which
; process to open. You must call this function before calling
; _MemoryClose(), _MemoryRead(), or _MemoryWrite().
; Parameter(s): $iv_Pid - The Process ID of the program you want to open.
; $iv_DesiredAccess - (optional) Set to 0x1F0FFF by default, which
; enables all possible access rights to the
; process specified by the Process ID.
; $iv_InheritHandle - (optional) If this value is TRUE, all processes
; created by this process will inherit the access
; handle. Set to 1 (TRUE) by default. Set to 0
; if you want it FALSE.
; Requirement(s): None.
; Return Value(s): On Success - Returns an array containing the Dll handle and an
; open handle to the specified process.
; On Failure - Returns 0
; @Error - 0 = No error.
; 1 = Invalid $iv_Pid.
; 2 = Failed to open Kernel32.dll.
; 3 = Failed to open the specified process.
; Author(s): Nomad
; Note(s):
;==================================================================================
Func _MemoryOpen($iv_Pid, $iv_DesiredAccess = 0x1F0FFF, $iv_InheritHandle = 1)

If Not ProcessExists($iv_Pid) Then
SetError(1)
Return 0
EndIf

Local $ah_Handle[2] = [DllOpen('kernel32.dll')]

If @Error Then
SetError(2)
Return 0
EndIf

Local $av_OpenProcess = DllCall($ah_Handle[0], 'int', 'OpenProcess', 'int', $iv_DesiredAccess, 'int', $iv_InheritHandle, 'int', $iv_Pid)

If @Error Then
DllClose($ah_Handle[0])
SetError(3)
Return 0
EndIf

$ah_Handle[1] = $av_OpenProcess[0]

Return $ah_Handle

EndFunc

;==================================================================================
; Function: _MemoryRead($iv_Address, $ah_Handle[, $sv_Type])
; Description: Reads the value located in the memory address specified.
; Parameter(s): $iv_Address - The memory address you want to read from. It must
; be in hex format (0x00000000).
; $ah_Handle - An array containing the Dll handle and the handle
; of the open process as returned by _MemoryOpen().
; $sv_Type - (optional) The "Type" of value you intend to read.
; This is set to 'dword'(32bit(4byte) signed integer)
; by default. See the help file for DllStructCreate
; for all types. An example: If you want to read a
; word that is 15 characters in length, you would use
; 'char[16]' since a 'char' is 8 bits (1 byte) in size.
; Return Value(s): On Success - Returns the value located at the specified address.
; On Failure - Returns 0
; @Error - 0 = No error.
; 1 = Invalid $ah_Handle.
; 2 = $sv_Type was not a string.
; 3 = $sv_Type is an unknown data type.
; 4 = Failed to allocate the memory needed for the DllStructure.
; 5 = Error allocating memory for $sv_Type.
; 6 = Failed to read from the specified process.
; Author(s): Nomad
; Note(s): Values returned are in Decimal format, unless specified as a
; 'char' type, then they are returned in ASCII format. Also note
; that size ('char[size]') for all 'char' types should be 1
; greater than the actual size.
;==================================================================================
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

;==================================================================================
; Function: _MemoryWrite($iv_Address, $ah_Handle, $v_Data[, $sv_Type])
; Description: Writes data to the specified memory address.
; Parameter(s): $iv_Address - The memory address which you want to write to.
; It must be in hex format (0x00000000).
; $ah_Handle - An array containing the Dll handle and the handle
; of the open process as returned by _MemoryOpen().
; $v_Data - The data to be written.
; $sv_Type - (optional) The "Type" of value you intend to write.
; This is set to 'dword'(32bit(4byte) signed integer)
; by default. See the help file for DllStructCreate
; for all types. An example: If you want to write a
; word that is 15 characters in length, you would use
; 'char[16]' since a 'char' is 8 bits (1 byte) in size.
; Return Value(s): On Success - Returns 1
; On Failure - Returns 0
; @Error - 0 = No error.
; 1 = Invalid $ah_Handle.
; 2 = $sv_Type was not a string.
; 3 = $sv_Type is an unknown data type.
; 4 = Failed to allocate the memory needed for the DllStructure.
; 5 = Error allocating memory for $sv_Type.
; 6 = $v_Data is not in the proper format to be used with the
; "Type" selected for $sv_Type, or it is out of range.
; 7 = Failed to write to the specified process.
; Author(s): Nomad
; Note(s): Values sent must be in Decimal format, unless specified as a
; 'char' type, then they must be in ASCII format. Also note
; that size ('char[size]') for all 'char' types should be 1
; greater than the actual size.
;==================================================================================
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

;==================================================================================
; Function: _MemoryClose($ah_Handle)
; Description: Closes the process handle opened by using _MemoryOpen().
; Parameter(s): $ah_Handle - An array containing the Dll handle and the handle
; of the open process as returned by _MemoryOpen().
; Return Value(s): On Success - Returns 1
; On Failure - Returns 0
; @Error - 0 = No error.
; 1 = Invalid $ah_Handle.
; 2 = Unable to close the process handle.
; Author(s): Nomad
; Note(s):
;==================================================================================
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

;==================================================================================
; Function: SetPrivilege( $privilege, $bEnable )
; Description: Enables (or disables) the $privilege on the current process
; (Probably) requires administrator privileges to run
;
; Author(s): Larry (from autoitscript.com's Forum)
; Notes(s):
; http://www.autoitscript.com/forum/in...dpost&p=223999
;==================================================================================

Func SetPrivilege( $privilege, $bEnable )
Const $MY_TOKEN_ADJUST_PRIVILEGES = 0x0020
Const $MY_TOKEN_QUERY = 0x0008
Const $MY_SE_PRIVILEGE_ENABLED = 0x0002
Local $hToken, $SP_auxret, $SP_ret, $hCurrProcess, $nTokens, $nTokenIndex, $priv
$nTokens = 1
$LUID = DLLStructCreate("dword;int")
If IsArray($privilege) Then $nTokens = UBound($privilege)
$TOKEN_PRIVILEGES = DLLStructCreate("dword;dword[" & (3 * $nTokens) & "]")
$NEWTOKEN_PRIVILEGES = DLLStructCreate("dword;dword[" & (3 * $nTokens) & "]")
$hCurrProcess = DLLCall("kernel32.dll","hwnd","GetCurrentProcess")
$SP_auxret = DLLCall("advapi32.dll","int","OpenProcessToken","hwnd",$hCurrProcess[0], _
"int",BitOR($MY_TOKEN_ADJUST_PRIVILEGES,$MY_TOKEN_QUERY),"int*",0)
If $SP_auxret[0] Then
$hToken = $SP_auxret[3]
DLLStructSetData($TOKEN_PRIVILEGES,1,1)
$nTokenIndex = 1
While $nTokenIndex <= $nTokens
If IsArray($privilege) Then
$priv = $privilege[$nTokenIndex-1]
Else
$priv = $privilege
EndIf
$ret = DLLCall("advapi32.dll","int","LookupPrivilegeValue","str","","str",$priv, _
"ptr",DLLStructGetPtr($LUID))
If $ret[0] Then
If $bEnable Then
DLLStructSetData($TOKEN_PRIVILEGES,2,$MY_SE_PRIVILEGE_ENABLED,(3 * $nTokenIndex))
Else
DLLStructSetData($TOKEN_PRIVILEGES,2,0,(3 * $nTokenIndex))
EndIf
DLLStructSetData($TOKEN_PRIVILEGES,2,DllStructGetData($LUID,1),(3 * ($nTokenIndex-1)) + 1)
DLLStructSetData($TOKEN_PRIVILEGES,2,DllStructGetData($LUID,2),(3 * ($nTokenIndex-1)) + 2)
DLLStructSetData($LUID,1,0)
DLLStructSetData($LUID,2,0)
EndIf
$nTokenIndex += 1
WEnd
$ret = DLLCall("advapi32.dll","int","AdjustTokenPrivileges","hwnd",$hToken,"int",0, _
"ptr",DllStructGetPtr($TOKEN_PRIVILEGES),"int",DllStructGetSize($NEWTOKEN_PRIVILEGES), _
"ptr",DllStructGetPtr($NEWTOKEN_PRIVILEGES),"int*",0)
$f = DLLCall("kernel32.dll","int","GetLastError")
EndIf
$NEWTOKEN_PRIVILEGES=0
$TOKEN_PRIVILEGES=0
$LUID=0
If $SP_auxret[0] = 0 Then Return 0
$SP_auxret = DLLCall("kernel32.dll","int","CloseHandle","hwnd",$hToken)
If Not $ret[0] And Not $SP_auxret[0] Then Return 0
return $ret[0]
EndFunc ;==>SetPrivilege

#endregion


запишите это в новый файл NomadMemory.au3 и сохраните в папку: C:\Program Files\AutoIt3\Include\
эт только пример, вот основа,
посмотрите адреса параметров ячеек памяти, может найдется то, что нужно...
и думаю эти ребята, что с для Wow уже кучу всякого наделали, могут мнооооогое подсказать..

Цитата:

Цитата morgan1991
И всёже как можно отследить окно игры? »

окно то можно определить.
а вот полей вода или кнопок - не получится, т.к.
в обычных окнах кнопочки обробатывает виндовс api (если не ошибаюсь),
а в играх - это уже как то на уровне виде адаптера/драйверов...

morgan1991 09-03-2009 22:12 1059188

я уже качал эту прогу только так и не понял как её пользоваться и что она вообще должна делать.

.:TimoXa:. 09-03-2009 22:21 1059196

Параметры и создание окон и кнопок можно отследить...теоретически
Самы "простой" способ это см. за трафиком игры...на сколько мне известно ВоВ общается с сервером пакетами...в зависимости от того какой пакет идет от сервера/к серверу можно достаточно точно(без особых задержек) определять происходящие в игре...
Для этого небходимо внедрить в процесс свою dll, котрая в свою очередь будет как фильтр, при прохождение пакета нужного вида отправлять в твою програму этот пакет...боле или менее читаемом виде)
Все это теория и может сильно отличатся от реальности и от назначения топика

proxy 09-03-2009 22:22 1059201

проще говоря - все значения: сколько здоровья, сколько патронов и т.д. - это, по идее, вытаскивается из памяти процесса.
т.е. в памяти есть место - ячейка - где храниться значени, к примеру: "10 HP" и т.д. - вот это можно прочитать зная адрес этой самой ячейки памяти.
...так же, не мало вероятно, может быть возможно, по аналогии - прочитать из памяти какой сейчас пользователь залогинился....
либо все это определять другими методами. просто там на офф форуме уже много разработок по wow, может уже, что то и есть из отго, что ищите.
попробуйте точнее описать задачу...вместе и подумаем..

morgan1991 09-03-2009 22:27 1059205

дак куда уж точнее мне всегото надо узнать что пользователь ввёл логин пароль и нажал вход. Отловить нажатие мышки или ентера не предлогайте уже думал над этим.

proxy 09-03-2009 22:55 1059231

хз....на офф форуме только прутся с подобной задачи ))
можно попробовать через PixelGetColor - но это будет муторно и много риска....

morgan1991 09-03-2009 23:15 1059243

самое лучшее сделать через процесс, но я не могу... **(((

.:TimoXa:. 09-03-2009 23:24 1059250

А как на счет следить за появление процеса example.exe ? а при его появление отследить отправление клавиши Enter(при условии не нажатия на кнопку в окне)

morgan1991 09-03-2009 23:34 1059256

.:TimoXa:., я же сказал что думал над этим... А если пользователь нажмёт не ентер а мышкой???

.:TimoXa:. 09-03-2009 23:46 1059263

morgan1991, а что мешает отследить сетевую активность приложения! Стоит ему (приложению) установить соединение,которое и будет означать нажатие кнопки "вход" /Enter и после этого и начать выполнение скрипта...надо щас подумать как реализовать...
...
While 1
$ConnectedSocket = TCPAccept( $MainSocket)
If $ConnectedSocket >= 0 Then
msgbox(0,"","Client Connected")
Call("function")
exit
EndIf
Wend
Func Function()
msgbox(0,"","You are loginIn")
EndFunc

$MainSocket в данном случае будет портом который открывает программа для обмена пакетами с сервером

Creat0R 10-03-2009 01:39 1059310

Цитата:

Цитата morgan1991
если пользователь нажмёт не ентер а мышкой? »

Я как раз для таких случаев сделал расширенную функцию _IsPressedEx():

Код:

If _IsPressedEx("01|{Enter}") Then...

proxy 10-03-2009 02:18 1059326

.:TimoXa:., а если игра шлет данные не в явном виде....?
тут же нужно определить какой логин/ пароль зашел в игру...

Цитата:

а при его появление отследить отправление клавиши Enter(при условии не нажатия на кнопку в окне)
так...а в целом - заачем нужно - т.е. сам процесс...к примеру можно сделатьь так:
написать обычную прогу - которая будет харнить логин и пароль пользователей
и эта же прога будет запускать игру и вводить логин и пароль...- так уже будет известно
какой аккаунт вошел в игру....

.:TimoXa:. 10-03-2009 07:13 1059375

proxy, поддерживаю...это единственный способ выполнять те задачи которые требуются имхо....
Пришел в голову 1 вариант..но не знаю может не подойдет...
Опять же ждем запука процесса...а потом отлавливаем нажатия кнопок до появления сетевой активности...после чего в логе ищем нужную комбинацию и запускаем ту функцию кот. нужна для данного акка..собстно бред но всеже...как вариант...

morgan1991 10-03-2009 08:32 1059409

Цитата:

Цитата Creat0R
Я как раз для таких случаев сделал расширенную функцию _IsPressedEx(): »

А вдруг пользователь пока вводит пароль просто так нажмёт n раз мышкой?
Цитата:

Цитата proxy
и эта же прога будет запускать игру и вводить логин и пароль. »

Не нужно обязательно чтобы пользователь ввёл логин и пароль.

morgan1991 10-03-2009 12:35 1059578

Сделал так:
Код:

Global $MainSocket = 8085
While 1
$ConnectedSocket = TCPAccept($MainSocket)
If $ConnectedSocket >= 0 Then
msgbox(0,"","Client Connected")
Call("function")
exit
EndIf
Wend
Func
Function()
msgbox(0,"","You are loginIn")
EndFunc

Но не работает ( проверял на других программах, на ventrilo тоже не работает. Это был бы хороший вариант... Если бы работал, помогите в чём ошибка?

proxy 10-03-2009 14:09 1059646

Цитата:

Цитата .:TimoXa:.
после чего в логе ищем »

а wow пишет лог? - это мысель..

morgan1991 10-03-2009 14:28 1059657

Цитата:

Цитата proxy
а wow пишет лог? - это мысель.. »

Не лог коннекта не пишет (((
Может всёже както можно отследить сетевую активность?

.:TimoXa:. 10-03-2009 16:33 1059755

Тут на форуме autoit появилась программа которая считывает инфо из игры..может быть получится ее приладить таким образом что по ее принципу получать инфо о акке и пото запускать нужный скрипт...
Как вариант сейчас допишу то что пытался предложить....

.:TimoXa:. 10-03-2009 17:17 1059789

TCPStartUp()
ProcessWait("wow.exe")
msgbox(0,"","RUN")
;----Сюда нужно будет вставить следилку за нажатиями клавиш пишущую в log.txt---
Call("net")
Func net()
While 1
$ConnectedSocket = TCPAccept("127.0.0.1:8085")
If $ConnectedSocket >= 0 Then
msgbox(0,"","Client Connected" & $ConnectedSocket)
Call("function")
exit
EndIf
Wend
EndFunc
Func Function()
msgbox(0,"","You are loginIn")
EndFunc
Это должно работать проверь если так то будем дальше думать...

morgan1991 10-03-2009 18:57 1059868

Цитата:

Цитата .:TimoXa:.
Тут на форуме autoit появилась программа которая считывает инфо из игры.. »

У меня она всё время 0 показывает.
Цитата:

Цитата .:TimoXa:.
Это должно работать проверь если так то будем дальше думать... »

не работает...


Время: 05:35.

Время: 05:35.
© OSzone.net 2001-