Что нового

Использование функции с помощью HotKeySet из фонового режима

festinuz

Новичок
Сообщения
2
Репутация
0
Версия AutoIt: 3.

Описание:
Есть простенький скрипт, выполняющий функцию startfunc, поставленную командой HotKeySet на кнопку. (содержание функции не важно) и MsgBox c небольшим обьяснением по работе скрипта.

На данный момент он работает таким образом, что Нажатие кнопки работает только в самом MsgBox т.е. нажатие кнопки срабатывает, пока MsgBox не закрыт, и начинает выполнение после закрытия.

Мне необходимо, чтобы функция активировалась по нажатию кнопки в любое время после закрытия MsgBox.

желательно, чтобы иконка скрипта висела на панели задач до того момента, как скрипт будет выключен, откуда можно было бы вызвать тот-же MsgBox. (Необязательная часть.)

Спасибо за помощь!

Примечания:
Код:
$hWnd = WinWait("[CLASS:QWidget]", "", 5)
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
 EndIf
 Sleep (400)
WinMove($hWnd, "", 10, 10, 1000, 600)
 
HotKeySet("{ESC}", "Terminate")
HotKeySet("s", "startfunc") ;d

Sleep (400)
MsgBox(0, 'Сообщение', 'Нужный размер окна установлен. Нажмите S, если все готово. Esc чтобы выключить.')

Func Terminate()
    Exit 0
EndFunc   ;==>Terminate

Func startfunc ()
   MouseClick ( "left", 150, 60)
   Sleep (100)
   MouseClick ( "left", 760, 90)
   EndFunc
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Поставьте назначение клавиш после сообщения. И добавьте бесконечный цикл.
Код:
$hWnd = WinWait("[CLASS:QWidget]", "", 5)
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
 EndIf
 Sleep (400)
WinMove($hWnd, "", 10, 10, 1000, 600)
 
Sleep (400)
MsgBox(0, 'Сообщение', 'Нужный размер окна установлен. Нажмите S, если все готово. Esc чтобы выключить.')

HotKeySet("{ESC}", "Terminate")
HotKeySet("s", "startfunc") ;d

Do
  Sleep(100)
Until 0

Func Terminate()
    Exit 0
EndFunc   ;==>Terminate

Func startfunc ()
   MouseClick ( "left", 150, 60)
   Sleep (100)
   MouseClick ( "left", 760, 90)
   EndFunc
 
Автор
F

festinuz

Новичок
Сообщения
2
Репутация
0
Спасибо большое, InnI, работает как часы.
 
Верх