Python 使用pyw文件启动Windows不会';关闭命令

Python 使用pyw文件启动Windows不会';关闭命令,python,windows,startup,pyhook,pythoncom,Python,Windows,Startup,Pyhook,Pythoncom,我一直在写一个小脚本,应该在我的电脑后台运行。我已经有了脚本的工作和一切,除了一件事,几个小时的谷歌搜索和搜索还没有找到答案 该文件的扩展名为.pyw,当我从命令提示符下运行它时: pythonw File.pyw cmd窗口将继续运行,并给我另一个提示,而不会像普通的.py文件那样启动idle 当我双击该文件时,cmd窗口会毫无问题地打开和关闭,就像预期的那样。这对我来说太完美了 但是,我尝试制作一个小批量文件: cd C:\Users\(my name)\Desktop pythonw F

我一直在写一个小脚本,应该在我的电脑后台运行。我已经有了脚本的工作和一切,除了一件事,几个小时的谷歌搜索和搜索还没有找到答案

该文件的扩展名为.pyw,当我从命令提示符下运行它时:

pythonw File.pyw
cmd窗口将继续运行,并给我另一个提示,而不会像普通的.py文件那样启动idle

当我双击该文件时,cmd窗口会毫无问题地打开和关闭,就像预期的那样。这对我来说太完美了

但是,我尝试制作一个小批量文件:

cd C:\Users\(my name)\Desktop
pythonw File.pyw
我把它放在windows的启动文件夹里。然而,当我重新启动计算机以查看它是否工作时,它打开了cmd窗口,但没有关闭它。我不明白为什么。我已经尝试了所有我能想到的方法,包括将File.pyw直接粘贴到startup文件夹中,并尝试将exit命令放在批处理文件中,如下所示:

cd C:\Users\(my name)\Desktop
pythonw File.pyw
exit
但是,正如你可能猜到的那样,这失败了。我试着把命令直接放在我的代码中,所以在结束之前,它有一行

os.system("exit")
但在意识到这行不通后,我就把它拿了出来。(重要细节:代码的最后一行设置为循环,直到程序关闭。这就是为什么我尝试使用pyw扩展名,以便控制台可以在文件结束前关闭)

接下来,我将批处理文件缩短为只有一行:

pythonw.exe C:\Users\(my name)\Desktop\File.pyw
但还是不行。当批处理文件运行时,我会打开一个输入命令的cmd窗口,但它像一个普通的.py文件一样运行,而不是关闭cmd窗口

有人能帮我弄清楚为什么从.batch文件运行命令时控制台不会关闭,而直接从命令提示符运行时控制台会关闭吗

更新

该脚本旨在添加一个快速键盘快捷键,以便在我快速按两次“+”时关闭任务,特别是Google Chrome。这是我的完整代码(减去一些个人信息)

导入操作系统
导入系统
输入pyHook,pythoncom
将键设置为“+”以避免意外使用。
def OnKeyBoardEvent(事件):
全球prevPlus
如果event.Ascii==43:
如果prevPlus==无:
prevPlus=事件时间
其他:

如果event.Time-prevPlus是这样的话,我的最后一个方法就是链接一个VBS文件(就像在评论中提到的那样)。结果证明我做错了,混合了文件类型,所以我出现了奇怪的错误。该VBS文件以静默方式调用BAT文件,因此cmd窗口没有显示。然后,BAT文件调用了我的程序,出于某种原因,从cmd调用该程序时比在现场执行时运行得更好。现在,它确实在启动时运行,并且cmd窗口没有出现,因此这是一个很好的修复方法,尽管效率很低。

在.cmd文件中使用windows“start”命令;移除“出口”
像这样:

cd C:\Users\(my name)\Desktop
start pythonw File.pyw

我尝试使用vbs文件发送命令,但控制台仍然无法启动。是否有任何方法可以从命令行双击该文件?如果从批处理文件调用脚本,则可以退出,但不要使用批处理文件。只需将脚本或其快捷方式放到启动文件夹中。除非脚本通过子进程或os.system运行其他命令,否则不应显示任何控制台窗口,因为.pyw脚本通过非控制台程序“pythonw.exe”运行。运行.py脚本不应空闲运行。如果发生这种情况,您的系统配置错误。
Python.File
progid是.py脚本的默认关联。这将使用模板命令行
python.exe“%1”%*
执行脚本。
cd C:\Users\(my name)\Desktop
start pythonw File.pyw