Ежедневный макрос Autohotkey не работает должным образом

Я создал макрос в autohotkey, который может скопировать в 7:40 последний файл, созданный на общем диске, в папку Dropbox. Когда я запускаю макрос, чтобы попробовать его, установив "время встречи" через 2 минуты, например, он работает отлично. Проблема в том, что на следующий день макрос не запускается. Не могли бы вы мне помочь, пожалуйста?

Спасибо

Марко

SetTimer, Chronos, 59900
Return

Chronos:
FormatTime, TimeToMeet,,HHmm
If TimeToMeet = 740 ; If you wanted the script to start at 7 am put change 1006 to 700
{
run O:\research\
winactivate, research
sleep 1000
MouseClick, left, 289, 586
send {PgDn 6}
clipboard = 
Send ^c
clipwait 
sleep, 1000
FileCopy, %clipboard%,C:\Dropbox\
sleep 2000
winclose research 
return


}
Return

person Marco    schedule 02.09.2013    source источник
comment
Что происходит между двумя днями? Выключаете ли вы свой компьютер?   -  person MCL    schedule 03.09.2013
comment
Я не выключаю компьютер, он всегда включен (без спящего режима) с этим макросом.   -  person Marco    schedule 03.09.2013
comment
При таком подходе многое может пойти не так. Во-первых, вы не проверяете после run o:\research, действительно ли окно активно (или ждете, пока оно активизируется), поэтому theres no way to know what your clicks are doing. There might be a screensaver on your PC that stops this from working. If I had to get your script to work I would make it write a log file (like this: fileappend errorlevel:%Errorlevel% time:%A_Now% MoreTextonWhatCommandIJustRan,c:\temp\logfile.txt`), чтобы проверьте позже, что именно не сработало.   -  person 576i    schedule 03.09.2013
comment
Я не подумал о скринсейвере. Я пытаюсь написать файл журнала, как вы предложили. Спасибо   -  person Marco    schedule 03.09.2013
comment
Заставка блокировала макрос. Есть ли команда, которая может отключить заставку? Спасибо за вашу помощь   -  person Marco    schedule 04.09.2013
comment
А как отключить в настройках винды? Если вы хотите, чтобы заставка оставалась активной и просто предотвращала ее появление, вы можете отправлять событие ввода каждые X минут, например. таймер, который перемещает курсор мыши на один пиксель. В любом случае, ваша проблема кажется типичным случаем для Планировщик заданий Windows.   -  person MCL    schedule 04.09.2013


Ответы (1)


Подобная автономная автоматизация пользовательского интерфейса может быть не самым надежным подходом. Я бы порекомендовал использовать планировщик заданий Windows для запуска процесса. Я думаю, что это может быть безопаснее, чем если бы скрипт работал круглосуточно и без выходных. Что еще более важно, похоже, что вы выполняете очень простые манипуляции с файлами, автоматизируя пользовательский интерфейс. Этот тип работы может быть лучше выполнен с помощью пакетного файла Windows или функций Autohotkey для файлов. Обратите внимание, что пакетные файлы менее требовательны к заставкам и входу в систему. Мне нравится AutoHotkey, но это, похоже, слабое место. Ознакомьтесь с документацией для каждой из функций, начинающихся со слова файла. Я был бы удивлен, если бы вы не смогли подключить некоторые из них, чтобы делать то, что вам нужно. Поскольку вы, кажется, ищете файл, проверьте его: http://www.autohotkey.com/docs/commands/LoopFile.htm Я думаю, что эта ветка может помочь, так как она находит самый последний файл в папке: http://www.autohotkey.com/board/topic/57475-open-most-recent-file-date-created-in-a-folder/ Удачи!

person Programmer Paul    schedule 09.09.2013