2016-11-15 62 views
-1

到pythonw当我试图发送3个参数从CMD提示符下在Windows 10,我的代码运行的编程'时pythonw程序:参数无法读取发送从CMD窗口

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

您需要显示您的代码。 – BrenBarn

+2

确保'[HKCU |。的默认值HKLM] \ Software \ Classes \ Python.NoConFile \ Shell \ open \ command'已正确配置。它应该使用参数'“%1”%*'运行pyw.exe或pythonw.exe。 – eryksun

+0

我的电脑注册表没有'[HKCU | HKLM] \ Software \ Classes下\ Python.NoConFile \壳\开放\ command'。是应该手动添加的东西吗?或者,它是否表示更重要的安装错误? –

回答

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的评论相同,尽管关键名称略有不同。