求如何将cmd或python最小化到屏幕右下角

最近用Python写了个小脚本,计划开机运行,然后常驻后台。 希望实现的效果: 1、开机自动运行后,直接最小化到右下角(这个叫啥?任务栏?托盘?应该不叫状态栏吧?)。需要查看时可以双击打开。 2、其他cmd及python运行的窗口不要最小化到右下角。

目前尝试了Smart System Menu等几个工具,出现的问题是: 1、每次打开cmd或python的窗口后,都得重新设置最小化到右下角,用批处理命令指定了窗口title也不行(感觉好像是因为,每次运行,对于系统来说都是一个新的cmd窗口,所以这些软件里面的“一直”之类的设置就不好用了)

求助!!求助!!

我觉得有两类方案:1. 找一个你提到的 Smart System Menu 这类工具,把你的 python 程序包一下;2. 修改你的 python 代码,让其直接最小化到系统托盘。第一类方案我不知道,等其他人给你补充吧,我说说改代码的方案。

你需要最小化到 windows 系统托盘,很明显这不是 python 自身能解决的,你可以用 pywin32 这个包。这是个挺基础的包,我自己没直接用过,一般可以用基于它的其他 UI package,比方说 tk 或者 pyside2,这类高级 ui 包应该都提供 windows 桌面交互的组件。

我在网上搜了下,看到一个 reddit 链接 用的是 PySimpleGUI,看起来小而轻便,你可以尝试。

1赞

这个看起来有点赞啊

收到!这个库感觉不错,目前初步搜索,估计可以解决问题!! 感谢!!

收到!感谢!

记得给正确答案标记对勾。

在回复按钮旁边的扩展按钮中,叫做“解决方案”。

勾选了,还在琢磨那个库之中,很有些搞不定的感觉啊…… 没多少中文资料

不过也可以试试这种简单的:

Python 凡是涉及到 GUI 的,统一用 PyQt 吧。

凡是可以用 pyqt 的,建议直接用 pyside2 吧,也没有商业授权问题。

不过他这个需求,可能用 pyside2 确实有些重了,我觉得 pySimpleGUI 合适。

遇到啥问题,发出来看看?

像楼主这种自己用的软件,不用去考虑重不重的问题。用户就是自己,所以也不用考虑授权的问题。

目前遇到最大的问题,是n多尝试,一次都没成功过,哭 您给出的链接里面的代码复制到py文件里面不能成功运行。然后我又搜索到另外一个库,pySimpleGUIqt,看说明文档贴进去代码,可以运行,但是托盘里没有出现图标,什么结果都没有…… 折腾了一通,感觉上是否问题在这里: 这两个库,其实都是用来构建UI的,也就是说,用py写出来的代码在运行时会出现一个类似于软件一样的窗体,而这个窗体对应了托盘里的图标(以及对图标的各种操作),然后比如这个窗体点击了最小化,最小化到了托盘里。 但是我并没有想给自己的脚本增加窗体,只是用cmd运行,或者py直接双击运行,那么,比如您给出的链接中的代码是不是就没有关联到任何窗体,所以自然就不出现托盘里的图标了?

另外,您说的这个软件安装了,确实比较简单,在cmd界面上按快捷键就OK了。 这个有没有什么方式,让我这个开机自动运行的批处理文件中,直接写几行命令,它自己执行了这个快捷键呢?这样也就实现了我想要的效果。呵呵。 上网查说是用vb写个小文件,贴入(那个软件的快捷键是Win+Shift+Z) set WshShell = WScript.CreateObject(“WScript.Shell”) WshShell.SendKeys “^{ESC}+z” 然后用批处理执行,结果:出现了开始菜单…… 估计是Win按键执行成功了,但Z按键没成功,这是为啥啊!!!

补充一下,用批处理执行vbs文件,如果是: set WshShell = WScript.CreateObject(“WScript.Shell”) WshShell.SendKeys"^a" 就是好用的,在cmd里面全选了,但是其他比如Win+L锁定计算机,"^{ESC}l"就不行,反应是: d:\Desktop>“D:\desktop\1.vbs” d:\Desktop>l

vbs里是 set WshShell = WScript.CreateObject(“WScript.Shell”) WshShell.SendKeys"^{ESC}l"

就是说,执行vbs后,只留下了个l输入……

那估计还是要靠 PySimpleGUI 这种来实现。

可以看一下CommandTrayHost项目

最近有点儿忙,没怎么逛论坛,也没时间试下这个写个 demo 啥的。。。

不过你提到的 pySimpleGUIQT,本来就属于 pySimpleGUI 下的啊,它是在 pyside2/pyqt5 这类 qt 库的基础上做了精简的封装。

我的理解是,你直接双击运行脚本,就是用 python 运行这个脚本,在 windows 上的表现就是启动了一个 cmd 样式的窗口并在其上运行代码(如果你没有显式的禁止前台运行的话)。所以 PySimpleGUI 这个库应该就是帮你把这个窗口,放到后台运行了。

我跑了一下它的那个 demo 的例子,我大概猜到你的问题是什么了!

tray = sg.SystemTray(menu=menu_def, filename=r'default_icon.ico')

你是不是没有这个 icon 图标?你随便搜一个 icon 图标,重命名和你的代码里名字保持一致,然后注意启动路径/文件路径的问题,应该就可以了。

还真是,感谢! 又继续研究了一个下午,继续搞不定,不好意思,您要是有空时,能帮忙写一下吗?万分感谢!! 感觉需要定义托盘图标(OK),最小化窗口时在系统状态栏隐藏,双击托盘图标时还原窗口,还有一个在当前这个py启动运行的时候触发最小化自身的行为。 搜了半天,真是一个都搞不定…… 555