2011-03-18 46 views
3

好吧,我正在爲我的電腦製作基於arduino的物理登錄系統。基本上,我設置了一個簧片開關,當它被觸發時,它會發送一些串行信息給python程序,當發生這種情況時,SendKeys會輸入密碼(希望進入登錄框)。我知道這根本不安全,但它或多或少地是一個概念證明。以下是發送密碼的部分代碼。如何在Windows 7登錄窗口使用SendKeys?

while var == 1: 
xx = ser.read() 
print xx 
if xx == '7': 
    SendKeys.SendKeys(Info.passwd + """{ENTER}""") 
    time.sleep(2) 
else: 
    pass 

我真的不具有任何代碼的麻煩,它適用於其他像記事本,但是當我嘗試在登錄窗口中使用它,我什麼也沒得到。有什麼建議麼?

回答

0

Windows 7登錄畫面旨在阻止它工作。您基本上必須插入充當鍵盤的usb或ps/2設備,並從腳本接收命令。思考它藍牙也可能工作得很好。

無論接近它的將是大量的工作......

+0

那麼我可能會嘗試連接teensy並通過那裏發送數據。 – user665685 2011-03-18 20:16:26

+0

思考一下,如果不行,ps/2是一個相當簡單的協議,敲一個假鍵盤應該很容易...... – theheadofabroom 2011-03-18 21:13:46

1

擴展的Windows Vista/7/8的登錄屏幕的功能,正確的方法是實現一個憑據提供。有一個API,有很好的介紹here。在Vista之前,這種定製是通過使用定製的GINA DLL來實現的。

所以,你將不得不改變你的Python程序來與這兩個解決方案中的一個接口。