我试图在Windows 10中从CMD提示符运行progam时向pythonw程序发送3个参数。我的代码是:
import sys
from PyQt4.QtCore import (QTimer, Qt)
from PyQt4.QtGui import (QApplication, QLabel)
arg_no= len(sys.argv)
app = QApplication(sys.argv)
message = "%i arguments given, %i arguments after QApplication %s" % (arg_no, len(sys.argv), str(sys.argv))
label = QLabel("<font color=red size=72><b>{0}</b></font>"
.format(message))
label.setWindowFlags(Qt.SplashScreen)
label.show()
QTimer.singleShot(60000, app.quit) # 1 minute
app.exec_()
例如,当我从CMD提示中尝试以下操作时:
C:\Temp\pyqtbook26\chap04>alert.pyw 07:50 wake up now
Python只看到第一个参数(C:\Temp\pyqtbook26\chap04>alert.pyw
),并且没有看到剩下的三个参数(07:50 wake up now
)。我的直觉是,这可能是某种类型的注册表问题,但是,我不确定如何修复它?
答案 0 :(得分:0)
before回答了这个问题。
我必须分别将HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
和HKEY_CLASSES_ROOT\Applications\pythonw.exe\shell\open\command
注册表项重新分配给"C:\Python27\python.exe" "%1" %*
和"C:\Python27\pythonw.exe" "%1" %*
。我的问题的根源可能是由于之前在同一台计算机上安装了python。这个答案与eryksun的评论基本相同,虽然关键名称略有不同。