1 (изменено: ufimez, 2016-06-01 08:02:15)

Тема: AHK: почему скрипт закрывается не закончив работу

Неожиданно на WinXP скрипт начал закрываться не закончив работу.
Программа вызывает MouseRobot и передает ему данные. Есть еще окно которое стремится занять передний план, именно поэтому столько активаций переднего окна.
Скрипт закрывается на
SendInput C:\Documents and Settings\Admin\Desktop\Mouse robot\1.Ytro\1-9  (Ytro).xtsk{Enter}
Причем не дописав строку, просто прерывается и из трея значок исчезает. Ни разу с таким не сталкивался.
Может есть блокировка закрытия программы?


#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

DetectHiddenText, on 
IfWinNotExist, MouseRobot	 
	{
	Run "C:\Documents and Settings\All Users\Application Data\AutomationBox\MouseRobot2\Application\MouseRobot.exe"
	Sleep, 3000
	WinSet, AlwaysOnTop, on, MouseRobot
	Sleep, 3000
	WinActivate, MouseRobot
	Sleep, 3000
	WinWaitActive, MouseRobot, , 9 
	if ErrorLevel 
		{ 
	            MsgBox, Истёк срок ожидания (Запуск MouseRobot). 
	            return 
	        } 
	WinSet, AlwaysOnTop, off, MouseRobot
	SendInput ^o
	}  

;WinSet, AlwaysOnTop, on, Open
;Sleep, 3000
WinActivate, Open
Sleep, 3000
FormatTime, TimeCurrent,, yyyyMMddHHmmss
FormatTime, TimeObed,, yyyyMMdd130000
FormatTime, TimeSegodnia,, yyyyMMdd060000
FormatTime, TimeString, R
If ( TimeCurrent < TimeObed ) 
	{
	WinWaitActive, Open, , 9 
	    if ErrorLevel 
	        { 
	            MsgBox, Истёк срок ожидания (Запуск Open ytro). 
	            return 
	        } 
	SendInput C:\Documents and Settings\Admin\Desktop\Mouse robot\1.Ytro\1-9  (Ytro).xtsk{Enter}
	}	
else  
	{
	WinWaitActive, Open, , 9 
	    if ErrorLevel 
	        { 
	            MsgBox, Истёк срок ожидания (Запуск Open vecher). 
	            return 
	        }
	SendInput C:\Documents and Settings\Admin\Desktop\Mouse robot\2.Vecher\1-9  (Vecher).xtsk{Enter}
	}
;SendInput {Raw} C:\Documents and Settings\Admin\Desktop\Mouse robot\2.Vecher\1-9  (Vecher).xtsk{Enter}


WinSet, AlwaysOnTop, off, Open
;Sleep, 1000
;SetTitleMatchMode 2 ; заголовок окна должен начинаться со значения, заданным в WinTitle
SetTitleMatchMode 2 ; заголовок окна должен частично содержать со значением, заданным в WinTitle
WinSet, AlwaysOnTop, on, MouseRobot
;Sleep, 2000
WinActivate, MouseRobot
;Sleep, 2000
WinWaitActive, MouseRobot, , 9 
	    if ErrorLevel 
	        { 
	            MsgBox, Истёк срок ожидания (Запуск MouseRobot F5). 
	            return 
	        } 
;Sleep, 1000
SendInput {F5}
WinSet, AlwaysOnTop, off, MouseRobot

2 (изменено: ufimez, 2016-06-01 08:01:49)

Re: AHK: почему скрипт закрывается не закончив работу

Попробовал перезагрузить компьютер не помогло.
Скрипт завершает свою работу в
SendInput C:\Documents and Settings\Admin\ там плюс минус пара букв временами бывает.
Попробовал с буфером, тут все нормально, однако не пойму откуда такая разница, может слишком быстро текст набирается и какая то защитная программа считает что троян активировался..


Clipboard = %MyText%
Sleep, 500
Send, ^v

3

Re: AHK: почему скрипт закрывается не закончив работу

Теперь расставьте точки в конце предложений, должно помочь.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4 (изменено: ufimez, 2016-06-01 09:01:50)

Re: AHK: почему скрипт закрывается не закончив работу

teadrinker
Вставил точки.

Вроде получилось обойти этот глюк с помощью:


ControlSendRaw, Edit1, C:\Documents and Settings\Admin\Desktop\Mouse robot\1.Ytro\1-9  (Ytro).xtsk{Enter}, Open

Но мне непонятно почему он искажает "\" на "|".
Потом в управляющей команде тоже искажена буква "n" на "N".
Вот, что он выводит при получении команды:
c:|Documents and Settings\Admin\Desktop\Mouse robot\1.Ytro\1-9  (YTro).xtsk{ENter}
Если конечно слеш подправить с прямой на косую, то программа запустится. Но почему он изменяет и как этого избежать есть советы?

5

Re: AHK: почему скрипт закрывается не закончив работу

Дополнительно не работает


SetKeyDelay, 20000
Send, C:\Documents and Settings\Admin\Desktop\Mouse robot\1.Ytro\1-9  (Ytro).xtsk{Enter}

6

Re: AHK: почему скрипт закрывается не закончив работу

Так попробуйте отправить строку.

SendStr("C:\Documents and Settings\Admin\Desktop\Mouse robot\1.Ytro\1-9  (Ytro).xtsk", "Edit1", "ahk_class Notepad")

SendStr(Str, Ctrl, Win) {
	Loop, Parse, Str
		PostMessage, 0x102, Ord(A_LoopField), 1, %Ctrl%, %Win%   ;  WM_CHAR
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7 (изменено: ufimez, 2016-06-12 08:39:21)

Re: AHK: почему скрипт закрывается не закончив работу

serzh82saratov
Действительно так работает. Спустя нескольких дней тестирования не вылетает!
Похоже у autohotkey и mouserobot и еще какой то программы есть несовместимость в определенных кусках кода. Это все я на дистанционной машине делал, но спустя какое то время и у меня на рабочей машине где я код тестирую и отлаживаю тоже вылеты начались, но в моем случае помогла перезагрузка.

Вопрос закрыт тему можно закрыть