如何通过开始输入名称在 Windows7 的登录屏幕上选择帐户?

aki*_*ira 7 windows-7 login-screen

当 MacOS 启动并提示用户选择他要登录的帐户时,用户可以用鼠标单击帐户名称/图标,也可以直接输入帐户名称。

我想在 Windows7 的登录屏幕上做同样的事情: 登录屏幕弹出,我开始输入我的帐户名,我选择帐户,enter然后我enter再次输入密码。不涉及鼠标的使用。

(我知道标签循环和难以遵循的几乎看不见的标记现在焦点在哪里)

har*_*ymc 9

您正在寻找编写专门的凭据提供程序。我不会为你写一个,即使是 5000 次,但我可以为你指明正确的方向。

文章创建自定义登录遇到与认证供应商对于Windows Vista解释微软此举的基础从早期的GINA模型了。它开发了一个示例,通过混合凭据提供程序演示新功能,该提供程序允许将用户名、密码和域名存储在智能卡上,以便在插入卡时,用户自动登录。

Microsoft 还提供下载Credential Provider Samples,其中包括描述如何构建它们的概述文档。

如果您确实打算开发您的凭据提供程序,出于显而易见的原因,我强烈建议您在虚拟机中对其进行调试。

  • 我会考虑 5000 代表 ;) (4认同)

Tam*_*man 8

再考虑一下,有更简单的方法来实现这一点:

  1. 选项一(已确认):让程序在登录屏幕上运行的一个很好的老技巧。:-)

  2. 取得第 4 步中的程序的所有权并替换%WINDIR%\System32\osk.exe

  3. 转到轻松访问中心在没有鼠标或键盘的情况下使用计算机

  4. 启用使用屏幕键盘

  5. 保存并返回,在左侧单击更改管理设置

  6. 单击以将设置应用到登录桌面并保存。

  7. 选项二(应该可行):服务始终运行,因此它们可以在登录屏幕上启动程序。

  8. 编写一个早期启动的服务C / C#,也许将它的启动类型设置为在注册表中启动。

  9. 让服务在winlogon.exe启动时检测C / C#,然后启动我们的程序。

  10. 选项三(似乎不起作用):任务计划程序为其提供了选项,我尝试基于“启动”和“Winlogon WGA 事件”启动,但都没有成功,也许我需要设置另一个用户比“系统”要工作...替代方案Winlogon 通知 DLL

  11. 这允许我们在登录屏幕上运行我们自己编写的程序!

    • 使用SetWindowsHookEx 您可以创建一个 WH_KEYBOARD 钩子来处理输入。

      • 替代方法:创建一个 GUI 窗口并赋予该窗口焦点。
      • 备选方案 2:如果您隐藏用户,您可以跟踪用户名框,请参阅下面的 AutoItX。
         
    • 使用 WMI,您可以枚举所有本地用户

    • 调用AutoItX函数允许您从应用程序操作 Windows 登录屏幕。这也将允许我们通过检查资源管理器是否运行来检测我们是否在登录屏幕。

      AutoItWindow显示屏幕为:Class: AUTHUI.DLL: LogonUI Logon Window 并且密码字段名为Edit1,因此您可以实际读取键入的数据。

    通过这种方式,您应该能够运行一个程序来侦听您键入的字符,检索帐户列表,并在找到匹配项时自动完成相应的帐户。

    我建议使用 C++(本机)或 C#(用于 API 调用的 PInvokes,简单的 WMI),但任何语言都可能适合......

  12. 选择:

我认为可能只使用编译的 AutoIt 脚本来完成此任务,因为您可以跟踪操作用户名框并枚举 WMI,这是使此工作所需的唯一方法。也许您需要禁用托盘图标功能...

您可以使用 AutoIt Window Info(将其放置为osk.exe)在登录屏幕上查看类名。

  • 非常有趣......我想看看这是否有效......甚至可能值得写博客;) (3认同)