2011-03-18 43 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程序来与这两个解决方案中的一个接口。