Viktor1703
AutoIT Гуру
- Сообщения
- 1,535
- Репутация
- 413
Как правильно разместить окно открытого процесса в своём GUI окне? я тут что - то написал, в принципе размещает и работает, но окно открытого процесса больше не прорисовывается, наверное нужно обработку сообщений своего окна прикрутить к открытому через _WinAPI_SetWindowLong()?
Код:
#include <WindowsConstants.au3>
#Include <WinAPIEx.au3>
#Include <APIConstants.au3>
$GUI = GUICreate("FORM",800 ,600)
GUISetState()
$PID = Run("notepad.exe")
ProcessWait("notepad.exe")
$hWin = WinGetHandleEx($PID)
_WinAPI_SetParent($hWin, $GUI)
_WinAPI_SetWindowLong($hWin, $GWL_HWNDPARENT, $GUI)
_WinAPI_SetWindowPos($hWin, $HWND_BOTTOM, 20, 20, 500, 400, BitOR($SWP_NOACTIVATE, $SWP_NOZORDER))
While 1
Switch GUIGetMsg()
Case -3
Exit
EndSwitch
WEnd
Func WinGetHandleEx($iPID)
If IsString($iPID) Then $iPID = ProcessExists($iPID)
Local $aWList = WinList("[REGEXPTITLE:(?i).*.*]")
If @error Then Return SetError(1, 0, "")
For $i = 1 To $aWList[0][0]
If WinGetProcess($aWList[$i][1]) = $iPID Then
Return $aWList[$i][1]
EndIf
Next
Return SetError(2, 0, "")
EndFunc