从CMD窗口发送到pythonw时未读取参数

时间:2016-11-15 21:08:51

标签: python windows cmd parameter-passing pythonw

我试图在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)。我的直觉是,这可能是某种类型的注册表问题,但是,我不确定如何修复它?

1 个答案:

答案 0 :(得分:0)

before回答了这个问题。

我必须分别将HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\commandHKEY_CLASSES_ROOT\Applications\pythonw.exe\shell\open\command注册表项重新分配给"C:\Python27\python.exe" "%1" %*"C:\Python27\pythonw.exe" "%1" %*。我的问题的根源可能是由于之前在同一台计算机上安装了python。这个答案与eryksun的评论基本相同,虽然关键名称略有不同。