Что нового

Альтернатива AdlibRegister

Атос

Новичок
Сообщения
85
Репутация
0
Привет.

Я хочу посоветоваться с более опытными юзерами, чем можно заменить функцию AdlibRegister?

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

Как можно побороть такое явление? Чтобы функция не останавливалась ни на милисекунду, пока её не разрегистрируют.
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
203
Атос сказал(а):
Как можно побороть такое явление? Чтобы функция не останавливалась ни на милисекунду, пока её не разрегистрируют.

Попробуйте использовать таймеры

Код:
#include <Timers.au3>

$iCounter = 0
$hWnd = WinGetHandle(AutoItWinGetTitle())
If Not $hWnd Then Exit MsgBox(0, "Ошибка", "Не удалось получить дескриптор окна")
$iTimer = _Timer_SetTimer($hWnd, 500, "_Timer")

MsgBox(0, "", "Тест")
_Timer_KillTimer($hWnd, $iTimer)

Func _Timer($hWnd, $uMsg, $IDTimer, $dwTime)
	$iCounter += 1
	TrayTip("Timer", $iCounter, 5)
EndFunc   ;==>_Timer
 
Верх