经验:如何让Python脚本开机自启且不显示控制台窗口

经验:如何让Python脚本开机自启且不显示控制台窗口

更新历史
20200208:

  1. 首次发布

最近用Python搞了一把Windows桌面壁纸自动更换1,却遇到了两个困扰:

  • 如何让Python脚本开机自启?
  • Python脚本开机自启后,会出现一个控制台窗口,看上去不太优雅。。。怎么解决?

针对以上两个困扰,我做了一些尝试,并成功地解决了问题。以下为解决办法。

注:本文针对的操作系统为Windows 10,不能保证对其他版本的Windows系统也有效。




Python脚本开机自启且不显示控制台窗口——基于.bat文件

假设需要开机自启的Python脚本文件的完整路径为D:\桌面背景自动更换\壁纸.py。创建一个.txt文件(设文件名为:开机自启.txt),用记事本打开,添加以下内容2

D:
cd D:\桌面背景自动更换
python 壁纸.py

由于壁纸.py的路径中带有中文(“桌面背景自动更换”、"壁纸"是中文),可能会导致后续生成的开机自启.bat运行出错,因此,开机自启.txt需要以ANSI编码保存3,如下图所示:
用ANSI编码保存批处理文件

然后,将开机自启.txt的名称更改为开机自启.bat。最后,将开机自启.bat复制到Windows的启动目录(C:\Users\你的Windows账户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)下:
批处理文件放到启动目录下

该方法是有效的,但是:

  • 壁纸.py开机自动运行后,桌面上会有一个控制台窗口(关闭窗口,该python脚本就会停止运行),看上去不太优雅

为了让控制台窗口不会显示出来,我们需要在开机自启.bat的开头部分加入一些代码45,加完代码后,开机自启.bat中的内容如下:

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
D:
cd D:\桌面背景自动更换
python 壁纸.py

双击开机自启.bat,可以发现壁纸.py运行正常。然而,电脑重启后,壁纸.py却没有成功运行,Windows弹出了一个"脚本运行错误"的提示窗口。革命尚未成功,那就继续求助万能的网友。。。经过尝试,发现只需将开机自启.bat中的%~nx0改成%~0,问题就解决了67。最终,开机自启.bat中的内容如下:

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~0"" h",0)(window.close)&&exit
:begin
D:
cd D:\桌面背景自动更换
python 壁纸.py

这样,壁纸.py就能够开机自启且不会出现控制台窗口了。
现在,目的是达到了,但是当我们想让壁纸.py停止运行时,惊喜就出现了:该怎么关闭壁纸.py呢?别急,可以这么做:如下图所示,打开任务管理器,找到"Python",将它"结束任务"即可。
在任务管理器中关闭python脚本



附录: Python脚本开机自启的另一种方法——基于快捷方式

假设需要开机自启的Python脚本文件为壁纸.py,那么,只需为其创建快捷方式,再将快捷方式复制到Windows的启动目录(C:\Users\你的Windows账户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)下即可8
创建快捷方式并将快捷方式复制到启动目录下

该方法亲测有效,但是:

  • 壁纸.py开机自动运行后,桌面上会有一个控制台窗口
  • 偶尔会出现问题:电脑开机后,壁纸.py这个文件没有被执行,而是被一个文本编辑器打开了。。。难道是要我看代码?o(╥﹏╥)o

鉴于该方法不是那么可靠,我虽然对其进行了描述,但并不推荐使用它




参考:


  1. 简书:3分钟教你用python把你的桌面壁纸变得酷起来 ↩︎

  2. CSDN:在Windows系统中 开机自动运行一个Python脚本 或者自动运行一个软件 ↩︎

  3. 百度经验:好吃的批处理脚本:[9]bat中文乱码怎么办 ↩︎

  4. CSDN:window7 bat 开机自启动,不显示cmd窗口 ↩︎

  5. CSDN:window 下 bat脚本不显示cmd窗口执行,并添加开机自启 ↩︎

  6. 百度知道:BAT在开机启动时,出现脚本错误! ↩︎

  7. ZOL问答:BAT在开机开启时,出现脚本错误! ↩︎

  8. CSDN:让你的python程序开机自启动 ↩︎

  • 11
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值