偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Windows CE 6.0注冊(cè)表應(yīng)用示例

開發(fā)
本文向您介紹Windows CE 6.0注冊(cè)表的一些應(yīng)用,包括利用系統(tǒng)提供的注冊(cè)表類CRegistryEdit以及利用windows CE API等方法。

Windows CE 6.0有4個(gè)基本的注冊(cè)表鍵值, HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS。其它的都是這4個(gè)注冊(cè)表的子鍵。

我們以一個(gè)內(nèi)建的串口驅(qū)動(dòng)為例,它在注冊(cè)表文件Platform.reg中的描述如下: 其中Prefix 和 Dll項(xiàng)是必不可少的,Prefix代表設(shè)備文件名前綴, 與Index合用表示該設(shè)備的名稱,該注冊(cè)表子鍵的設(shè)備名稱就是"COM1:",該名稱可以用于CreateFile調(diào)用。Dll則是動(dòng)態(tài)鏈接庫名稱。 Index為設(shè)備序號(hào)。Flags為1表示系統(tǒng)啟動(dòng)時(shí)不加載,需要應(yīng)用程序自己加載,為0表示該驅(qū)動(dòng)在系統(tǒng)啟動(dòng)時(shí)加載。

  1. [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial]  
  2.               "Prefix"="COM"  
  3.               "Dll"="$(_TGTPLAT_PFX)_serial.dll"  
  4.  
  5.               "Flags"=dword:0  
  6.               "Index"=dword:1 

在%WinCE Dir%Public%Common%OAK%INC%目錄下,文件cregedit.h中,定義了一個(gè)類CRegistryEdit來封裝了注冊(cè)表的操作。許多的硬件驅(qū)動(dòng),比如串口類,也繼承了CRegistryEdit類。

還有一種方法是利用windows CE提供的API進(jìn)行注冊(cè)表項(xiàng)的操作。

方法一: 利用系統(tǒng)提供的注冊(cè)表類CRegistryEdit

類的定義在文件regedit.h中。   

在構(gòu)建函數(shù)中,會(huì)取得當(dāng)前注冊(cè)表子鍵的HANDLE句柄。有3個(gè)構(gòu)造函數(shù),第一個(gè)是用全路徑,調(diào)用hKey = OpenDeviceKey(TEXT("HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\Serial"))構(gòu)造, 第二個(gè)是如果已知其父注冊(cè)表子鍵,調(diào)用RegOpenKeyEx( HKEY_LOCAL_MACHINE, TEXT("Drivers\\BuiltIn\\Serial"), 0,0,&hKey). 第三種方法是用RegCreateKeyEx().

析構(gòu)函數(shù)中,調(diào)用RegCloseKey(hKey)關(guān)閉掉對(duì)注冊(cè)表子鍵的引用。

讀取注冊(cè)表項(xiàng)可以使用GetRegValue方法,寫入注冊(cè)表項(xiàng)使用RegSetValueEx方法。其方法的實(shí)現(xiàn)也是通過windows CE API,具體可以參照下一個(gè)Section。

RegGetList和RegSetList方法提供了對(duì)類型為REG_MULTI_SZ和DWORD的VALUE的讀寫操作。

其它類方法GetWindowInfo, GetIsrInfo,GetPciInfo獲取注冊(cè)表更多的信息。

方法二: 利用windows CE API

為了獲取一個(gè)注冊(cè)表鍵值,先要調(diào)用RegOpenKeyEx。以上面內(nèi)建串口驅(qū)動(dòng)為例,RegOpenKey( HKEY_LOCAL_MACHINE, TEXT("Drivers\\BuiltIn\\Serial"), 0, 0, &hKey ), 其中hKey就是我們獲取的該注冊(cè)表子鍵的HANDLE句柄。接下來對(duì)注冊(cè)表子鍵的操作就是通過hKey來實(shí)現(xiàn).

有了hKey, 就可以對(duì)注冊(cè)表子鍵的各個(gè)內(nèi)容進(jìn)行讀寫操作。如果要讀去子鍵的Prefix, 調(diào)用函數(shù)RegQueryValueEx(hKey, TEXT("Prefix"), NULL, &lpType, &lpData, &lpcbData), lpType, lpData為Prefix返回類型和值,該例中,lpType = REG_SZ, lpData = TEXT("COM"). lpcbData當(dāng)調(diào)用時(shí),修飾限制lpData的size in bytes,返回時(shí),為lpData返回值的SIZE。

對(duì)應(yīng)于讀操作,寫操作是一個(gè)相反的過程,RegSetValueEx(hKey, TEXT("Prefix"), NULL, REG_SZ, PBYTE(TEXT("TST")), wcslen(TEXT("TST"))*2). 其中要寫入的項(xiàng)為Prefix項(xiàng),類型為REG_SZ, 值為TEXT("TST"), 最后一個(gè)參數(shù)為寫入值得SIZE in bytes. 注意第二個(gè)參數(shù),如果注冊(cè)表中存在該項(xiàng),則改寫它的值。如果沒有,則新建一個(gè)注冊(cè)表項(xiàng)。

某些情況下,我們需要?jiǎng)h除一個(gè)注冊(cè)表項(xiàng),只需調(diào)用RegDeleteKey(hKey, TEXT("Index"))就可以刪除Index注冊(cè)表項(xiàng)。

要關(guān)閉一個(gè)注冊(cè)表子鍵,只需要調(diào)用RegCloseKey(hKey)就可以完成。

關(guān)于注冊(cè)表有很多更加深入的使用,如RegEnumValue. 更多有關(guān)注冊(cè)表項(xiàng),可以查看MSDN手冊(cè)。

 

【編輯推薦】

  1. Windows CE在嵌入式工業(yè)中的應(yīng)用思考
  2. Windows CE下驅(qū)動(dòng)開發(fā)基礎(chǔ)
  3. Windows CE異常和中斷服務(wù)程序初探
  4. Windows CE OAL層的結(jié)構(gòu)與開發(fā)
  5. Windows CE中實(shí)現(xiàn)藍(lán)牙串口驅(qū)動(dòng)程序
責(zé)任編輯:佚名 來源: 網(wǎng)絡(luò)學(xué)院
相關(guān)推薦

2011-08-01 16:52:42

Windows CE 嵌入式

2011-04-21 09:10:16

2017-08-09 16:24:46

2011-08-04 16:37:09

注冊(cè)表編輯器注冊(cè)表

2009-02-18 08:42:40

手動(dòng)備份注冊(cè)表

2010-03-29 09:46:29

Windows 7關(guān)機(jī)加速

2011-08-03 18:01:40

注冊(cè)表

2018-11-02 09:15:11

WindowsWindows 10注冊(cè)表

2009-07-16 15:13:17

Windows Emb

2011-06-03 10:34:22

arpWindows 200

2011-06-03 10:34:32

2010-04-21 14:33:05

Windows注冊(cè)表

2009-05-28 14:11:05

Windows Emb

2011-09-15 10:36:49

注冊(cè)表windows7系統(tǒng)盤

2010-03-12 15:28:26

Windows Emb

2009-09-24 09:45:07

Windows Emb

2009-08-21 09:43:49

C#編輯注冊(cè)表

2019-07-07 09:20:02

Windows 10Windows備份注冊(cè)表

2009-06-15 09:56:22

2011-08-04 16:04:09

注冊(cè)表
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)