启动程序时隐藏窗口

启动程序时隐藏窗口 公开 已发布

如何安装动作?

适用于
分类(旧)
Windows 脚本



更多信息
分享时间 2024-09-27 13:42
最后更新 2024-10-02 19:35
修订版本 3
用户许可 -未设置-
Quicker版本 1.42.24
动作大小 19.8 KB

分享到

「启动程序时隐藏窗口」

简介

使用该动作可启动EXE并隐藏其界面

逻辑简介:

此动作启动一个隐藏的进程,并获取其主窗口句柄。启动时会设置进程参数确保窗口隐藏,然后等待进程进入空闲状态。通过轮询方式获取窗口句柄,最大等待时间为10秒。若未获取到句柄,可能会出现错误。

注意事项:

  • 进程类型限制: 该动作仅适用于具有图形用户界面的程序,如无窗口(如命令行工具),则无法获取句柄。经测试,图片浏览器暂时不适用。

操作方式:

  • 首次运行:需要手动指定EXE路径,启动后会隐藏窗口。
  • 隐藏与显示:右键菜单可显示隐藏的窗口。为了避免多次打开导致之前窗口无法显示,限制一个动作只能隐藏并显示一个窗口。如果已有隐藏窗口,再次点击不会启动新EXE。
  • 路径保存:EXE路径会保存至配置文件。下次启动时,将直接启动并隐藏之前设置的EXE。
  • 路径重置:若需更改EXE路径,可通过右键菜单重置路径,重新选择要隐藏的程序。


2024-09-29更新内容:

  1. 对Edge和Chrome浏览器单独做了搜索标题处理(感谢@原++)
  2. 现在程序用了两种方案. 除开edge和chrome外,其他exe做轮询处理. edge和chrome通过查询路径里是否有msedge.exe和chrome.exe.来决定是否搜索对应的窗口标题.
  3. 此方案是先保存全部现存的窗口句柄, 然后去打开edge,然后持续获取Edge标题.直到搜索出的新句柄不在原来句柄内. 这样可以打开新窗口.而不是会识别到已经存在的窗口. 所以就动作来看. 每一个独立的动作. 会打开一个新的浏览器窗口.右键菜单也是对这个新开的窗口生效.
  4. 如果你不需要隐藏窗口. 而是需要最大化, 需要改两处地方.在动作里加了注释,你需要动手改注释的地方. 一般来说 . 如果要修如果下面是隐藏,上面改成恢复窗口
    如果下面是最小化. 那么上面可能对应要改成最大化
    如果你只希望最大化. 那么建议这里和上面都改成最大化,这里就根据个人需要调整了.


2024-10-02更新内容:

逻辑修改

本此修改的程序的核心逻辑,是持续等待并获取任务栏的新窗口.通常,任务栏上显示的窗口大多为主窗口。因此,第一步是扫描当前任务栏上的所有窗口并记录下来。接着,执行指定的exe文件,并持续监控新的窗口是否出现。一旦检测到新窗口,将获取该窗口的exe路径并判断它是否与指定的exe匹配。如果匹配成功,则返回该窗口的句柄。

性能分析

相比于遍历系统中的所有顶层窗口,任务栏窗口的数量通常较少,减少了遍历范围,因此能够显著提升识别效率。然而,此方法也存在潜在的局限性:如果某个窗口仅以后台图标形式存在,并未显示在任务栏中,系统将无法捕捉到该窗口,从而导致识别失败。因此,对于那些未在任务栏显示的后台程序,可能需要引入额外的检测机制来确保全面性。

作者所声明的动作特征:
  • 会保存状态数据

最近更新

修订版本 更新时间 更新说明
3 2024-10-02 19:35 完全查找窗口逻辑.现在逻辑改为:先遍历任务栏的窗口.打开exe后.持续监控任务栏的窗口是否有新增,然后判断新增窗口是否为此exe的窗口.然后得出最终窗口.
2 2024-09-29 19:54 增加edge和chrome浏览器的识别
根据@原++反馈. edge会先打开插件后退出.导致轮询失败
这里单独对edge和chrome做标题搜索处理,其他exe的仍是轮询
1 2024-09-27 14:05 防止多次打开一个窗口造成之前的窗口无法显示

最近讨论