久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2709|回復: 1
打印 上一主題 下一主題
收起左側

練習作品 -> Windows 自動登錄小工具 V1.0

[復制鏈接]
跳轉到指定樓層
樓主
ID:71922 發表于 2015-1-11 00:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在網上下載了一個Windows 自動登錄器,覺得挺好玩的。發現它是修改注冊表實現自動登錄。自己也就試試寫一個玩玩。
程序界面:


實現原理,修改注冊表鍵值
=========================================================================================================

在運行中輸入:regedit 打開注冊表編輯器:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon主鍵
要求:指定的自動登陸帳號至少是user級別用戶;
前三項鍵值是必須要有的:
----autoadminlogon,鍵值為1,用于設置是否可以自動登陸;鍵值為0,則反之
----defaultusername:鍵值為自動登陸默認的用戶名;
----defaultpassword: 鍵值為自動登陸用戶的密碼;
----defaultdomainname:鍵值為自動登陸的計算機名稱或者登陸網絡的域名;
----ForceAutoLogon的字符串值,并將這個值設為1,這樣系統即便是在注銷之后也會自動登錄到指定的賬戶;
----在默認情況下,在啟動時可以按住Shift鍵來阻止自動登錄,要消除Shift鍵對自動登錄的影響,可以添加一個名為IgnoreShiftOverride的字符串值,并將該值設為1;
----添加AutoLogonCount的DWORD值,可以設置希望自動登錄的次數

=========================================================================================================
初始化代碼 在 OnInitDialog() 末尾(return TRUE; 前)加入:

  // 獲取當前用戶名
char User[MAX_PATH];
DWORD Size = MAX_PATH;
if (GetUserName(User,&Size)) // 獲取用戶名
  SetDlgItemText(IDC_Name , User); // 顯示在編輯框中
else
  SetDlgItemText(IDC_Name , "自動獲取用戶名失敗,請輸入用戶名");
HKEY RegKey;
char temp[MAX_PATH]; // 獲取鍵值存放緩沖區
DWORD dwtype;   // 鍵值類型
DWORD sl = MAX_PATH; // 緩沖區大小
if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",0, KEY_ALL_ACCESS, &RegKey))
{
  RegQueryValueEx(RegKey,"AutoAdminLogon",NULL,&dwtype,(LPBYTE)temp,&sl);
  if (strcmp("1",(char *)temp) == 0) // 判斷 AutoAdminLogon 是否為 1
   SetDlgItemText(IDC_ZT,"溫馨提示:檢測到系統已經是自動登錄狀態!");
  else
   SetDlgItemText(IDC_ZT,"系統尚未設置自動登錄!");
}=========================================================================================================
修改注冊表函數:
// 參數:設置、取消,注銷生效,屏蔽Shift鍵,用戶名,密碼:返回 1 為失敗 0 為成功
int Reg(int i, int zhux, int Shift, char User[], char Password[])
{
HKEY RegKey;
char AutoUser[] = "DefaultUserName"; // 用戶名
char AutoPass[] = "Defaultpassword"; // 密碼
char Auto[] = "AutoAdminLogon";   // 1 自動登錄
char Autozhux[] = "ForceAutoLogon";  // 注銷時有效
char AutoShift[] = "IgnoreShiftOverride"; // 消除Shift鍵對自動登錄的影響
if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",0, KEY_ALL_ACCESS, &RegKey))
  return 1;
if (i) // 設置
{
  char T='1';
  RegSetValueEx(RegKey, AutoUser, 0, REG_SZ, (LPBYTE)User, strlen(User));    // 設置用戶名
  RegSetValueEx(RegKey, AutoPass, 0, REG_SZ, (LPBYTE)Password, strlen(Password));  // 設置密碼
   
  if (!zhux) // 如果沒有勾選 注銷無效復選框 則設置注銷有效
   RegSetValueEx(RegKey, Autozhux, 0, REG_SZ, (const BYTE *)&T, 1);
  else
   RegDeleteValue(RegKey, Autozhux);

  if (!Shift) // 如果沒有勾選 不屏蔽Shift 鍵 則設置屏蔽Shift鍵
   RegSetValueEx(RegKey, AutoShift, 0, REG_SZ, (const BYTE *)&T, 1);
  else
   RegDeleteValue(RegKey, AutoShift);
  
  if (RegSetValueEx(RegKey, Auto, 0, REG_SZ, (const BYTE *)&T, 1)) // 只判斷關鍵的注冊表值就行啦
   return 1;   
}
else // 取消
{
  RegDeleteValue(RegKey, AutoUser); // 刪除用戶名鍵值
  RegDeleteValue(RegKey, AutoPass); // 刪除密碼鍵值
  RegDeleteValue(RegKey, Autozhux); // 刪除注銷有效鍵值
  RegDeleteValue(RegKey, AutoShift); // 刪除屏蔽Shift 鍵值
  if (RegDeleteValue(RegKey, Auto)) // 刪除自動登錄
   return 1;
}
RegCloseKey(RegKey);
return 0;
}=========================================================================================================
【自動登錄】按鍵觸發代碼:
void CWindowsDlg::OnAutoAdd()
{
// TODO: Add your control notification handler code here
char User[MAX_PATH]; // 存儲 用戶名 編輯框中數據的緩沖區
char Password[MAX_PATH]; // 存儲 密碼 編輯框中數據的緩沖區
GetDlgItemText(IDC_Name, User, MAX_PATH); // 獲取 用戶名 編輯框中的緩沖區
GetDlgItemText(IDC_Password, Password, MAX_PATH); // 獲取 密碼 編輯框中的緩沖區
CButton    *pButton; // 定義對象
    pButton   =    (CButton    *)GetDlgItem(IDC_ZX);  //獲得指定IDcheckbox對象引用,并轉換為CButton對象
int zhux = pButton->GetCheck();//獲得checkbox的點擊狀態,值只有0 1 2三種狀態,點擊后為非0值
pButton   =    (CButton    *)GetDlgItem(IDC_Shift);
int Shift = pButton->GetCheck();

char temp[50] = "設置 Windows 自動登錄"; // 狀態顯示
if (!Reg(1,zhux,Shift,User,Password))
{
  strcat(temp,"成功!");
  if (!zhux) // 如果沒有勾選 注銷無效
   strcat(temp," 注銷時有效!");
  if (!Shift) // 如果沒有勾選 不屏蔽Shift 鍵
   strcat(temp," 屏蔽Shift 鍵的影響!");

  SetDlgItemText(IDC_ZT, temp); // 顯示狀態
  MessageBox("設置 Windows 自動登錄成功! ", "OK", MB_ICONASTERISK | MB_SYSTEMMODAL);
}
else
{
  SetDlgItemText(IDC_ZT, "設置 Windows 自動登錄失敗!");
  MessageBox("設置 Windows 自動登錄失敗!可能是由于安全軟件的攔截或權限原因! ", "ERROR", MB_ICONWARNING | MB_SYSTEMMODAL);
}
}
=========================================================================================================
【取消自動】按鍵觸發代碼:
void CWindowsDlg::OnAutoDel()
{
// TODO: Add your control notification handler code here
if (!Reg(0,NULL,NULL,NULL,NULL))
{
  SetDlgItemText(IDC_ZT, "取消 Windows 自動登錄成功!");
  MessageBox("取消 Windows 自動登錄成功! ", "OK", MB_ICONASTERISK | MB_SYSTEMMODAL);
}
else
{
  SetDlgItemText(IDC_ZT, "取消 Windows 自動登錄失敗!");
  MessageBox("取消 Windows 自動登錄失敗! 可能由于安全軟件的攔截 或 早就取消 Windows自動登錄! ", "ERROR",MB_ICONWARNING | MB_SYSTEMMODAL);
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:71922 發表于 2015-1-11 00:33 | 只看該作者
2.0改進:    在 V1.0 的版本上增加一個登錄的 計算機名稱或域名 的功能  也是通過修改注冊表實現的    應網友要求,并未加入自校驗...

程序界面:  
給出一份關鍵代碼:
// 參數:設置、取消,注銷生效,屏蔽Shift鍵,用戶名,密碼:返回 1 為失敗 0 為成功
int Reg(int i, int zhux, int Shift, char User[], char Password[],char PCname[])
{
        HKEY RegKey;

        char AutoUser[]  = "DefaultUserName";                // 用戶名
        char AutoPass[]  = "Defaultpassword";                // 密碼
        char Auto[]                 = "AutoAdminLogon";                // 1 自動登錄
        char Autozhux[]  = "ForceAutoLogon";                // 注銷時有效
        char AutoShift[] = "IgnoreShiftOverride";        // 消除Shift鍵對自動登錄的影響
        char PCName[]         = "defaultdomainname";                // 計算機名稱或域名

        if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon",0, KEY_ALL_ACCESS, &RegKey))
                return 1;

        if (i)        // 設置
        {       
                char T='1';

                RegSetValueEx(RegKey, AutoUser, 0, REG_SZ, (LPBYTE)User, strlen(User));                                // 設置用戶名
                RegSetValueEx(RegKey, AutoPass, 0, REG_SZ, (LPBYTE)Password, strlen(Password));                // 設置密碼
       
                if (strcmp(PCname,"無法獲得計算機名")!=0)
                {
                        RegSetValueEx(RegKey, PCName, 0, REG_SZ, (LPBYTE)PCname, strlen(PCname));                // 設置計算機名或域名
                }
                       
                if (!zhux)        // 如果沒有勾選 注銷無效復選框 則設置注銷有效
                        RegSetValueEx(RegKey, Autozhux, 0, REG_SZ, (const BYTE *)&T, 1);
                else
                        RegDeleteValue(RegKey, Autozhux);
       
                if (!Shift)        // 如果沒有勾選 不屏蔽Shift 鍵 則設置屏蔽Shift鍵
                        RegSetValueEx(RegKey, AutoShift, 0, REG_SZ, (const BYTE *)&T, 1);
                else
                        RegDeleteValue(RegKey, AutoShift);
               
                if (RegSetValueEx(RegKey, Auto, 0, REG_SZ, (const BYTE *)&T, 1))        // 只判斷關鍵的注冊表值就行啦
                        return 1;                       
        }
        else        // 取消
        {
                RegDeleteValue(RegKey, AutoUser);        // 刪除用戶名鍵值
                RegDeleteValue(RegKey, AutoPass);        // 刪除密碼鍵值
                RegDeleteValue(RegKey, Autozhux);        // 刪除注銷有效鍵值
                RegDeleteValue(RegKey, AutoShift);        // 刪除屏蔽Shift 鍵值
                RegDeleteValue(RegKey, PCName);                // 刪除計算機名或域名
                if (RegDeleteValue(RegKey, Auto))        // 刪除自動登錄
                        return 1;
        }
        RegCloseKey(RegKey);
        return 0;
}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线看无码的免费网站 | 久优草 | 欧美综合一区二区三区 | 国产精品 欧美精品 | 国产成人免费视频网站视频社区 | 黄视频网站在线 | 亚洲成人一区二区 | 91电影在线| 精品日本中文字幕 | 亚洲国产精品一区二区三区 | 久在线| 一区二区免费 | 国产美女精品视频 | 中文字幕成人av | 中文字幕在线网 | 亚洲成人久久久 | 久久99精品久久久久蜜桃tv | 成人网址在线观看 | 亚洲国产一区二区三区在线观看 | 在线视频国产一区 | 国外成人在线视频 | 成人免费一区二区三区牛牛 | 在线色网 | cao视频| 91久久夜色精品国产网站 | 日日综合| 久久99精品久久 | 亚洲97| 99精品网站| 精品国产乱码久久久久久丨区2区 | 一区二区免费看 | 欧美理论片在线 | 国产在线视频三区 | 亚洲国产精品99久久久久久久久 | 蜜桃av人人夜夜澡人人爽 | 中国一级特黄毛片大片 | 亚洲国产一区二区三区 | 日本a视频| 99久久国产综合精品麻豆 | 日韩一区二区三区在线视频 | 毛片视频网址 |