#include <WindowsConstants.au3>
#Include <GuiTreeView.au3>
;GUI to check the function
$hGUI = GUICreate("Our GUI")
$aWindow = _ProcessGetWindow(@AutoItPID);, -1, 1)
MsgBox(64, "Results", _
StringFormat("Win Title \t\t\t= %s \nWin Handle \t\t= %s\nOriginal Win Handle \t\t= %s", $aWindow[0], $aWindow[1], $hGUI))
$hGUI2 = GUICreate('Выберите папку', 200, 400, -1, -1, BitOR($WS_CAPTION, $WS_POPUP),-1, $hGUI)
;$hTV = _GUICtrlTreeView_Create($hGUI2, 5, 5, 190, 390, -1, $WS_EX_CLIENTEDGE); ******** Нарушает работу *******
$aWindow = _ProcessGetWindow(@AutoItPID);, -1, 1)
MsgBox(64, "Results", _
StringFormat("Win Title \t\t\t= %s \nWin Handle \t\t= %s\nOriginal Win Handle \t\t= %s", $aWindow[0], $aWindow[1], $hGUI2))
GUISetState(@SW_SHOW, $hGUI)
GUISetState(@SW_SHOW, $hGUI2)
Func _ProcessGetWindow($iPID, $iRet = -1, $iRetVisibleOnly = 0)
Local $aWinList = WinList(), $aRet[2]
If IsString($iPID) Then
$iPID = ProcessExists($iPID)
EndIf
For $i = 1 To UBound($aWinList)-1
If (($iRetVisibleOnly And BitAND(WinGetState($aWinList[$i][1]), 2)) Or Not $iRetVisibleOnly) And 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]
EndIf
If $iRet = 1 Then
Return $aRet[1]
EndIf
Return $aRet
EndIf
Next
Return SetError(1, 0, $aRet)
EndFunc