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

隨筆-250  評論-20  文章-55  trackbacks-0

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 2007-03-19 14:47 jay 閱讀(1001) 評論(1)  編輯 收藏 引用 所屬分類: 注冊表

評論:
# re: 讀寫注冊表 2008-10-12 22:57 | 阿林
按上次搞了個BHO,不小心復制了非法字符,把win注冊表搞亂了。慘~
這東西好像惹不起哦
http://www.eesdn.cn  回復  更多評論
  

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            精品成人久久| 久久精品论坛| 麻豆国产va免费精品高清在线| 亚洲精品在线电影| 亚洲二区在线| 91久久精品www人人做人人爽 | 欧美视频二区| 国产精品网曝门| 国产亚洲网站| 在线观看亚洲a| 99精品视频免费| 一区二区三区日韩欧美精品| 亚洲一级网站| 久久久精品动漫| 亚洲成人中文| 亚洲精品国产欧美| 亚洲天堂av图片| 久久国产精品一区二区三区四区| 99热精品在线| 国产麻豆综合| 亚洲国产精品一区二区久| 亚洲美女电影在线| 亚洲欧美区自拍先锋| 久久嫩草精品久久久精品| 亚洲电影第1页| 亚洲天堂成人在线视频| 久久一区中文字幕| 欧美午夜理伦三级在线观看| 国产原创一区二区| 亚洲少妇最新在线视频| 久久九九热免费视频| aⅴ色国产欧美| 久久青青草综合| 国产精品久久久久久久午夜片| 伊人久久大香线| 午夜精品一区二区三区四区 | 亚洲天堂av在线免费| 媚黑女一区二区| 国产老女人精品毛片久久| 日韩视频一区二区在线观看| 久久久午夜视频| 亚洲欧美日韩国产另类专区| 欧美日韩国产精品成人| 亚洲高清在线观看| 久久精品国产91精品亚洲| 亚洲精品日韩在线观看| 欧美国产精品久久| 亚洲国产高清一区| 久久免费视频在线| 欧美在线视频在线播放完整版免费观看| 欧美金8天国| 亚洲电影免费在线观看| 久久这里只有| 欧美在线电影| 国产手机视频精品| 欧美一区二区精品在线| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美日本国产一区| 一区二区三区三区在线| 亚洲美女av在线播放| 欧美高清在线视频观看不卡| 亚洲福利视频网站| 欧美高清视频一区二区三区在线观看 | 国产日韩亚洲欧美| 欧美在线视频一区| 欧美影院成人| 亚洲国产精品久久久| 开心色5月久久精品| 久久在线播放| 日韩视频免费| 一本一本久久a久久精品综合麻豆| 亚洲欧美成人一区二区三区| 亚洲综合日韩| 国产精品国产福利国产秒拍| 亚洲影音一区| 亚洲一二三四区| 国模吧视频一区| 欧美成年人视频| 欧美国产亚洲另类动漫| 在线视频精品一区| 亚洲欧美中日韩| 在线欧美日韩| 亚洲精品一区二区三| 国产精品另类一区| 久久影视精品| 欧美激情bt| 欧美一区二区三区日韩| 久久久久久久久久久久久久一区 | 亚洲激情网站| 欧美日韩国产不卡| 亚洲小说欧美另类社区| 午夜欧美大尺度福利影院在线看| 国产欧美精品日韩| 欧美激情第8页| 欧美午夜无遮挡| 久久久久久一区| 欧美91福利在线观看| 亚洲直播在线一区| 久久久91精品国产一区二区精品| 99国产精品视频免费观看一公开| 亚洲视频精品| 亚洲国产精品悠悠久久琪琪| 亚洲性感美女99在线| 亚洲国产一区二区在线| 亚洲一区二区三区中文字幕| 亚洲激情国产| 欧美一区免费| 亚洲一区二区网站| 欧美成人免费在线视频| 久久精品免费看| 国产精品va在线播放| 亚洲电影第1页| 国产视频观看一区| 亚洲美洲欧洲综合国产一区| 亚洲国产精品高清久久久| 亚洲免费影视| 亚洲一区二区不卡免费| 欧美www视频在线观看| 久久久久国产免费免费| 国产精品美腿一区在线看 | 一区二区三区日韩在线观看| 亚洲电影下载| 午夜精品视频| 欧美亚洲综合网| 欧美激情在线播放| 欧美激情国产高清| 一区二区三区中文在线观看| 亚洲欧美日韩直播| 午夜精品福利电影| 国产精品久久久久一区二区三区| 亚洲精品乱码久久久久久黑人| 亚洲电影免费观看高清完整版在线 | 欧美高清视频一区| 麻豆精品91| 欧美一区二区视频97| 欧美freesex8一10精品| 久久一区二区三区av| 国产日韩欧美日韩大片| 亚洲综合精品四区| 欧美亚洲视频| 欧美午夜视频在线| 亚洲国产精品日韩| 伊人久久男人天堂| 久久成人在线| 免费中文日韩| 亚洲国产成人精品久久| 老司机精品视频网站| 亚洲第一区色| 99精品欧美一区二区三区| 欧美视频一区二区三区四区 | 欧美影院精品一区| 久色婷婷小香蕉久久| 亚洲国产精品高清久久久| 欧美va亚洲va国产综合| 亚洲精品一区在线观看香蕉| 亚洲一区二区三区中文字幕| 国产精品男女猛烈高潮激情 | 91久久精品国产91性色 | 欧美国产亚洲视频| 99视频一区二区三区| 欧美四级伦理在线| 亚洲免费在线电影| 欧美搞黄网站| 亚洲一区在线免费观看| 国产精品久久久一区二区三区| 香蕉成人伊视频在线观看| 美女网站在线免费欧美精品| 亚洲欧洲一区二区在线播放| 欧美日韩一区国产| 久久成人一区| 99热免费精品在线观看| 久久精品导航| 亚洲精选91| 国产伦精品免费视频| 免费欧美在线视频| 亚洲一区二区影院| 久久一区二区三区四区| 一道本一区二区| 激情久久久久久久久久久久久久久久| 开心色5月久久精品| 亚洲一区二区四区| 欧美激情视频免费观看| 亚洲欧美日韩一区| 亚洲激情在线观看| 国产视频丨精品|在线观看| 欧美高清在线一区二区| 亚洲欧美偷拍卡通变态| 亚洲人成网站在线播| 国产精品视频成人| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲大胆美女视频| 欧美在线免费观看视频| 激情综合亚洲| 国产精品男女猛烈高潮激情 | 亚洲国产精品久久久久| 欧美一区二区福利在线| 一区二区三区免费观看| 亚洲国产欧美一区| 激情亚洲一区二区三区四区| 国产精品一卡二卡|