- Offizieller Beitrag
Ich habe folgendes Skript erstellt, um mir Style und StyleEx von Fenstern in Namenform ausgeben zu lassen:
WindowStyleNamed
Python
#include <WinAPI.au3>
Local $hWnd = WinGetHandle('[ACTIVE]')
Local $sStyle = WindowStyleNamed(_WinAPI_GetWindowLong($hWnd, -16))
Local $sStyleEx = WindowStyleNamed(_WinAPI_GetWindowLong($hWnd, -20), True)
ConsoleWrite("@@_Debug_line" & @TAB & @TAB & @ScriptLineNumber & " var: $sStyle --> " & @LF & $sStyle & @LF)
ConsoleWrite("@@_Debug_line" & @TAB & @TAB & @ScriptLineNumber & " var: $sStyleEx --> " & @LF & $sStyleEx & @LF)
Func WindowStyleNamed($_iStyle, $_bEx=False)
Local $oStyle = ObjCreate('Scripting.Dictionary')
Local $oStyleEx = $oStyle
Local $sResult = ''
$oStyleEx(16) = "WS_EX_ACCEPTFILES"
$oStyleEx(262144) = "WS_EX_APPWINDOW"
$oStyleEx(512) = "WS_EX_CLIENTEDGE"
$oStyleEx(33554432) = "WS_EX_COMPOSITED"
$oStyleEx(1024) = "WS_EX_CONTEXTHELP"
$oStyleEx(65536) = "WS_EX_CONTROLPARENT"
$oStyleEx(1) = "WS_EX_DLGMODALFRAME"
$oStyleEx(524288) = "WS_EX_LAYERED "
$oStyleEx(4194304) = "WS_EX_LAYOUTRTL"
$oStyleEx(0) = "WS_EX_LEFT"
$oStyleEx(16384) = "WS_EX_LEFTSCROLLBAR"
$oStyleEx(0) = "WS_EX_LTRREADING"
$oStyleEx(64) = "WS_EX_MDICHILD"
$oStyleEx(134217728) = "WS_EX_NOACTIVATE"
$oStyleEx(1048576) = "WS_EX_NOINHERITLAYOUT"
$oStyleEx(4) = "WS_EX_NOPARENTNOTIFY"
$oStyleEx(768) = "WS_EX_OVERLAPPEDWINDOW"
$oStyleEx(392) = "WS_EX_PALETTEWINDOW"
$oStyleEx(4096) = "WS_EX_RIGHT"
$oStyleEx(0) = "WS_EX_RIGHTSCROLLBAR"
$oStyleEx(8192) = "WS_EX_RTLREADING"
$oStyleEx(131072) = "WS_EX_STATICEDGE"
$oStyleEx(128) = "WS_EX_TOOLWINDOW"
$oStyleEx(8) = "WS_EX_TOPMOST"
$oStyleEx(32) = "WS_EX_TRANSPARENT"
$oStyleEx(256) = "WS_EX_WINDOWEDGE"
$oStyle(8388608) = "WS_BORDER"
$oStyle(12582912) = "WS_CAPTION"
$oStyle(1073741824) = "WS_CHILD"
$oStyle(33554432) = "WS_CLIPCHILDREN"
$oStyle(67108864) = "WS_CLIPSIBLINGS"
$oStyle(134217728) = "WS_DISABLED"
$oStyle(4194304) = "WS_DLGFRAME"
$oStyle(131072) = "WS_GROUP"
$oStyle(1048576) = "WS_HSCROLL"
$oStyle(16777216) = "WS_MAXIMIZE"
$oStyle(65536) = "WS_MAXIMIZEBOX"
$oStyle(536870912) = "WS_MINIMIZE"
$oStyle(131072) = "WS_MINIMIZEBOX"
$oStyle(0) = "WS_OVERLAPPED"
$oStyle(13565952) = "WS_OVERLAPPEDWINDOW"
$oStyle(2147483648) = "WS_POPUP"
$oStyle(2156396544) = "WS_POPUPWINDOW"
$oStyle(262144) = "WS_SIZEFRAME"
$oStyle(524288) = "WS_SYSMENU"
$oStyle(65536) = "WS_TABSTOP"
$oStyle(268435456) = "WS_VISIBLE"
$oStyle(2097152) = "WS_VSCROLL"
If $_bEx Then
For $key In $oStyleEx.Keys
If BitAND($_iStyle, $key) <> 0 Then $sResult &= $oStyleEx($key) & '|'
Next
Else
For $key In $oStyle.Keys
If BitAND($_iStyle, $key) <> 0 Then $sResult &= $oStyle($key) & '|'
Next
EndIf
Return StringTrimRight($sResult, 1)
EndFunc
Alles anzeigen
Es gibt aber Styles(Ex), mit dem Wert "0". Es ist doch aber gar nicht möglich mit Bit-Operationen einen Wert "0" zu identifizieren. Meines Erachtens kann es diese Werte gar nicht geben.
Hat jemand eine Erklärung dafür?