Здравствуйте. Помогите разобраться с работой скрипта.
У меня есть скрипт GUI, который встраивает в окно интерфейса - два окна блокнота и окно калькулятора.
Посоветуйте - как изменить скрипт, чтобы он не загружал окно 2.txt - сразу, а ждал бы когда я сам вручную запущу этот файл - и лишь потом бы встраивал его в окно GUI ?
В общем - скрипт сперва загружает в интерфейс окна 1.txt и калькулятор, а затем ждет когда появится окно с названием 2.txt - и когда видит окно с таким названием - тут же встраивает его в интерфейс GUI.
(Это нужно по той причине, что файл 2.txt - не имеет постоянного адреса, я его постоянно перемещаю.)
У меня есть скрипт GUI, который встраивает в окно интерфейса - два окна блокнота и окно калькулятора.
Код:
;#include <WinAPISysWin.au3>
#include <WinAPI.au3>
$hGUI = GUICreate("MultiProg", 800, 600, -1, -1, 0x00CF0000) ; $WS_OVERLAPPEDWINDOW
GUISetState()
Run("notepad.exe " & @ScriptDir & "\1.txt")
$hWnd1 = WinWaitActive("[class:Notepad]")
_WinAPI_SetParent($hWnd1, $hGUI)
WinMove($hWnd1, "", 0, 0, 400, 300)
$OldPos1 = WinGetPos($hWnd1)
Run("notepad.exe " & @ScriptDir & "\2.txt")
$hWnd2 = WinWaitActive("[class:Notepad]")
_WinAPI_SetParent($hWnd2, $hGUI)
WinMove($hWnd2, "", 0, 300, 400, 300)
$OldPos2 = WinGetPos($hWnd2)
Run("calc.exe")
$hWnd3 = WinWaitActive("Калькулятор")
_WinAPI_SetParent($hWnd3, $hGUI)
WinMove($hWnd3, "", 400, 0)
$OldPos3 = WinGetPos($hWnd3)
$OldActive = 0
AdlibRegister("Refresh")
Do
Until GUIGetMsg() = -3
Func Refresh()
$NewActive = WinGetHandle("")
If $NewActive <> $OldActive Then
_WinAPI_InvalidateRect($hGUI)
$OldActive = $NewActive
Return
EndIf
$NewPos1 = WinGetPos($hWnd1)
For $i = 0 To 3
If $NewPos1[$i] <> $OldPos1[$i] Then
_WinAPI_InvalidateRect($hGUI)
$OldPos1 = $NewPos1
Return
EndIf
Next
$NewPos2 = WinGetPos($hWnd2)
For $i = 0 To 3
If $NewPos2[$i] <> $OldPos2[$i] Then
_WinAPI_InvalidateRect($hGUI)
$OldPos2 = $NewPos2
Return
EndIf
Next
$NewPos3 = WinGetPos($hWnd3)
For $i = 0 To 3
If $NewPos3[$i] <> $OldPos3[$i] Then
_WinAPI_InvalidateRect($hGUI)
$OldPos3 = $NewPos3
Return
EndIf
Next
EndFunc
Посоветуйте - как изменить скрипт, чтобы он не загружал окно 2.txt - сразу, а ждал бы когда я сам вручную запущу этот файл - и лишь потом бы встраивал его в окно GUI ?
В общем - скрипт сперва загружает в интерфейс окна 1.txt и калькулятор, а затем ждет когда появится окно с названием 2.txt - и когда видит окно с таким названием - тут же встраивает его в интерфейс GUI.
(Это нужно по той причине, что файл 2.txt - не имеет постоянного адреса, я его постоянно перемещаю.)