2016-11-15 66 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的評論相同,儘管關鍵名稱略有不同。