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

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

Just-ice 27-06-2009 15:44 1153100

Выход из игры одной кнопкой
 
Всем привет.
Проблема такая - я играю в игру,и иногда случается так что надо оч.быстро выйти. Для этого надо нажать кнопку Esc, и затем либо навести мышью на Save and Exit, либо надать кнопку Вверх и Enter. При выходе чаще пользуюсь мышью...ну а когда ситуация критичная,то вечно промахиваюсь и попадаю куда-нибудь в настройки игры.
Слышал что с помощью программы AutoIT можно сделать так, что бы выход из игры производился одним единственным нажатием на клавиатуре (например на кнопку F1)
Скачал программу по вот этой ссылке ( AutoIt Full Installation...версия 3.3.0.0. как я понял) Установил. Но как осуществить задуманое - так и не разобрался. Скачал инструкцию по версии 3.2. от Валерия Иванова, но и она не помогла. Если кто может помочь, либо дать более подробную инструкцию (так сказать для чайников), то буду оч.благодарен.

CyberDaemon 27-06-2009 15:53 1153109

ALT-F4 не срабатывает?

Just-ice 27-06-2009 15:58 1153116

Цитата:

Цитата CyberDaemon
ALT-F4 не срабатывает? »

После нажатия ALT-F4 персонаж в игре ещё примерно 5-7 секунд находится, и ты им не контролируешь. Уже проверено.

proxy 27-06-2009 16:23 1153129

Just-ice, попробуй эмуляций клавиатурных нажатий, функция Send. Т.е. выслать в окно игры те же клавиши, который нажимаешь когда сам выходишь.

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

Just-ice 27-06-2009 16:31 1153135

Чую FAQ надо искать, т.к. ничего из последнего сообщения не понял...

sashadeg 27-06-2009 17:20 1153172

парень, я сначало думал так же как ты.... А только позже понял что скачал среду программирования - !!!Великий AutoIT!!!!(аплодисменты)

Medic84 27-06-2009 17:28 1153177

А оказалось все банально просто :)

Код:

HotKeySet("!d", "_ProcessClose")

While 1
    Sleep(100)
WEnd

Func
_ProcessClose()
    ProcessClose("notepad.exe")
    Exit
    EndFunc

Вместо комбинации !d(Alt+d) можно подставить любою другую комбинацию
Тебе осталось сменить только имя процесса которое необходимо закрыть

Ну а если этот скрипт будет долго закрывать, то уже это не проблема скрипта, а железа компьютера :happy:

З.Ы. Только учти, она игру не сохраняет, а тупо принудительно вырубает ее(в данном случае блокнот)

Just-ice 27-06-2009 17:43 1153185

Спасибо,работает.(как сделать чтобы выбивало через нажатие F1?Или эти клавиши не предназначены для этого?)

А как составить скрипт чтобы не полностью из игры выбивало, а через Save and Exit?

Medic84 27-06-2009 17:52 1153195

Цитата:

Цитата Just-ice
как сделать чтобы выбивало через нажатие F1?Или эти клавиши не предназначены для этого?) »

Надо вместо !d написать {F1}

Клавишу F12 использовать не получется т.к. она зарезервирована Windows

Цитата:

Цитата Just-ice
А как составить скрипт чтобы не полностью из игры выбивало, а через Save and Exit? »

Мне нужен заголовок активного окна. Т.е. как написано в диспетчере задач

Код:

HotKeySet("{F1}", "_ProcessClose")

While 1
    Sleep(100)
WEnd

Func
_ProcessClose()
    WinWaitActive("Игра")
    Send("{ESC}")
    Sleep(100)
    Send("{UP}")
    Sleep(100)
    Send("{ENTER}")
    Exit
    EndFunc

Думаю будет как то так... Вместо Игра нужноо ввести название в точности как отображается в диспетчере задач, иначе работать не будет

Just-ice 27-06-2009 18:02 1153199

Приложения:
D2Loader v1.10b14 Build On Oct 29 2003

Процессы:
Diablo II.exe
__________________________

Выход из игры: клавиша Esc, стрелочка вверх, Enter.

Medic84 27-06-2009 18:15 1153206

А впринципе можно и вообще обойтись без WinWaitActive("Игра") . Удали эту строчку и все будет прекрасно :)

Just-ice 27-06-2009 18:20 1153211

Цитата:

Цитата Medic84
HotKeySet("{F1}", "_ProcessClose")
While 1
Sleep(100)
WEnd
Func _ProcessClose()
WinWaitActive("Игра")
Send("{ESC}")
Sleep(100)
Send("{UP}")
Sleep(100)
Send("{ENTER}")
Exit
EndFunc »

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



оки....щас удалю

proxy 27-06-2009 18:23 1153215

Just-ice,
1. Попробуйте без строчки: WinWaitActive("Игра")
2. Отрегулируйте Sleep - где больше значение, где меньше - так как, возможно, некоторые менюшки появляются быстро (в течение 10-100 мс), а некоторые, возможно, медленней - для этого необходимо увеличить время в Sleep

Just-ice 27-06-2009 19:09 1153251

ОГРОМНОЕ СПАСИБО!!! Всё работает.
Ещё один вопрос...а можно сделать так чтобы этот скрипт был многоразового пользования? А то после первого нажатия F1 он исчезает (и приходиться включать его снова)

Belfigor 27-06-2009 19:10 1153254

Убери Exit и тогда он не будет закрываться после нажатия Ф1


Время: 02:26.

Время: 02:26.
© OSzone.net 2001-