AHK | Взаимодействие ENTER

Dendik

Новичок
Автор темы
6
1
Смотрите к примеру есть кнопка >>>, Как мне сделать так при нажатии ENTER переходит на другой диалоговую вставку ( dialog 0 )
Забыл как пользоваться - if (GetKeyState("Enter", "P")) {
Код:
 showdialog(0,"{CC3333}[Hospital]: {FFFFFF}Устав Больницы","{CC3333}Что-то", ">>>", "Закрыть")
 

#darksoor

Активный
299
54
Смотрите к примеру есть кнопка >>>, Как мне сделать так при нажатии ENTER переходит на другой диалоговую вставку ( dialog 0 )
Забыл как пользоваться - if (GetKeyState("Enter", "P")) {
Код:
 showdialog(0,"{CC3333}[Hospital]: {FFFFFF}Устав Больницы","{CC3333}Что-то", ">>>", "Закрыть")
AutoHotKey:
#NoEnv
#SingleInstance force
#Include SAMP-UDF.ahk
#IfWinActive GTA:SA:MP

~F6::
~ESC::
menu:=0
return

vkD::
Gosub, checkDialogMenu
return

F2::
menu := 1
showDialog(0, "Заголовок 1", "Текст", "»", "x")
return

~LButton::
Time := A_TickCount
while(isDialogOpen())
{
    if (A_TickCount - Time > 500)
    {
        Return
    }
}

checkdialogMenu:
ifWinNotActive, GTA:SA:MP
{
    return
}
if (menu == 1)
{
    menu := 0
    showDialog(0, "Заголовок 2", "Текст", "»", "x")
    return
}
return
Можно циклом через функцию:
AutoHotKey:
#NoEnv
#SingleInstance force
#Include SAMP-UDF.ahk
#IfWinActive GTA:SA:MP

F2::
showDialog(0, "Заголовок 1", "Текст", "»", "x")
dialog := checkDialogClose()
if (!dialog)
   return
showDialog(0, "Заголовок 2", "Текст", "»", "x")
return

checkDialogClose()
{
   while (!GetKeyState("Enter", "P") && !GetKeyState("ESC", "P") && !GetKeyState("LButton", "P"))
      continue
   if (GetKeyState("Enter", "P"))
      return 1
   else if (GetKeyState("ESC", "P"))
      return 0
   else if (GetKeyState("LButton", "P"))
   {
      if (isDialogButtonSelected(1) == 1 and getDialogStyle() == 0)
         return 1
      else
         return 0
   }
}
Return
 
Последнее редактирование:
  • Нравится
Реакции: Dendik

Dendik

Новичок
Автор темы
6
1
AutoHotKey:
#NoEnv
#SingleInstance force
#Include SAMP-UDF.ahk
#IfWinActive GTA:SA:MP

~F6::
~ESC::
menu:=0
return

vkD::
Gosub, checkDialogMenu
return

F2::
menu := 1
showDialog(0, "Заголовок 1", "Текст", "»", "x")
return

~LButton::
Time := A_TickCount
while(isDialogOpen())
{
    if (A_TickCount - Time > 500)
    {
        Return
    }
}

checkdialogMenu:
ifWinNotActive, GTA:SA:MP
{
    return
}
if (menu == 1)
{
    menu := 0
    showDialog(0, "Заголовок 2", "Текст", "»", "x")
    return
}
return
Можно циклом через функцию:
AutoHotKey:
#NoEnv
#SingleInstance force
#Include SAMP-UDF.ahk
#IfWinActive GTA:SA:MP

F2::
showDialog(0, "Заголовок 1", "Текст", "»", "x")
dialog := checkDialogClose()
if (!dialog)
   return
showDialog(0, "Заголовок 2", "Текст", "»", "x")
return

checkDialogClose()
{
   while (!GetKeyState("Enter", "P") && !GetKeyState("ESC", "P") && !GetKeyState("LButton", "P"))
      continue
   if (GetKeyState("Enter", "P"))
      return 1
   else if (GetKeyState("ESC", "P"))
      return 0
   else if (GetKeyState("LButton", "P"))
   {
      if (isDialogButtonSelected(1) == 1 and getDialogStyle() == 0)
         return 1
      else
         return 0
   }
}
Return
Спасибо больше, цикл помог. Мне очень хотел бы еще получить ответ как сделать возвращение обратно?