1 (изменено: OmTatSat, 2016-07-19 22:45:50)

Тема: AHK: Задать действие при ошибке скрипта

Здравствуйте, есть скрипт работающий с авторизацией, когда закрываю программу в которой скрипт авторизованно получал данные, он теряет возможность их получать и показывает сообщение с ошибкой. Как задать действие при появлении такой ошибки?

Кусок кода с помощью которого можно увидеть окно с ошибкой на которое нужно задать действие.

url := "http://" ip ":" port "/gui/"
global urlVlc := "http://" ip ":" port "/proxy"
tokenUrl := url "token.html"
action := "?list=1"
HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", tokenUrl, false)
HTTP.SetCredentials(user, pass, 0)
HTTP.Send()
Body := HTTP.ResponseBody

2

Re: AHK: Задать действие при ошибке скрипта

ComObjError(false)
url := "http://" ip ":" port "/gui/"
global urlVlc := "http://" ip ":" port "/proxy"
tokenUrl := url "token.html"
action := "?list=1"
HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", tokenUrl, false)
if A_lastError
   msgbox error
HTTP.SetCredentials(user, pass, 0)
HTTP.Send()
Body := HTTP.ResponseBody

3

Re: AHK: Задать действие при ошибке скрипта

Malcev, как всегда выручаете, огромное Спасибо!

4

Re: AHK: Задать действие при ошибке скрипта

Возможно ли обойти ошибку такого рода?

Error:  
Error code:	0x800A03EA
Source:		Ошибка компиляции Microsoft JScript
Description:	Синтаксическая ошибка
Line:		1
Column:		1
Line text:		()

	Line#
	327: pArr := ComObjValue(Body)
	328: cBytes := NumGet(pArr+0, A_PtrSize = 8? 24:16, "uint")
	329: pText := NumGet(pArr+0, A_PtrSize = 8? 16:12, "ptr")
	332: JsonString := StrGet(pText, cBytes, "utf-8")
	333: JS := new ActiveScript("JScript")
	334: JS.eval("delete ActiveXObject; delete GetObject;")  
	335: ComObjError(false)  
--->	336: obj := JS.eval("(" . JsonString . ")").torrents
	337: SetFormat,Float,0.1
	338: {
	343: Loop,obj.length
	344: {
	346: video := 0
	349: if reload = 1
	350: {

The thread has exited.

5

Re: AHK: Задать действие при ошибке скрипта

Дело в том, что проверка или продолжать скрипт проводится кодом.

Process, Exist, uTorrent.exe

Тогда как, если выключить uTorrent правильно нажав кнопку выход, то его процесс закроется где-то через секунды 2 после нажатия кнопки выход, и видимо в это время скрипт дальше крутится но от uTorrenta получить то что хочет не может, что можно придумать? Можно задать доп действие по нажатию кнопки выход в uTorrent?

6 (изменено: OmTatSat, 2016-07-22 13:11:17)

Re: AHK: Задать действие при ошибке скрипта

Вот так получилось.


#IfWinActive  ahk_exe uTorrent.exe
~LButton::
{
;if winactive, ahk_exe uTorrent.exe

CoordMode, Mouse, Screen
MouseGetPos, m_x, m_y, m_hw_target
SendMessage, 0x84,, ( m_y << 16 )|m_x,, ahk_id %m_hw_target%
;ToolTip, % errorlevel
if errorlevel = 1
{
	
   ; MsgBox
    exitapp
}

}