青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

vc中讀寫注冊表

 Win 95及NT的注冊數據庫(Registry) 是系統中非常重要的組成部分。在Win32 API中有一組Reg函數來處理這些問題。其一般的讀寫過程如下:
 
    1、使用RegOpenKeyEx或RegCreateKeyEx函數打開或創建一個鍵; 
    2、如果上一步成功,使用RegQueryValueEx讀取子鍵的值,使用RegSetValueEx設置子鍵值,使用RegEnumKey獲得所有子鍵,使用RegDeleteKey刪除一個鍵; 
    3、完成操作后使用RegCloseKey關閉鍵。 
    下面這段程序打開HKEY_CURRENT_USER\Software\Zeal SoftStudio\AskPro FTP\LastTime鍵,然后讀取WOL子鍵的值。 

    HKEY hkey; 
    char sz[256]; 
    DWORD dwtype, sl = 256; 
     
    RegOpenKeyEx(HKEY_CURRENT_USER, 
    "Software\\Zeal SoftStudio\\AskPro FTP\\LastTime", 
    NULL, KEY_ALL_ACCESS, &hkey); 
    RegQueryValueEx(hkey, "WOL", NULL, &dwtype, (LPBYTE)sz, &sl); 
    RegCloseKey(hkey); 
    MFC程序可以使用CRegKey類讀寫注冊表。VB中調用API的辦法可以參考QA000226 "如何訪問Windows系統注冊表"。

    打開注冊鍵
    LONG RegOpenKeyEx( HKEY hKey,  // handle to open key 

    LPCTSTR lpSubKey,              // address of name of subkey to open 
    DWORD ulOptions,               // reserved =0
    REGSAM samDesired,             // security access mask 
    PHKEY phkResult                // address of handle to open key 
    );

    例:
    HKEY hd;
    hd=HKEY_LOCAL_MACHINE;
    char* Regkeyname="SoftWare\\Xy123\\Poker\\";
    LONG a=RegOpenKeyEx(hd,Regkeyname,0,KEY_READ, &hd);   //成功返回ERROR_SUCCESS,否則返回錯誤代碼
 

    關閉注冊鍵
    LONG RegCloseKey( HKEY hKey // handle to key to close );
例:
     RegCloseKey(HKEY_LOCAL_MACHINE);
OR:  RegCloseKey(hd); 
建立注冊鍵
LONG RegCreateKeyEx( HKEY hKey, // handle to an open key 
      LPCTSTR lpSubKey, // address of subkey name 
      DWORD Reserved, // reserved =0
      LPTSTR lpClass, // address of class string 
      DWORD dwOptions, // special options flag 
      REGSAM samDesired, // desired security access 

      LPSECURITY_ATTRIBUTES lpSecurityAttributes, // address of key security         structure 
      PHKEY phkResult, // address of buffer for opened handle 
      LPDWORD lpdwDisposition // address of disposition value buffer );
例:
   char *sclass="";  //類名指定為空
   DWORD nbf=0;    //接受返回值,指明是建立新鍵還是打開已有的鍵.(經試驗總是返回REG_OPENED_EXISTING_KEY.
   LONG II=RegCreateKeyEx(hd,Regkeyname,0,sclass,REG_OPTION_NON_VOLATILE,
                KEY_READ|KEY_WRITE,NULL,&hd,&nbf);

//REG_OPTION_NON_VOLATILE 指明鍵永久保留.安全結構指明NULL,自動獲得一默認值
//成功返回ERROR_SUCCESS,否則返回錯誤代碼 
枚舉鍵值
LONG RegEnumValue( HKEY hKey, // handle to key to query 
      DWORD dwIndex, // index of value to query 
      LPTSTR lpValueName, // address of buffer for value string 
      LPDWORD lpcbValueName, // address for size of value buffer 
      LPDWORD lpReserved, // reserved =NULL
      LPDWORD lpType, // address of buffer for type code 

      LPBYTE lpData, // address of buffer for value data 
      LPDWORD lpcbData // address for size of data buffer);
例:
   DWORD dinx=0;
   char valuename[70];  //分配數值名稱緩沖區
   strcpy(valuename,"DeskPattern");  //隨便指定哪個鍵值名
   DWORD nsize=69;  //數值名稱緩沖區大小
   DWORD k=REG_SZ;  //指明數據類型
   unsigned char vari[70]; //分配數值緩沖區
   DWORD ncbvari=69; //數值緩沖區大小
   dinx=0; //從0開始

   while((II=RegEnumValue(hd,dinx,valuename,&nsize,NULL,&k,vari,&ncbvari)) 
          != ERROR_NO_MORE_ITEMS)
   {
       dinx++;//索引 +1,準備取下一個值
       nsize=69; //恢復原來大小
       ncbvari=69;
   }
成功后返回值0,各變量返回后設置如下:
valuename=數值名稱,以0結尾;如 : DeskColor
nsize=數值名稱長度, 9
k=REG_SZ  DeskColor 的類型為 REG_SZ
vari=鍵值,32768 DeskColor="32768",
ncbvari=鍵值長度 REG_SZ包括結尾0,=6, 
讀取鍵值
LONG RegQueryValueEx( HKEY hKey, // handle to key to query 

       LPTSTR lpValueName, // address of name of value to query 
       LPDWORD lpReserved, // reserved 
       LPDWORD lpType, // address of buffer for value type 
       LPBYTE lpData, // address of data buffer 
       LPDWORD lpcbData // address of data buffer size );
例:
   RegQueryValueEx(hd,valuename,NULL,&k,vari,&ncbvari);
變量定義及成功后各變量設置值同RegEnumValueEx 
寫鍵值
LONG RegSetValueEx( HKEY hKey, // handle to key to set value for 
       LPCTSTR lpValueName, // name of the value to set 

       DWORD Reserved, // reserved 
       DWORD dwType, // flag for value type 
       CONST BYTE *lpData, // address of value data 
       DWORD cbData // size of value data );
例:
   strcpy(valuename,"Hello");
   unsigned char vari[10];
   DWORD k=REG_SZ;
   strcpy((char*)vari,"1234567")
   RegSetValueEx(hd,valuename,0,k,vari,7);
成功后在Poker下增加一個鍵值 Hello : REG_SZ : 1234567
寫整型變量:
int hi=8;
RegSetValueEx(pj,valuename,0,REG_BINARY,(unsigned char*)&hi,sizeof(int));

成功后在Poker下增加一個鍵值 Hello2 : REG_BINARY :08 00 00 00



void AddEventSource()
{
    HKEY hk; 
    DWORD dwData; 
    UCHAR szBuf[80]; 

    // Add your source name as a subkey under the Application 
    // key in the EventLog registry key. 

    if (RegCreateKey(HKEY_LOCAL_MACHINE, 
            "SYSTEM\\CurrentControlSet\\Services\ 
            \\EventLog\\Application\\SamplApp", &hk)) 
        ErrorExit("Could not create the registry key."); 

    // Set the name of the message file. 

    strcpy(szBuf, "%SystemRoot%\\System\\SamplApp.dll"); 

    // Add the name to the EventMessageFile subkey. 

    if (RegSetValueEx(hk,             // subkey handle 
            "EventMessageFile",       // value name 
            0,                        // must be zero 
            REG_EXPAND_SZ,            // value type 
            (LPBYTE) szBuf,           // pointer to value data 
            strlen(szBuf) + 1))       // length of value data 

        ErrorExit("Could not set the event message file."); 

    // Set the supported event types in the TypesSupported subkey. 

    dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | 
        EVENTLOG_INFORMATION_TYPE; 

    if (RegSetValueEx(hk,      // subkey handle 
            "TypesSupported",  // value name 
            0,                 // must be zero 
            REG_DWORD,         // value type 
            (LPBYTE) &dwData,  // pointer to value data 

            sizeof(DWORD)))    // length of value data 
        ErrorExit("Could not set the supported types."); 

    RegCloseKey(hk); 




以下代碼把注冊表自啟動shell的鍵值改寫為C:\DK1\ATM\HARP\ExAtmShell.exe:

         HKEY hkey;
LONG res; 
DWORD datatype=REG_SZ; 
unsigned char szvalue[_MAX_PATH];
strcpy((char*)szvalue,"C:\\DK1\\ATM\\HARP\\ExAtmShell.exe");

res =::RegOpenKeyEx(HKEY_LOCAL_MACHINE, 
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\", 0, 
KEY_WRITE|KEY_READ, &hkey); 

if(res!=ERROR_SUCCESS)
{
AfxMessageBox("aaa");
return;
}
res = ::RegSetValueEx(hkey, "Shell", 0, datatype, szvalue, strlen(LPCSTR(szvalue))); 

RegCloseKey(hkey);
if(res==ERROR_SUCCESS)
::AfxMessageBox("你已經成功地將注冊表自啟動shell的鍵值設置為C:\\DK1\\ATM\\HARP\\ExAtmShell.exe");
else
::AfxMessageBox("設定失敗:目標位置不存在這樣的鍵!");

posted on 2005-12-24 14:40 夢在天涯 閱讀(8124) 評論(3)  編輯 收藏 引用 所屬分類: CPlusPlusMFC/QT

評論

# 上海租車 2007-07-25 15:50 上海租車

http://www.modeluc.com 模型
http://www.htte.cn/ 電爐 網
http://www.dianlu.sh.cn/ 電爐 網
http://www.zingfull.com/ 辦公室裝修   回復  更多評論   

# led顯示屏報價 2009-08-20 15:55 toto899

LED電子顯示屏是集光電子技術、微電子技術、計算機技術、信息處理等技術于一體的大型電子顯示屏系統。
提供各種led顯示屏報價。
led顯示屏報價http://www.linso.com.cn/ledbj.htm
  回復  更多評論   

# re: vc中讀寫注冊表 2009-09-08 09:05 陳s

溫控儀表
http://www.yyqyshow.com/thybsub-XMT8008KWendushiyanxiangRs485.html  回復  更多評論   

公告

EMail:itech001#126.com

導航

統計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1817629
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美a级理论片| 亚洲一区免费看| 久久一区亚洲| 在线看日韩av| 亚洲成色777777女色窝| 久久高清一区| 亚洲国产小视频在线观看| 欧美成人午夜激情视频| 欧美激情女人20p| 在线亚洲伦理| 午夜精彩国产免费不卡不顿大片| 国产精品午夜视频| 久久亚洲色图| 欧美成人综合| 亚洲主播在线| 久久国产免费看| 亚洲人体影院| 亚洲一级免费视频| 在线成人h网| 亚洲精品在线二区| 国产无一区二区| 欧美高清视频一二三区| 欧美理论大片| 久久精品论坛| 欧美日产在线观看| 久久都是精品| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲人成网站999久久久综合| 一区二区三区国产| 在线观看亚洲一区| 亚洲视频一区在线| 在线观看成人av| 亚洲视频在线免费观看| 有码中文亚洲精品| 一本色道久久88综合亚洲精品ⅰ| 国产一区二区三区观看| 亚洲国产美女| 国产在线欧美| 亚洲最新视频在线播放| 伊人伊人伊人久久| 亚洲一区二区三区在线播放| 亚洲福利视频一区| 欧美一级播放| 亚洲午夜精品一区二区| 美女免费视频一区| 久久久久免费视频| 国产精品久久国产精麻豆99网站| 欧美寡妇偷汉性猛交| 国产精品试看| 99精品视频免费观看视频| 极品av少妇一区二区| 午夜视频精品| 亚洲一区中文| 欧美精品videossex性护士| 久久久久久香蕉网| 国产精品爽黄69| 亚洲作爱视频| 亚洲人成网站在线观看播放| 久久精品成人| 久久亚洲精品中文字幕冲田杏梨| 国产精品黄视频| 99re热这里只有精品视频 | 亚洲人久久久| 亚洲福利久久| 裸体一区二区三区| 免费的成人av| 有码中文亚洲精品| 久久九九热免费视频| 久久激情网站| 国产午夜一区二区三区| 亚洲欧美日韩一区在线| 亚洲欧美精品| 国产精品国产亚洲精品看不卡15| 日韩视频免费观看| 亚洲天堂成人在线观看| 国产精品yjizz| 午夜精品一区二区三区在线视| 午夜精品三级视频福利| 国产精品亚洲成人| 欧美一乱一性一交一视频| 久久人人97超碰国产公开结果| 激情一区二区三区| 免费亚洲婷婷| 亚洲精品小视频| 性久久久久久久久| 好看的亚洲午夜视频在线| 久久亚洲电影| 亚洲精品你懂的| 亚洲美女视频在线观看| 欧美视频你懂的| 午夜精品国产更新| 美女精品在线观看| 一本色道久久综合狠狠躁篇的优点| 欧美激情精品久久久久久变态| 亚洲人成网站在线播| 亚洲男人第一网站| 国产一区二区久久精品| 欧美大片91| 午夜精品一区二区三区在线播放| 欧美亚洲一区二区在线观看| 国内精品模特av私拍在线观看| 免费91麻豆精品国产自产在线观看| 亚洲国产成人av好男人在线观看| 国产精品99久久久久久有的能看 | 亚洲一区二区三区精品在线观看 | 亚洲欧洲精品一区二区三区不卡 | 欧美+亚洲+精品+三区| 亚洲精品少妇30p| 久久国产精品电影| 99精品久久久| 国产片一区二区| 欧美日本成人| 久久久久女教师免费一区| 亚洲人成人99网站| 久久久久久欧美| 亚洲图片欧美一区| 亚洲国产成人精品久久久国产成人一区| 欧美日韩免费一区| 久久九九精品99国产精品| 一区二区精品在线| 欧美电影免费| 久久精品一区二区三区不卡牛牛| 亚洲精品中文字幕女同| 一区在线观看视频| 国产日韩欧美a| 欧美手机在线| 欧美精品电影在线| 美日韩精品免费观看视频| 先锋资源久久| 亚洲手机在线| 一区二区毛片| 亚洲免费激情| 亚洲人成网站777色婷婷| 久久综合狠狠综合久久激情| 亚洲综合视频网| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲作爱视频| 亚洲国产清纯| 亚洲丰满在线| 在线观看亚洲视频| 在线播放日韩专区| 激情综合电影网| 一区二区在线视频| 精品91久久久久| 狠色狠色综合久久| 国产主播一区二区三区| 国产精品一区二区在线观看网站 | 国产精品xvideos88| 欧美日韩一区二区在线观看视频| 欧美精品成人在线| 欧美日韩国产欧| 欧美日韩国产首页在线观看| 欧美激情第9页| 欧美日韩国内| 国产精品成人免费精品自在线观看 | 久色婷婷小香蕉久久| 久久久精品久久久久| 久久精品人人做人人爽| 久久天天躁狠狠躁夜夜爽蜜月| 久久精品国产亚洲aⅴ| 久久久久久穴| 免费在线成人| 亚洲第一天堂av| 亚洲精品黄网在线观看| 一区二区三区四区国产精品| 亚洲欧美一区在线| 久久久久网址| 欧美日韩成人精品| 国产精品视频成人| 好吊一区二区三区| 日韩一级精品| 久久riav二区三区| 欧美激情视频一区二区三区在线播放 | 国产日产欧美a一级在线| 国内偷自视频区视频综合| 在线观看亚洲精品视频| 一区二区久久| 欧美一区二区三区日韩| 欧美成人精品h版在线观看| 亚洲精品乱码久久久久久蜜桃91 | 欧美高清一区| 亚洲视频axxx| 久久亚洲一区二区三区四区| 欧美日韩国产大片| 国内精品视频在线播放| 日韩天堂av| 欧美在线视频在线播放完整版免费观看| 玖玖视频精品| 中文国产成人精品| 免费成人av在线看| 国产精品素人视频| 亚洲免费观看高清完整版在线观看| 午夜久久影院| 亚洲国产1区| 欧美一区二区精品| 欧美日韩国产二区| 亚洲电影一级黄| 久久精彩视频| 在线一区二区视频| 欧美精品二区|