내 AHK 스크립트의 예상 실행 시간은 이벤트에 따라 5 분에서 25 분 사이입니다. 그리고 대부분 브라우저에서 화면을 긁어 내고 패턴을 검색하고 그에 따라 화면상의 특정 영역을 클릭하여 조치를 취합니다. 모두 완료되면 브라우저 세션을 종료합니다. 그리고 Windows 작업 스케줄러에서 매 시간마다 실행되도록 예약했습니다.autohotkey : 워치 독 설정 방법
내 문제는 네트워크 문제가 있거나 워크 스테이션 CPU에 시니어 순간이있는 경우 웹 페이지를로드하는 데 필요한 시간이 충분하지 않다는 것입니다 (일반적으로 약 15 초이며 실행할 수 없습니다). 콘텐츠가 30 초 후에 변경 될 수 있으므로 길어집니다.) 또는 처리 과정 중에 무엇인가가 매달릴 수 있습니다. 그런 일이 발생하면
, 나는 AHK 스크립트를 종료하고 바로 종료하기 전에, 내가 올 드릴 수 없습니다, 그것은 지금까지 (이 특정 경우에 크롬을)
를 모든 브라우저 세션을 종료하고자합니다 "단일 스크립트"솔루션으로
나의 현재 상태는 파일의 내용을 30 분마다 모니터링하는 스크립트를 시작하는 것입니다, 그리고 내용이 마지막으로 변경하지 않은 경우, 새로운 구글 크롬 세션을 열고 Shift 키를 보내 - Ctrl - Q 크롬의 모든 인스턴스를 닫기위한 키 시퀀스입니다. 한편, 내 주된 스크립트는 완료시 동일한 파일을 이전 값과 다른 번호로 업데이트하며 그것은 고유합니다. 이 접근법의 결핍 : 나는이 감시 스크립트를 죽이지 않고 다른 AHK 스크립트 (hang a hang)를 어떻게 죽일지 모른다.
그리고 궁극적 인 목적은이 기능을 메인 스크립트에 구현하는 것입니다.이 스크립트는 매달리기 쉽습니다.
내 주요 스크립트
send #r
send chrome.exe http://myURL{enter}
mousemove 200,200
send ^a
send ^c
;
; using a series of IfInString commands
; determine the condition
; then use mousemove, x, y and mouseclick, l
; commands, do my deed
filedelete, c:\mydir\myfile
fileappend, newnumber, c:\mydir\myfile
exitapp
내 감시 스크립트는 물론
loop ; forever
{
; old content is stored in variable PREV
fileread, newval, c:\mydir\myfile
if (newval = PREV)
{
send #r
send chrome.exe
sleep 10000 ; wait for chrome window to pop up
send ^+Q
; I need a way to stop my hung AHK script here but don't know how
}
else
{
PREV = %newval%
sleep 1800000 ; sleep 30 minutes
}
} ; end of loop
f10::exitapp ; when I need to stop watchdog
이 실제 스크립트를하지 않습니다. 그냥 당신에게 아이디어를 줄 수 있습니다. 그렇지 않으면 페이지가로드 될 때까지 기다리는 데는 많은 시간이 걸리지 만 그 중 요점은 있습니다.
미리 난 당신이 설명하는 문제를 해결해야 할 몇 가지 AutoHotkey에 코드 블록을 제공 한
사용은'대신 SetTimer'. –
그 스크립트의 목적이 무엇인지 알 수는 없지만 프로그래밍 방식으로 요청을 프로그래밍하면 쉽게 만들 수 있습니다. [WinHttpRequest] (http://www.autohotkey.com/board/topic/56987-com-object-reference-autohotkey-v11/#entry358508)를 사용하십시오. – MCL
@JoeDF와 마찬가지로, 워치 독 스크립트의 루프를 대신 'SetTimer'에 넣으십시오. –