Module 基礎模組

模組registry

registry 模組是一個操作Windows 註冊表(Registry)的模組。它提供了存取註冊表的方法和常數,可以讀取、修改、刪除、新增等操作。registry 模組提供的操作方式和Windows 應用程式使用的方式類似,但卻是在FibJS 中提供了能力。常數有常見的Root、 資料型別等常數,還有一些用於不同操作的回傳值的常數

常用的函數有:

  1. get(root, key[, flags]):取得指定註冊表項的值。
  2. set(root, key, value[, type]):設定指定登錄項目的值。
  3. del(root, key):刪除指定登錄項目。

接下來,我們驗證某個登錄機碼在指定登錄機碼分支上的鍵值是否存在,然後將該鍵值讀取。如果不存在,就將該鍵值寫入到指定登錄項目。程式碼如下所示:

1 2 3 4 5 6 7 8 9 10
var 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 2
static NArray registry.listSubKey(Integer root, String key);

呼叫參數:

  • root: Integer, 指定登錄根
  • key: String, 指定鍵值

回傳結果:

  • NArray, 傳回該鍵值下所有子健

listValue

傳回指定鍵值下的所有資料的健

1 2
static NArray registry.listValue(Integer root, String key);

呼叫參數:

  • root: Integer, 指定登錄根
  • key: String, 指定鍵值

回傳結果:

  • NArray, 傳回該鍵值下所有資料的健

get

查詢指定鍵值的數值

1 2
static Value registry.get(Integer root, String key);

呼叫參數:

  • root: Integer, 指定登錄根
  • key: String, 指定鍵值

回傳結果:

  • Value, 傳回指定鍵值的數值

set

設定指定鍵值為數字

1 2 3 4
static 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 4
static 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 3
static registry.set(Integer root, String key, Array value);

呼叫參數:

  • root: Integer, 指定登錄根
  • key: String, 指定鍵值
  • value: Array, 指定多字串數組

設定指定鍵值為二進位

1 2 3
static registry.set(Integer root, String key, Buffer value);

呼叫參數:

  • root: Integer, 指定登錄根
  • key: String, 指定鍵值
  • value:Buffer, 指定二進位數據

del

刪除指定鍵值的數值

1 2
static registry.del(Integer root, String key);

呼叫參數:

  • root: Integer, 指定登錄根
  • key: String, 指定鍵值

常量

CLASSES_ROOT

註冊表根,儲存Windows可識別的文件類型的詳細列表,以及相關聯的程序

1
const registry.CLASSES_ROOT = 0;

CURRENT_USER

註冊表根,儲存目前使用者設定的信息

1
const registry.CURRENT_USER = 1;

LOCAL_MACHINE

註冊表根,包括安裝在電腦上的硬體和軟體的信息

1
const registry.LOCAL_MACHINE = 2;

USERS

註冊表根,包含使用電腦的使用者的信息

1
const registry.USERS = 3;

CURRENT_CONFIG

註冊表根,這個分支包含電腦目前的硬體配置訊息

1
const registry.CURRENT_CONFIG = 5;

SZ

註冊表資料類型,字串

1
const registry.SZ = 1;

EXPAND_SZ

註冊表資料類型,擴展字串

1
const registry.EXPAND_SZ = 2;

DWORD

註冊表資料類型,32 位數值

1
const registry.DWORD = 4;

QWORD

註冊表資料類型,64 位數值

1
const registry.QWORD = 11;