Board logo

标题: [其他] bat 脚本如何把最小化窗口最大化? [打印本页]

作者: cch    时间: 2024-3-9 09:11     标题: bat 脚本如何把最小化窗口最大化?

新手小白

Windows 里面使用 bat 判断某个程序是否最大化

如果最大化的话,模拟鼠标点击指定位置按钮

如果最小化的话,将该程序最大化,然后模拟鼠标点击指定按钮
作者: cch    时间: 2024-3-9 09:13

谢谢
start/MAX "" "D:....:
--
MAX是窗口启动的时候最大化,是新运行一个窗口,不是将现有已开启的窗口最大化
作者: 77七    时间: 2024-3-9 10:22

可以使用第三方工具 cmdow、cimt (http://bcn.bathome.net/s/tool/index.html)
  1. rem 获取窗口标题(不确定窗口标题,或者是变化的)
  2. for /f "tokens=12*" %%a in ('cmdow /f /t /p ^|find "这里填写窗口标题关键词"') do (
  3. set window=%%b
  4. )
  5. rem 显示并置顶
  6. cmdow "%window%" /res /top
  7. rem 定位
  8. cimt /mm 100 100
  9. rem 左键
  10. cimt /mc 0
  11. rem 取消置顶并最小化
  12. cmdow "%window%" /not /min
  13. rem 以上命令之间需要适当延时,操作某些软件可能需要管理员权限
复制代码

作者: aloha20200628    时间: 2024-3-9 14:17

本帖最后由 aloha20200628 于 2024-3-9 14:26 编辑

回复 2# cch

给一个简单的批处理脚本,实际是包装了jscript代码(存为test.bat运行),示范将一个已存在的程序窗口恢复至最大化
代码中假定程序窗口标题来自一个空开的记事本(notepad.exe)
备注》1。有些系统程序如任务管理器,须在管理员权限的cmd窗口中运行本脚本才有效
2。有些安全性能被严控的商业软件可能会封堵或接管键盘输入,从而导致本脚本采用的方法失效
  1. @set @v=1 /*
  2. @echo off
  3. ::设置目标窗口的标题
  4. set "tt=无标题 - 记事本"
  5. cscript /e:jscript "%~f0" "%tt%" &exit/b
  6. */
  7. v=WSH.arguments; ws = WSH.createobject('wscript.shell');
  8. ws.appactivate(v(0)); ws.sendKeys("% x"); WSH.quit();
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2