KemyKo Posted June 25, 2017 Posted June 25, 2017 I want to create a program that resizes and changes style/exstyles of other windows. The problem is that i don`t know why my script doesn`t work. Here is an example: #RequireAdmin #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $setStyle, $getStyle, $outputString='', $getHandle, $setState $getHandle = WinGetHandle("[CLASS:Notepad]") $outputString &= $getHandle & @LF $setState = GUISetState(@SW_SHOWNORMAL, $getHandle) $outputString &= $setState & @LF $getStyle = GUIGetStyle($getHandle) If IsArray($getStyle) = 1 Then $outputString &= $getStyle[0]& ' ' &$getStyle[1]& @LF Else $outputString &= "NOTHING" & @LF EndIf $setStyle = GUISetStyle($WS_POPUPWINDOW, -1, $getHandle) $outputString &= $setStyle & @LF MsgBox(0,"OUTPUT", $outputString) It doesn`t work... At least not for me I noticed that $getHandle is "0x0021023A" and AutoIt Window Info shows : "0x000000000021023A" I don`t know if that`s a problem . If it is, idk how to fix it
InunoTaishou Posted June 25, 2017 Posted June 25, 2017 expandcollapse popup#include <GUIConstants.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> Global $hNotepad = WinGetHandle("[Class:Notepad]") If (@error) Then Exit ConsoleWrite("Failed to get Notepad handle" & @LF) Global $iStyle = _WinAPI_GetWindowLong($hNotepad, $GWL_STYLE) ConsoleWrite("Current Style List: " & StyleVariablesFromStyle($iStyle) & @LF) $iStyle = BitXOR($iStyle, $WS_SIZEBOX, $WS_MINIMIZEBOX, $WS_MAXIMIZEBOX) ConsoleWrite("New Style List: " & StyleVariablesFromStyle($iStyle) & @LF) _WinAPI_SetWindowLong($hNotepad, $GWL_STYLE, $iStyle) Func StyleVariablesFromStyle(Const $iStyles) Local Static $aStyles[][] = [["$WS_BORDER", 0x00800000], _ ["$WS_POPUP", 0x80000000], _ ["$WS_CAPTION", 0x00C00000], _ ["$WS_CLIPCHILDREN", 0x02000000], _ ["$WS_CLIPSIBLINGS", 0x04000000], _ ["$WS_DISABLED", 0x08000000], _ ["$WS_DLGFRAME", 0x00400000], _ ["$WS_HSCROLL", 0x00100000], _ ["$WS_MAXIMIZE", 0x01000000], _ ["$WS_MAXIMIZEBOX", 0x00010000], _ ["$WS_MINIMIZE", 0x20000000], _ ["$WS_MINIMIZEBOX", 0x00020000], _ ["$WS_OVERLAPPED", 0x00000000], _ ["$WS_OVERLAPPEDWINDOW", 0x00CF0000], _ ["$WS_POPUPWINDOW", 0x80880000], _ ["$WS_SIZEBOX", 0x00040000], _ ["$WS_SYSMENU", 0x00080000], _ ["$WS_THICKFRAME", 0x00040000], _ ["$WS_VSCROLL", 0x00200000], _ ["$WS_VISIBLE", 0x10000000], _ ["$WS_CHILD", 0x40000000], _ ["$WS_GROUP", 0x00020000], _ ["$WS_TABSTOP", 0x00010000], _ ["$DS_MODALFRAME", 0x00000080], _ ["$DS_SETFOREGROUND", 0x00000200], _ ["$DS_CONTEXTHELP", 0x00002000]] Local $sStyles = "" For $i = 0 To UBound($aStyles) - 1 If (BitAND($iStyles, $aStyles[$i][1]) = $aStyles[$i][1]) Then $sStyles &= $aStyles[$i][0] & ", " Next Return StringTrimRight($sStyles, 2) EndFunc ;==>StyleVariablesFromStyle
KemyKo Posted June 25, 2017 Author Posted June 25, 2017 (edited) 6 minutes ago, InunoTaishou said: expandcollapse popup#include <GUIConstants.au3> #include <WindowsConstants.au3> #include <WinAPI.au3> Global $hNotepad = WinGetHandle("[Class:Notepad]") If (@error) Then Exit ConsoleWrite("Failed to get Notepad handle" & @LF) Global $iStyle = _WinAPI_GetWindowLong($hNotepad, $GWL_STYLE) ConsoleWrite("Current Style List: " & StyleVariablesFromStyle($iStyle) & @LF) $iStyle = BitXOR($iStyle, $WS_SIZEBOX, $WS_MINIMIZEBOX, $WS_MAXIMIZEBOX) ConsoleWrite("New Style List: " & StyleVariablesFromStyle($iStyle) & @LF) _WinAPI_SetWindowLong($hNotepad, $GWL_STYLE, $iStyle) Func StyleVariablesFromStyle(Const $iStyles) Local Static $aStyles[][] = [["$WS_BORDER", 0x00800000], _ ["$WS_POPUP", 0x80000000], _ ["$WS_CAPTION", 0x00C00000], _ ["$WS_CLIPCHILDREN", 0x02000000], _ ["$WS_CLIPSIBLINGS", 0x04000000], _ ["$WS_DISABLED", 0x08000000], _ ["$WS_DLGFRAME", 0x00400000], _ ["$WS_HSCROLL", 0x00100000], _ ["$WS_MAXIMIZE", 0x01000000], _ ["$WS_MAXIMIZEBOX", 0x00010000], _ ["$WS_MINIMIZE", 0x20000000], _ ["$WS_MINIMIZEBOX", 0x00020000], _ ["$WS_OVERLAPPED", 0x00000000], _ ["$WS_OVERLAPPEDWINDOW", 0x00CF0000], _ ["$WS_POPUPWINDOW", 0x80880000], _ ["$WS_SIZEBOX", 0x00040000], _ ["$WS_SYSMENU", 0x00080000], _ ["$WS_THICKFRAME", 0x00040000], _ ["$WS_VSCROLL", 0x00200000], _ ["$WS_VISIBLE", 0x10000000], _ ["$WS_CHILD", 0x40000000], _ ["$WS_GROUP", 0x00020000], _ ["$WS_TABSTOP", 0x00010000], _ ["$DS_MODALFRAME", 0x00000080], _ ["$DS_SETFOREGROUND", 0x00000200], _ ["$DS_CONTEXTHELP", 0x00002000]] Local $sStyles = "" For $i = 0 To UBound($aStyles) - 1 If (BitAND($iStyles, $aStyles[$i][1]) = $aStyles[$i][1]) Then $sStyles &= $aStyles[$i][0] & ", " Next Return StringTrimRight($sStyles, 2) EndFunc ;==>StyleVariablesFromStyle Thx a lot. This solved my problem Edited June 25, 2017 by KemyKo
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now