Что нового

Удаленное управление UltraVNC

valdur2000

Знающий
Сообщения
155
Репутация
7
Здравствуйте, серверная часть UltraVNC установлена на компе, на котором происходит выполнение AutoIt скрипта. процесс winvnc загружается вместе с включением компьютера. Вопрос, можно ли в коде AutoIt прописать функцию, которая при подключении UltraVNC клиента сразу автоматически ставит скрипт на паузу, а при отключении паузу снимает и продолжается выполнение кода с места остановки.
Спасибо.
 
Автор
V

valdur2000

Знающий
Сообщения
155
Репутация
7
Вопрос решен, для последователей решение:
UltraVNC при любой попытке подключения, даже неудачной или незаконченной, делает пометки в файле mslogon. Соответственно проверяется и сравнивается дата последнего изменения.

Код:
;вначале программы поместил строку
$x=FileGetTime("C:\Program Files\UltraVNC\mslogon.*",2,1) ;присвоил иксу начальное значение

;тут тело программы

Func _Proverka() ;в конце кода описываю функцию , которую сую в проге после каждого движения
While 1
$y=FileGetTime("C:\Program Files\UltraVNC\mslogon.*",2,1) ;игрику присваивается актуальное значение
     If $y<=$x Then ;если актуальное значение меньше начального или равно (подключений небыло), то выход из While
	ExitLoop
     ElseIf $y>$x Then ;если обнаружилось подключение, то вывести MsgBox. Прога останавливается, пока не нажмется кнопка ОК. 
        MsgBox(0,"","Connect")
        Sleep (10000) ;сделав все что надо, жму ОК и быстро закрываю клиент. Прога спит 10 сек и продолжает работу с того же места
        $x=FileGetTime("C:\Programme\UltraVNC\mslogon.*",2,1) ; иксу опять присвоил актуальное значение
        $y=0 ; игрик обнулил
        ExitLoop
     EndIf
     Sleep(50)
WEnd
EndFunc


Функцию _Proverka() приходится ставить после каждого MouseClick() , Send() и проверки цвета. Все работает, а можно сделать красивее? Что б не пихать ее везде, а один раз описать и чтоб она постоянно следила за изменением mslogon? По-типу хоткеев Exit и Pausa, которые описываются всего один раз и на протяжении всей работы скрипта ждут нажатия на клавишу.
 

RUVATA

лучше один раз увидеть, чем десять раз услышать...
Сообщения
132
Репутация
38
valdur2000 [?]
а можно сделать красивее? Что б не пихать ее везде, а один раз описать и чтоб она постоянно следила за изменением mslogon?
На ум приходит - вынести такой "ивент эмиттер" в отдельный скрипт...
Организовать между двумя действующими скриптами TCP/UDP сокет, который принемая определенный сигнал будет выполнять "паузу" или "возобновлять выполнение"
PS: с реализацией не подскажу это как идея, смысл в том что для реализации "событий" как таковых - нужны либо многопоточность, либо асинхронность исполнения кода - ни того ни другого в AutoIT в полной мере нет. (хотя имитации многопоточности можно добиться за счет разделения приложения на несколько сообщающихся, тогда они "вроде как" потоки.)
 

beliy

Продвинутый
Сообщения
372
Репутация
72
А почему бы не взять за основу - http://chunkvnc.com/download.html там в качестве надстройки для ultravnc используется скрипт на autoit, исходники присудствуют...
 
Автор
V

valdur2000

Знающий
Сообщения
155
Репутация
7
Вначале скачал именно его, но не смог разобраться с настройками портов у себя на рутере и спрвочной информации о нем мало в нете. Следующей попробовал UltraVNC и все сразу заработало и все понятно и легко...
 
Верх