Что нового

автологин и ренеймер...

darksky

Новичок
Сообщения
6
Репутация
0
Код:
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Ренеймер Perfect World ", 327, 185, 265, 204)
$Button1 = GUICtrlCreateButton("Ренейм", 8, 8, 313, 121, 0)
GUICtrlSetFont(-1, 38, 800, 4, "Microsoft Sans Serif")
$Button2 = GUICtrlCreateButton("Автологин", 8, 136, 315, 41, 0)
GUICtrlSetFont(-1, 18, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
	$nMsg = GUIGetMsg()
	If $nMsg = $Button1 Then
$Button1 WinSetTitle ("Perfect World", "", "PW:D") 		
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		WEnd 
		EndSwitch

While 2
	$nMsg = GUIGetMsg()
	If $nMsg = $Button2 Then
$Button2 WinWaitActive ("PW:D", "")
send ("{ENTER}")
send ("login")
send ("{TAB}")
send ("password")
send ("{ENTER}")
Switch $nMsg
	Case $GUI_EVENT_CLOSE
			Exit
		WEnd 
		EndSwitch

подскажите что нетак :-\
 
Автор
D

darksky

Новичок
Сообщения
6
Репутация
0
Сделайть програмку вот с таким интерфейсом, чтобы при нажатии на кнопку Rеname переименовывалось окно Perfect World в "PW:D", а при нажатии на Автологин ждало момент, когда развернеться окно "PW:D" и нажало клавишу Enter, ввело Login,нажало Tab, ввело Pass, нажало Enter.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
darksky
Попробуйте так:
Код:
#include <GUIConstantsEx.au3>

GUICreate('Ренеймер Perfect World ', 327, 185)
$nButton_ReName = GUICtrlCreateButton('Ренейм', 8, 8, 313, 121, 0)
GUICtrlSetFont(-1, 38, 800, 4, 'Microsoft Sans Serif')
$nButton_Login = GUICtrlCreateButton('Автологин', 8, 136, 315, 41, 0)
GUICtrlSetFont(-1, 18, 400, 0, 'MS Sans Serif')
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState()

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nButton_ReName
			$hWin = WinWait('Perfect World', '', 3)
			If $hWin Then
				WinSetTitle($hWin, '', 'PW:D')
				GUICtrlSetState($nButton_Login, $GUI_ENABLE)
			Else
				GUICtrlSetState($nButton_Login, $GUI_DISABLE)
				MsgBox(16, 'Error', 'Нет окна Perfect World')
			EndIf
		Case $nButton_Login
			If Not WinActive($hWin) Then WinActivate($hWin)
			$hWin = WinWaitActive($hWin, '', 3)
			If $hWin Then
				Send('{ENTER}')
				Send('login')
				Send('{TAB}')
				Send('password')
				Send('{ENTER}')
			Else
				MsgBox(16, 'Error', 'Error')
			EndIf
	EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Автор
D

darksky

Новичок
Сообщения
6
Репутация
0
Все правильно:
Title Perfect World
Class ElementClient Window
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
darksky
Ссылку дайте на эту игру.
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
darksky - вот простой скрипт, который позволяет переименовывать окно клиента и зайти. Дальше можете сами развивать идеи. Ну, к примеру:
1. Можно создать условие проверки на существование окна с идентичным именем, отличным от 'Perfect World'. Это на тот случай если вы по каким-то причинам выключили, а потом снова запустили скрипт, а окна остались висеть.
2. Добавить INI файл с несколькими аккаунтами 'login/password' (вряд ли у вас будет их 10 :smile:)
3. Ограничение на количество переименований, ведь у вас нет нужды переименовывать окна, если вы не заходите в игру!?
и т.д.
Код:
; Сперва запускается скрипт!!!
Opt('WinTitleMatchMode',3)
Dim $i = 1
While 1
	While Not WinExists('Perfect World')
		Sleep(250)
	WEnd
	$hWin = WinGetHandle('Perfect World')
	WinSetTitle($hWin, '', 'Perfect World' & Chr(32) & $i)
	$i += 1
	Send('{ENTER}')
	Send('login')
	Send('{TAB}')
	Send('password')
	Send('{ENTER}')
WEnd



Добавлено:
Сообщение автоматически объединено:

madmasles
Клиент достаточно громоздкий и его нужно скачивать для установки! :smile:
 
Автор
D

darksky

Новичок
Сообщения
6
Репутация
0
Код:
Opt('WinTitleMatchMode',3)
Dim $i = 1
While 1
    While Not WinExists('Perfect World')
        Sleep(250)
    WEnd
    $hWin = WinGetHandle('Perfect World')
    WinSetTitle($hWin, '', 'Perfect World' & Chr(32) & $i)
    $i += 1
    Send('{ENTER}')
    Send('login')
    Send('{TAB}')
    Send('password')
    Send('{ENTER}')
WEnd
Опять Fail. Переименование работает, а автовход - нет.
 
Автор
D

darksky

Новичок
Сообщения
6
Репутация
0
Код:
If WinWaitActive("Perfect World") Then
sleep (300)	
Send('{ENTER}')
sleep (200)
Send('login')
Send('{TAB}')
Send('password')
Send('{ENTER}')
EndIf

Вот так работает, но как это сделать на батон1?
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Это должно сработать.
Код:
Dim $sPathClient = "Полный путь к elementclient.exe"
Run($sPathClient)
_Loaded($s_Title)
Func _Loaded($s_Title)
	
	While Not WinExists($s_Title)
		Sleep(250)
	WEnd
	Local $hWin = WinGetHandle($s_Title)
	While Hex(PixelGetColor(90, 43, $hWin)) <> Hex(0xCD0709)
		Sleep(250)
	WEnd
	Sleep(250)
	Send('{ENTER}')
	Sleep(250)
	Send('login')
	Sleep(250)
	Send('{TAB}')
	Sleep(250)
	Send('password')
	Sleep(250)
	Send('{ENTER}')
	Return 1
EndFunc
 
Верх