使用驱动程序在Windows登录屏幕中模拟输入
我正在编写一个开源的远程桌面工具,类似于VNC和TeamViewer。 我注意到TeamViewer继续在Switch Users或Workstation Locked屏幕上捕获屏幕 – 并允许远程用户输入密码并解锁工作站。 我想做同样的事情。
我读了:
更新:在Windows登录屏幕上与用户交互
https://stackoverflow.com/questions/9485530/capturing-image-during-windows-logon-invalid-password
将命令按钮添加到Windows登录屏幕
从Windows登录屏幕挂钩热键
https://stackoverflow.com/questions/7183241/launch-windows-on-screen-keyboard-at-logon-screen-on-win7
模拟Keypress的驱动程序
通过服务删除Windows登录屏幕
如何在Windows 7登录屏幕中捕获密钥?
在Windows XP中使用C#在登录屏幕上显示窗口
从这些post中,我收集了在隔离会话中模拟输入肯定不是对SendInput()的简单调用。 但是有可能使用驱动程序(我相信它特别是键盘filter驱动程序,但我不确定)? 如果是这样,我正在考虑在C#中编写一个服务(以便它在用户会话之外运行),它与拦截驱动程序交互以模拟按键。
回答:“为什么你不试试呢?”,对于我来说,没有一个用于拦截的.NET包装器来测试这样的服务,所以如果普遍的共识得出结论认为这是不可能的,那么我不想花时间编写.NET包装器。
我发现了一个名为Interception的键盘驱动程序(将来会发布这个驱动程序) 。 您可以在此处直接找到源(源只是围绕实际内核驱动程序的C通信API包装器) 。
我有另一个问题……我对哪些文件构成驱动程序感到困惑。 他用C编程的拦截DLL库编译成.DLL。 但是不是某些.sys扩展的驱动程序 – 如何将该拦截DLL编译成实际的驱动程序 – 然后你将如何安装它?
编辑: .NET包装器确实存在 。 当我按下’x’键时,我修改了示例控制台应用程序以键入我的整个密码,并且它成功运行 – 不仅在工作站锁定屏幕上,而且在Windows登录屏幕上。 所以它有效。
编辑: 这个键盘驱动程序的C#包装器库在这里 。
目前,实际的驱动程序不是开源的。 驱动程序安装程序安装它们(keyboard.sys和mouse.sys),什么是开源只是与它们通信的API。 我打算在开源之前重写内核组件。
对于其他对答案感兴趣的人:是的,它有效。
使用.NET包装器获取https://github.com/candera/kchordr上的拦截键盘驱动程序,然后玩游戏。 它甚至会在Windows登录屏幕上替换密钥。
上述就是C#学习教程:使用驱动程序在Windows登录屏幕中模拟输入分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/959174.html