模組registry
registry 模組是一個操作Windows 註冊表(Registry)的模組。它提供了存取註冊表的方法和常數,可以讀取、修改、刪除、新增等操作。registry 模組提供的操作方式和Windows 應用程式使用的方式類似,但卻是在FibJS 中提供了能力。常數有常見的Root、 資料型別等常數,還有一些用於不同操作的回傳值的常數
常用的函數有:
- get(root, key[, flags]):取得指定註冊表項的值。
- set(root, key, value[, type]):設定指定登錄項目的值。
- del(root, key):刪除指定登錄項目。
接下來,我們驗證某個登錄機碼在指定登錄機碼分支上的鍵值是否存在,然後將該鍵值讀取。如果不存在,就將該鍵值寫入到指定登錄項目。程式碼如下所示:
1
2
3
4
5
6
7
8
9
10var registry = require('registry');
// specify the key name
var key = "Software\\Fibjs\\Test\\KeyName";
if (!registry.get(registry.CLASSES_ROOT, key)) {
registry.set(registry.CLASSES_ROOT, key, "test_value");
}
// specify the key name
var value = registry.get(registry.CLASSES_ROOT, key);
console.log(value);
程式首先驗證登錄項目是否存在,如果不存在,則寫入註冊表,鍵名稱為Software\Fibjs\Test\KeyName,並將值設為test_value。最後,讀取該註冊表的鍵值並在控制台輸出。上面的程式碼展示了registry 模組的基本用法,可以透過這個模組很方便地讀取、修改、新增、刪除登錄中的資訊。
靜態函數
listSubKey
傳回指定鍵值下的所有子健
1
2static NArray registry.listSubKey(Integer root,
String key);
呼叫參數:
- root: Integer, 指定登錄根
- key: String, 指定鍵值
回傳結果:
- NArray, 傳回該鍵值下所有子健
listValue
傳回指定鍵值下的所有資料的健
1
2static NArray registry.listValue(Integer root,
String key);
呼叫參數:
- root: Integer, 指定登錄根
- key: String, 指定鍵值
回傳結果:
- NArray, 傳回該鍵值下所有資料的健
get
查詢指定鍵值的數值
1
2static Value registry.get(Integer root,
String key);
呼叫參數:
- root: Integer, 指定登錄根
- key: String, 指定鍵值
回傳結果:
- Value, 傳回指定鍵值的數值
set
設定指定鍵值為數字
1
2
3
4static registry.set(Integer root,
String key,
Number value,
Integer type = DWORD);
呼叫參數:
- root: Integer, 指定登錄根
- key: String, 指定鍵值
- value: Number, 指定數字
- type: Integer, 指定類型,允許的類型為DWORD 和QWORD,預設為DWORD
設定指定鍵值為字串
1
2
3
4static registry.set(Integer root,
String key,
String value,
Integer type = SZ);
呼叫參數:
- root: Integer, 指定登錄根
- key: String, 指定鍵值
- value: String, 指定字串
- type: Integer, 指定類型,允許的類型為SZ 和EXPAND_SZ,預設為SZ
設定指定鍵值為多字串
1
2
3static registry.set(Integer root,
String key,
Array value);
呼叫參數:
- root: Integer, 指定登錄根
- key: String, 指定鍵值
- value: Array, 指定多字串數組
設定指定鍵值為二進位
1
2
3static registry.set(Integer root,
String key,
Buffer value);
呼叫參數:
- root: Integer, 指定登錄根
- key: String, 指定鍵值
- value:Buffer, 指定二進位數據
del
刪除指定鍵值的數值
1
2static registry.del(Integer root,
String key);
呼叫參數:
- root: Integer, 指定登錄根
- key: String, 指定鍵值
常量
CLASSES_ROOT
註冊表根,儲存Windows可識別的文件類型的詳細列表,以及相關聯的程序
1const registry.CLASSES_ROOT = 0;
CURRENT_USER
註冊表根,儲存目前使用者設定的信息
1const registry.CURRENT_USER = 1;
LOCAL_MACHINE
註冊表根,包括安裝在電腦上的硬體和軟體的信息
1const registry.LOCAL_MACHINE = 2;
USERS
註冊表根,包含使用電腦的使用者的信息
1const registry.USERS = 3;
CURRENT_CONFIG
註冊表根,這個分支包含電腦目前的硬體配置訊息
1const registry.CURRENT_CONFIG = 5;
SZ
註冊表資料類型,字串
1const registry.SZ = 1;
EXPAND_SZ
註冊表資料類型,擴展字串
1const registry.EXPAND_SZ = 2;
DWORD
註冊表資料類型,32 位數值
1const registry.DWORD = 4;
QWORD
註冊表資料類型,64 位數值
1const registry.QWORD = 11;