w60711 发表于 2020-2-19 05:43:41

[已解決]如何禁止第三方窗口缩放

本帖最后由 w60711 于 2020-4-18 00:52 编辑

小弟有一疑问请教
试了试没有头绪...


请问如何 禁止第三方窗口 的缩放
让窗口固定大小
例如 最大化 拖拉改变大小?
以及禁用快捷键(ALT+ENTER)切换窗口类型(全屏幕显示、窗口显示)


先感谢各位前辈了~~

anythinging 发表于 2020-2-19 21:00:41

默认创建的窗口应该就不能改变大小吧

w60711 发表于 2020-2-20 01:36:01

anythinging 发表于 2020-2-19 21:00
默认创建的窗口应该就不能改变大小吧

我是指第三方窗口
不是AU3创建的...

w60711 发表于 2020-4-18 00:51:18


找到了ˊ方法并修改

#include <WindowsConstants.au3>
#include <Winapi.au3>

Run("notepad.exe")
WinWait("", "", 10)


_WinResizingDis()
MsgBox(0, 0, 'Dis', 5)

Sleep(2000)

_WinResizingEnb()
MsgBox(0, 0, 'Enb', 5)


Func _WinResizingDis() ;;让缩放无效化
        _WinResizingMain('Dis')
EndFunc

Func _WinResizingEnb() ;;让缩放有效化
        _WinResizingMain('Enb')
EndFunc

Func _WinResizingMain($val)
        Local $list, $shwnd, $style, $winClass
        If $val = 'Enb' Then
                $winClass = ""
                $list = WinList($winClass)
                For $i = 1 to $list
                        $shwnd = $list[$i]
                        $style = _WinAPI_GetWindowLong($shwnd, $GWL_STYLE)
                        If BitAnd($style, BitOr($WS_SIZEBOX, $WS_MAXIMIZEBOX)) Then
                                ;;
                        Else
                                _WinAPI_SetWindowLong($shwnd, $GWL_STYLE, BitXOR($style, $WS_SIZEBOX, $WS_MAXIMIZEBOX))
                        EndIf
                        Sleep(50)
                Next
        EndIf
        If $val = 'Dis' Then
                $winClass = ""
                $list = WinList($winClass)
                For $i = 1 to $list
                        $shwnd = $list[$i]
                        $style = _WinAPI_GetWindowLong($shwnd, $GWL_STYLE)
                        If BitAnd($style, BitOr($WS_SIZEBOX, $WS_MAXIMIZEBOX)) Then
                                _WinAPI_SetWindowLong($shwnd, $GWL_STYLE, BitXOR($style, $WS_SIZEBOX, $WS_MAXIMIZEBOX))
                        EndIf
                        Sleep(50)
                Next
        EndIf
EndFunc

页: [1]
查看完整版本: [已解決]如何禁止第三方窗口缩放