Obtient des informations sur une fen�tre active ou un thread de GUI sp�cifi�
#include <WinAPISysWin.au3>
_WinAPI_GetGUIThreadInfo ( $iThreadId )
$iThreadID | L'identifiant du thread pour lequel les informations doivent �tre extraites. |
Succ�s: | Retourne le tableau qui contient les informations suivantes: [0] - L'�tat du thread. Il peut s'agir d'une ou plusieurs des valeurs $GUI_*. [1] - Le handle de la fen�tre active � l'int�rieur du thread. [2] - Le handle de la fen�tre qui a le focus clavier. [3] - Le handle de la fen�tre qui a captur� la souris. [4] - Le handle de la fen�tre qui poss�de des menus actifs. [5] - Le handle de la fen�tre dans une boucle de d�placement ou de redimensionnement. [6] - Le handle de la fen�tre qui affiche le curseur. [7] - La coordonn�e x du coin sup�rieur gauche du rectangle de d�limitation du Caret, en coordonn�es client. [8] - La coordonn�e y du coin sup�rieur gauche de rectangle de d�limitation du Caret, en coordonn�es client. [9] - La largeur de rectangle de d�limitation du Caret. [10] - La hauteur du rectangle de d�limitation du Caret. |
�chec: | D�finit @error <> 0, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur. |
Consultez GetGUIThreadInfo dans la librairie MSDN.
#include <GUIConstantsEx.au3> #include <WinAPISysWin.au3> #include <WindowsConstants.au3> Local $hForm = GUICreate('', 240, 268, 10, 10, BitOR($WS_CAPTION, $WS_POPUP), $WS_EX_TOPMOST) GUICtrlCreateLabel('Thread state:', 20, 18, 90, 14) GUICtrlCreateLabel('Active window:', 20, 40, 90, 14) GUICtrlCreateLabel('Keyboard focus:', 20, 62, 90, 14) GUICtrlCreateLabel('Mouse capture:', 20, 84, 90, 14) GUICtrlCreateLabel('Active menu:', 20, 106, 90, 14) GUICtrlCreateLabel('Move or size loop:', 20, 128, 90, 14) GUICtrlCreateLabel('Caret:', 20, 150, 90, 14) GUICtrlCreateLabel('Left:', 20, 172, 90, 14) GUICtrlCreateLabel('Top:', 20, 194, 90, 14) GUICtrlCreateLabel('Width:', 20, 216, 90, 14) GUICtrlCreateLabel('Height:', 20, 238, 90, 14) Global $a_idInput[11] For $i = 0 To 10 $a_idInput[$i] = GUICtrlCreateLabel('', 114, 18 + 22 * $i, 116, 14) Next GUISetState(@SW_SHOWNOACTIVATE) Local $hWnd, $aInfo, $iPID Do $hWnd = WinGetHandle('[ACTIVE]') $aInfo = _WinAPI_GetGUIThreadInfo(_WinAPI_GetWindowThreadProcessId($hWnd, $iPID)) If Not @error Then WinSetTitle($hForm, '', WinGetTitle($hWnd)) $aInfo[0] = '0x'& Hex($aInfo[0], 8) Else WinSetTitle($hForm, '', '') Dim $aInfo[11] For $i = 0 To 10 $aInfo[$i] = '' Next $hWnd = 0 EndIf For $i = 0 To 10 If StringCompare(GUICtrlRead($a_idInput[$i]), $aInfo[$i]) Then GUICtrlSetData($a_idInput[$i], $aInfo[$i]) EndIf Next Until GUIGetMsg() = $GUI_EVENT_CLOSE