Есть вот такой код:
Если в 6-й строке убрать точку с запятой, то всё работает (запуск телнета, пара окон; закрытие теленета); если точку с запятой восстановить (отключить первое из окон) — скрипт полностью рассыпается: Func больше не определяет имени окна телнета; окно телнета, также, уже не закрывается. WTF? Ай нид хелп, плиз!
Код:
#include <Array.au3>
Opt("TrayIconDebug", 1); Отладко-режим - в трее смотрим: в какой сроке "зависло"?
Dim $Pidowo [2]
Global $PIDGEON = 0;
$PIDGEON = Run ( "telnet.exe")
;MsgBox(4096,"$PIDDY", "$PIDGEON = """ & $PIDGEON & """")
Sleep(2222)
$Pidowo = _ProcessGetWindow($PIDGEON)
MsgBox(4096,"$sPunto_Window", "$PIDGEON = """ & $Pidgeon & """" & @CR & "$Pidowo [0] = """ & $Pidowo[0] & """" & @CR & "$Pidowo[1] = """ & $Pidowo[1] & """")
WinClose( $Pidowo[1] )
Opt("TrayIconDebug", 0); Отладко-режим - в трее смотрим: в какой сроке "зависло"?
Exit
Func _ProcessGetWindow($iPID, $iRet=-1)
Local $aWinList = WinList()
Local $aRet[2]
If IsString($iPID) Then $iPID = ProcessExists($iPID)
For $i = 1 To UBound($aWinList)-1
If WinGetProcess($aWinList[$i][1]) = $iPID Then
$aRet[0] = $aWinList[$i][0] ;Title
$aRet[1] = $aWinList[$i][1] ;WinHandle
If $iRet = 0 Then Return $aRet[0]
If $iRet = 1 Then Return $aRet[1]
Return $aRet
EndIf
Next
Return SetError(1, 0, $aRet)
EndFunc
Если в 6-й строке убрать точку с запятой, то всё работает (запуск телнета, пара окон; закрытие теленета); если точку с запятой восстановить (отключить первое из окон) — скрипт полностью рассыпается: Func больше не определяет имени окна телнета; окно телнета, также, уже не закрывается. WTF? Ай нид хелп, плиз!