找回密码
 加入
搜索
查看: 1776|回复: 3

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

[复制链接]
发表于 2020-2-19 05:43:41 | 显示全部楼层 |阅读模式
本帖最后由 w60711 于 2020-4-18 00:52 编辑

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


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


先感谢各位前辈了~~

发表于 2020-2-19 21:00:41 | 显示全部楼层
默认创建的窗口应该就不能改变大小吧
 楼主| 发表于 2020-2-20 01:36:01 | 显示全部楼层
anythinging 发表于 2020-2-19 21:00
默认创建的窗口应该就不能改变大小吧

我是指第三方窗口
不是AU3创建的...
 楼主| 发表于 2020-4-18 00:51:18 | 显示全部楼层

找到了ˊ方法并修改
#include <WindowsConstants.au3>
#include <Winapi.au3>

Run("notepad.exe")
WinWait("[CLASS:Notepad]", "", 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 = "[CLASS:Notepad]"
                $list = WinList($winClass)
                For $i = 1 to $list[0][0]
                        $shwnd = $list[$i][1]
                        $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 = "[CLASS:Notepad]"
                $list = WinList($winClass)
                For $i = 1 to $list[0][0]
                        $shwnd = $list[$i][1]
                        $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

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 08:20 , Processed in 0.075107 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表