如何解决Python,脚本在从 CMD 运行时停在某一行
我一直在编写一个脚本,每 10 秒单击一次鼠标,并在单击热键“-”后停止执行此操作,然后在我再次单击热键时再次启动。 当我使用 python IDLE 运行它时,它的工作原理和描述一样,但是当我从 CMD 运行时,它只是在声明行之后停止脚本: os.system('cmd /k "msg * /v Stopped!"') 对我来说这似乎很奇怪,因为有更多的行要执行过去.. 感谢您的帮助
代码如下:
import pyautogui,keyboard,time,os,winsound
from datetime import datetime
temp = True
work = True
while True:
while int(datetime.Now().strftime("%s")) % 10 != 0:
temp = True
if keyboard.is_pressed("-"):
if work == True:
os.system('cmd /k "msg * /v Stopped!"')
work = False
time.sleep(2)
winsound.PlaySound("SystemExit",winsound.SND_ALIAS)
else:
work = True
os.system('cmd /k "msg * /v Started!"')
time.sleep(2)
winsound.PlaySound("SystemExit",winsound.SND_ALIAS)
if temp == True and work == True:
pyautogui.click()
temp = False
解决方法
在子shell中执行命令(一个字符串)。
...
在Windows上,
返回值是系统shell运行后返回的值
command
。 shell 由 Windows 环境变量给出
COMSPEC
:通常是cmd.exe
,返回退出状态
命令运行...
换句话说,os.system
等待返回值。
另一方面(请参阅内置帮助 cmd /?
或阅读 cmd.exe
docs):
-
cmd /C string
执行string指定的命令,然后终止 -
cmd /K string
执行string指定的命令,但保留
使用任一
-
os.system('"msg * /v Stopped!"')
,甚至 -
os.system('msg * /v Stopped!')
。
因为 cmd /c
在 Windows 中对于 os.system
是隐式的...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。