Windows 11 可否通过VBScript或PowerShell实现Cascade Windows层叠窗口
Windows 11 恢复VBScript/PowerShell层叠窗口(Cascade Windows)功能方案
Windows 11中Shell.Application COM对象的CascadeWindows方法仅保留接口定义,无实际执行逻辑,因此原有Win10可用的脚本全部失效,可通过直接调用系统user32.dll原生CascadeWindowsAPI实现功能,无需依赖AutoHotkey。
PowerShell 实现代码
直接运行以下代码即可触发层叠窗口:
Add-Type @" using System; using System.Runtime.InteropServices; public class Win32API { [DllImport("user32.dll")] public static extern bool CascadeWindows(IntPtr hwndParent, uint wHow, IntPtr lpRect, uint cKids, IntPtr lpKids); } "@ # 参数与AutoHotkey调用逻辑完全一致,实现相同层叠效果 [Win32API]::CascadeWindows([IntPtr]::Zero, 4, [IntPtr]::Zero, 0, [IntPtr]::Zero)
VBScript 实现代码
VBScript无法直接声明调用Win32 API,可通过调用PowerShell内核实现相同功能,运行后无多余弹窗:
Set objShell = CreateObject("WScript.Shell") objShell.Run "powershell -WindowStyle Hidden -Command ""Add-Type '@\""using System;using System.Runtime.InteropServices;public class Win32 {[DllImport(\""user32.dll\"")]public static extern bool CascadeWindows(IntPtr hwndParent, uint wHow, IntPtr lpRect, uint cKids, IntPtr lpKids);}\""@;[Win32]::CascadeWindows([IntPtr]::Zero,4,[IntPtr]::Zero,0,[IntPtr]::Zero)""", 0, True
内容的提问来源于stack exchange,提问作者Stijn Bousard
相关产品推荐
相关产品推荐

