Java 从windows登录屏幕捕获键盘输入

Java 从windows登录屏幕捕获键盘输入,java,windows,security,login,keyboard-input,Java,Windows,Security,Login,Keyboard Input,我想在我的Java项目中做以下事情:- 锁定Windows桌面 锁定windows桌面时检测按键事件 将键盘输入的键保存到文本文件中 第一步使用以下代码完成: Runtime rt = Runtime.getRuntime(); Process pr = rt.exec("C:\\Windows\\System32\\rundll32.exe user32.dll,LockWorkStation"); 由于安全问题,用户应用程序将永远无法做到这一点。但是,如果使用驱动程序拦截较低级别的输入,则

我想在我的Java项目中做以下事情:-

  • 锁定Windows桌面
  • 锁定windows桌面时检测按键事件
  • 将键盘输入的键保存到文本文件中
  • 第一步使用以下代码完成:

    Runtime rt = Runtime.getRuntime();
    Process pr = rt.exec("C:\\Windows\\System32\\rundll32.exe user32.dll,LockWorkStation");
    

    由于安全问题,用户应用程序将永远无法做到这一点。但是,如果使用驱动程序拦截较低级别的输入,则可以绕过限制。讨论了一个类似的问题。看起来很适合您的目的。

    Java是错误的语言,尽管我不确定是否应该这样做。为什么要在输入密码时记录按键操作?Mh,锁定工作站就是:锁定工作站。正如捕获Ctrl-Alt-Del是一个“受保护”的击键,您无法轻松捕获,登录屏幕与用户的桌面屏幕完全分离。在Windows API中,有“WinStation”的概念。用户“WinStation”上运行的内容与登录屏幕显示时运行的内容完全隔离。这意味着您将无法轻松编写在用户桌面上执行的应用程序,并在登录屏幕处于活动状态时监视键入的按键。至少不使用官方的(有文档记录的)Windows API。你可以编写一个系统范围的键盘监视器,但你很难将其认证/签名为“兼容”/“受信任”。尽管我只想在按下一个键时打开网络摄像头