2013-08-27 14 views
5

私はすべてのウィンドウの最小化、最大化、および閉じるボタンを取り除こうとしています。周りのグーグルで私はこれを見つけた:AutoItを使用して開いているすべてのウィンドウのリストを取得

$h = WinGetHandle("[CLASS:Notepad]") 

$iOldStyle = _WinAPI_GetWindowLong($h, $GWL_STYLE) 
$iNewStyle = BitXOr($iOldStyle, $WS_SYSMENU) 
_WinAPI_SetWindowLong($h, $GWL_STYLE, $iNewStyle) 
_WinAPI_ShowWindow($h, @SW_SHOW) 

これは正常に動作しますが、今、私はこれだけのコードですべてのウィンドウを反復処理する必要がある、と私は終わりです。システム内のすべてのHWNDsのリストを取得するにはどうすればよいですか?

答えて

6

あなたはWinListを使用して、すべての開いているウィンドウの一覧を取得することができますだけでなく

$aWindows = WinList() 
For $i=1 To $aWindows[0][0] 

    ; skip windows without a title 
    If $aWindows[$i][0] = '' Then ContinueLoop 

    ;use the HWND to get the state of the window 
    $iWndState = WinGetState($aWindows[$i][1]) 

    ; here you could filter out the windows you don't want to modify 
    ConsoleWrite($aWindows[$i][0] & ': ') 
    If BitAND($iWndState,1) = 1 Then ConsoleWrite(' exists') 
    If BitAND($iWndState,2) = 2 Then ConsoleWrite(' visible') 
    If BitAND($iWndState,4) = 4 Then ConsoleWrite(' enabled') 
    If BitAND($iWndState,8) = 8 Then ConsoleWrite(' active') 
    If BitAND($iWndState,16) = 16 Then ConsoleWrite(' minimised') 
    If BitAND($iWndState,32) = 32 Then ConsoleWrite(' maximised') 
    ConsoleWrite(@CRLF) 
Next 
+0

作品。ありがとう! :) –

+1

匿名のdownvoterが彼のdownvoteの理由を精緻化することができればそれは非常に親切です。あなたがちょうど答えを理解していない場合は、コメントしてくださいと私はあなたを助けようとします。またはこれはちょうどdownvote酒宴でしたか? http://fs2.directupload.net/images/150804/4pmpidv8.png – mrt

関連する問題