.pyw在启动时通过注册表启动和退出启动,但启动双击工作......?

时间:2012-10-18 15:27:59

标签: python windows registry pythonw

我有一个.pyw脚本,当我双击它等时它会工作,它会保持打开直到我关闭它,但我已将它添加到注册表中以便在启动时运行。它确实在启动时运行,但它不像它设置的那样保持打开状态。它闪烁gui然后关闭。

为什么会发生这种情况或如何解决这个问题?

P.S我不想在链接到.pyw文件的启动文件夹中创建快捷方式。

我使用另一个python脚本将我的python脚本添加到注册表中:p

import _winreg
aReg    = _winreg.ConnectRegistry(None,_winreg.HKEY_LOCAL_MACHINE)
aKey    = _winreg.OpenKey(aReg, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, _winreg.KEY_WRITE)
_winreg.SetValueEx(aKey,"MyScript",0, _winreg.REG_SZ, myScript_path) 

当我在注册表中浏览该路径时: HKEY_LOCAL_MACHINE>软件>微软> Windows> CurrentVersion>运行它是在数据中的正确路径和类型REG_SZ

2 个答案:

答案 0 :(得分:0)

有一个非常奇怪的错误,只发生在启动时,因为脚本似乎使用的其中一个进程尚未启动。使用python.exe作为.py运行不会产生错误,它只发生在脚本作为.pyw运行时,所以我将sys.stdout写入文件以记录其进度和错误。

在我使用日志记录模块之前,它似乎没有提供与直接输出到文件一样多的细节。

在检查文件后,我能够修复代码,所以基本上它是一个代码问题但是非常偷偷摸摸的。

答案 1 :(得分:0)

我的两分钱: 有同样的问题(启动文件夹中的.pyw只是闪现其gui然后关闭)。在导入命令之前添加了“sleep”并且它有效。我相信操作系统需要一点时间为我的代码中的一个/一些导入命令做好准备。

#coding:utf-8

from time import sleep

sleep(20)

from Tkinter import *
from Tix import *
from time import strftime
import urllib
from itertools import izip_longest
import winsound