欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Windows 内核编程_设置 Windows 启动自动登录

最编程 2024-03-23 16:39:25
...

设置自动登录的方法在Windows中已经给出了非常方便的方法,当Windows内核进入登入界面时会检查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon注册表中是否有两个属性条目:DefaultUserName 、DefaultPassword ,如果这两个属性条目存在则将DefaultUserName中的属性值作为用户名,DefaultPassword中的属性值作为密码,自动登录,若没有则进入开机的登入界面后什么都不做。

所以我们要做的就是在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon中添加这两个属性条目,我们首先可以手动操作一遍,首先按下Win+R键输入:Regedit.exe

然后依次展开:

HKEY_LOCAL_MACHINE

-SOFTWARE

--Microsoft

---Windows NT

----CurrentVersion

-----Winlogon(选中这个子键就可以了,无需展开)

或者你可以将:Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

复制到注册表中的EDIT框中也可以 

我们可以检查是否存在:DefaultUserName 、DefaultPassword

如果不存在,则创建,注意名称要与上面的一致,然后将这两个条目属性值输入要自动登入的账号密码就可以了

 通过这样的方法我们可以自动化操作,通过WinSDK的方式,详细参考这篇文章:Windows核心编程_注册表操作和小练习程序关联_17岁boy想当攻城狮的博客-****博客

代码如下:

#include <windows.h>

int main(){
    HKEY hKey;
    //打开winlogon
    RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",&hKey);
    //判断属性条目是否存在
    //RegSetValue函数的作用是存在键属性则设置,不存在则创建并设置
    RegSetValue(hKey,"DefaultUserName","testName",strlen("testName"));
    RegSetValue(hKey,"DefaultPassword ","testPassword",strlen("testPassword"));

    return 0;
}

推荐阅读