heX 擴(kuò)展說明

2018-08-29 14:02 更新

heX 加載成功的擴(kuò)展掛載在 hex.extensions 對象下。

列表

sleep 擴(kuò)展

sleep(millisecond)

設(shè)置 sleep 的毫秒數(shù)。

unsleep(millisecond)

設(shè)置 unsleep 的毫秒數(shù)。

shortcut 擴(kuò)展

create(path, options, operations)

創(chuàng)建一個快捷方式。其中參數(shù):

  • path: 快捷方式的路徑
  • options: 快捷方式的參數(shù)
  • operations: 快捷方式的操作

快捷方式的參數(shù)是一個對象,具體 key 的含義如下:

  • target: 快捷方式所對應(yīng)的目標(biāo)路徑。默認(rèn)值:path 所指路徑。
  • workingDir: 快捷方式的工作路徑。默認(rèn)值:path 所在路徑。
  • arguments: 快捷方式的參數(shù)。
  • description: 快捷方式的描述信息。
  • iconPath: 快捷方式的圖標(biāo)路徑。默認(rèn)值:path 所指路徑。
  • iconIndex: 快捷方式的圖標(biāo)索引號。默認(rèn)值:0(iconPath 的第一個圖標(biāo))。
  • appId: 快捷方式的 Application User Model ID(Windows 7+)。

快捷方式的操作有以下含義:

  • SHORTCUT_CREATE_ALWAYS: 0,如果快捷方式不存在則創(chuàng)建一個新的,否則覆蓋。
  • SHORTCUT_REPLACE_EXISTING: 1,如果快捷方式不存在則失敗,僅可以覆蓋已有的快捷方式。
  • SHORTCUT_UPDATE_EXISTING: 2,在一個已存在的快捷方式上更新指定的屬性。

update(path, options, operations)

更新一個快捷方式。暫時功能同 create。

resolve(path)

獲取一個快捷方式的信息。暫時僅包括 target 和 arguments 屬性。

delete(path)

刪除一個快捷方式。

pin(path)

將一個快捷方式固定在任務(wù)欄上。僅適用于 Windows Vista 及以上系統(tǒng)。

unpin(path)

將一個快捷方式解除固定在任務(wù)欄上。僅適用于 Windows Vista 及以上系統(tǒng)。

SHORTCUT_CREATE_ALWAYS

create 的 operations 參數(shù)。如果快捷方式不存在則創(chuàng)建一個新的,否則覆蓋。

SHORTCUT_REPLACE_EXISTING

create 的 operations 參數(shù)。如果快捷方式不存在則失敗,僅可以覆蓋已有的快捷方式。

SHORTCUT_UPDATE_EXISTING

create 的 operations 參數(shù)。在一個已存在的快捷方式上更新指定的屬性。

dialog 擴(kuò)展

fileDialog(options)

打開一個文件選擇類對話框。options 的參數(shù)如下:

  • mode: 對話框類型。參見:OPEN_FILE 等。默認(rèn)值:OPEN_FILE。
  • title: 對話框標(biāo)題。
  • defaultFileName: 對話框的缺省文件名或路徑。
  • acceptTypes: 對話框所支持的文件類型。此選項為一個對象,key 代表類型描述,value 代表類型過濾器(如 *.*,*.png 等,多種過濾器用分號隔開)。

Example:

fileDialog({
    "mode": hex.OPEN_FILE,
    "title": "Select an image",
    "defaultFileName": "d:\\",
    "acceptTypes": {
        "Image files": "*.bmp;*.gif;*.jpg;*.png",
        "All files": "*.*"
    }
})

openFileDialog(options)

打開一個文件選擇對話框。options 的參數(shù)見 fileDialog,其中 mode 參數(shù)無效。

openMultipleFilesDialog(options)

打開一個文件多重選擇對話框。options 的參數(shù)見 fileDialog,其中 mode 參數(shù)無效。

saveFileDialog(options)

打開一個文件保存對話框。options 的參數(shù)見 fileDialog,其中 mode 參數(shù)無效。

openFolderDialog(options)

打開一個文件夾選擇對話框。options 的參數(shù)見 fileDialog,其中 mode 參數(shù)無效。

openNewFolderDialog(options)

打開一個新式的文件夾選擇對話框。options 的參數(shù)見 fileDialog,其中 mode 參數(shù)無效。僅適用于 Windows Vista 及以上系統(tǒng)。

OPEN_FILE

fileDialog 的 operations 參數(shù)。代表文件選擇對話框。

OPEN_MULTIPLE_FILES

fileDialog 的 operations 參數(shù)。代表文件多重選擇對話框。

OPEN_FOLDER

fileDialog 的 operations 參數(shù)。代表文件夾選擇對話框。

OPEN_NEW_FOLDER

fileDialog 的 operations 參數(shù)。代表新式的文件夾選擇對話框。

SAVE_FILE

fileDialog 的 operations 參數(shù)。代表文件夾保存對話框。

icon 擴(kuò)展

getIcon()

獲取當(dāng)前窗口的圖標(biāo),返回值為一個對象,包含了 Uint8ClampedArray 類型的圖標(biāo)位圖數(shù)據(jù) array,字符串類型的 base64 uri,寬度及高度。

setIcon(array, [width, height])

將 array 中所指的位圖數(shù)據(jù)設(shè)置為當(dāng)前窗口的圖標(biāo),若未指定 width 及 height 則默認(rèn)將圖標(biāo)理解為正方形。array 為 Uint8ClampedArray 類型,可以由 hex.snapshot()、hex.snapshotDesktop() 或者 canvas 元素獲得。

createIconFile(path, array, width, height)

將 array 中所指的位圖數(shù)據(jù)保存為 ico 文件,圖標(biāo)文件中包含一系列尺寸的圖標(biāo)。array 為 Uint8ClampedArray 類型,可以由 hex.snapshot()、hex.snapshotDesktop() 或者 canvas 元素獲得。

getFileIcon(path, [size])

獲取指定路徑 path 下的指定尺寸 [size] 的圖標(biāo),返回值為 PNG 格式的 base64 字符串。若未指定 size 則默認(rèn)為 LARGE。

SMALL

代表 16x16 小圖標(biāo),值為 0,搭配 getFileIcon() 使用。

NORMAL

代表 32x32 大圖標(biāo),值為 1,搭配 getFileIcon() 使用。

LARGE

代表 48x48 (Linux) 或 32x32 (Windows) 大圖標(biāo),值為 2,搭配 getFileIcon() 使用。

custom protocol 擴(kuò)展

create(protocol, path)

創(chuàng)建一個名為 protocol 的自定義協(xié)議類型,path 代表關(guān)聯(lián)的程序。創(chuàng)建成功返回 true,否則返回 false。

has(protocol)

返回是否存在 protocol 所指的自定義協(xié)議類型。

delete(protocol)

刪除 protocol 所指的自定義協(xié)議類型。刪除成功返回 true,否則返回 false。

registry 擴(kuò)展

registry 擴(kuò)展的功能都位于構(gòu)造器 Registry 上。

在使用 registry 擴(kuò)展之前,可以先了解一下 Windows 注冊表的相關(guān)內(nèi)容:http://technet.microsoft.com/en-us/library/a1377b7d-277f-47ba-adde-96ee781be5b3http://msdn.microsoft.com/en-us/library/windows/desktop/ms724871(v=vs.85).aspx

Windows 注冊表中的鍵名不區(qū)分大小寫。

new Registry([handle, [subkey, [access]]])

構(gòu)造一個 Registry 對象。共有 4 種構(gòu)造方式:

  • new Registry(handle)
  • new Registry(handle_hex_string)
  • new Registry(handle, subkey, [access])
  • new Registry(handle_hex_string, subkey, [access])

handle 為一個注冊表鍵 (Key) 的句柄 (handle),即 HKEY,handle_hex_string 為 handle 轉(zhuǎn)換成的 16 進(jìn)制的字符串。subkey 為要打開的子鍵的路徑,若為空則代表當(dāng)前主鍵。access 為可選,代表賦予的權(quán)限,參見 Registry Key Security and Access Rights

當(dāng)所指的 Key 已存在則本操作執(zhí)行打開鍵 (OpenKey) 的動作,當(dāng)所指的 Key 不存在且 access_right 設(shè)置了允許創(chuàng)建新鍵,則本操作會執(zhí)行創(chuàng)建新鍵 (CreateKey) 的動作。本操作會在對象內(nèi)部保存一個系統(tǒng)的 HKEY。

如打開 0x80000000 代表的鍵,即 HKEY_CLASSES_ROOT:

var Registry = hex.extensions.hex_registry_extension.Registry;
var reg = new Registry('0x80000000');
var Registry = hex.extensions.hex_registry_extension.Registry;
var reg = new Registry('0x80000000', 'SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts', Reg.KEY_READ);

Registry.prototype.close()

關(guān)閉一個打開的鍵,同時對象內(nèi)部保存的系統(tǒng)的 HKEY 也將會被清空。

Registry.prototype.create(handle, subkey, [access])

在指定的鍵下創(chuàng)建子鍵,若 subkey 為空則代表當(dāng)前主鍵,若被創(chuàng)建的鍵已存在則打開它。

var Registry = hex.extensions.hex_registry_extension.Registry;
var reg = new Registry('0x80000000');
reg.create(Reg.HKEY_CLASSES_ROOT, '*');

Registry.prototype.createKey(subkey, [access])

在當(dāng)前的鍵下創(chuàng)建子鍵,若 subkey 為空則代表當(dāng)前主鍵,若被創(chuàng)建的鍵已存在則打開它。

var Registry = hex.extensions.hex_registry_extension.Registry;
var reg = new Registry(Reg.HKEY_CLASSES_ROOT);
reg.create('*', Reg.KEY_ALL_ACCESS);

Registry.prototype.open(handle, subkey, [access])

打開指定的鍵下的子鍵,若 subkey 為空則代表當(dāng)前主鍵。

Registry.prototype.openKey(subkey, [access])

打開當(dāng)前的鍵下的子鍵,若 subkey 為空則代表當(dāng)前主鍵。

Registry.prototype.set(handle)

將傳入的 handle 替換當(dāng)前對象中存放的鍵的 handle。

var Registry = hex.extensions.hex_registry_extension.Registry;
var reg = new Registry(Reg.HKEY_CLASSES_ROOT);
reg.set(Reg.HKEY_CURRENT_USER);

Registry.prototype.take()

抹去當(dāng)前對象中存放的鍵的 handle,包括正在監(jiān)聽的事件。

Registry.prototype.hasValue(value)

判斷當(dāng)前鍵下是否有指定的鍵值。

Registry.prototype.getValueCount()

獲取當(dāng)前鍵下的鍵值數(shù)。

Registry.prototype.getValueNameAt(index)

獲取當(dāng)前鍵下的指定索引 index 所對應(yīng)的鍵值。

Registry.prototype.valid()

判斷當(dāng)前的鍵是否為一個有效的鍵。

Registry.prototype.deleteKey(name)

刪除當(dāng)前鍵下的指定的子鍵。

Registry.prototype.readValueDW(name)

獲得當(dāng)前鍵下指定鍵值中的 DWORD 值。

Registry.prototype.readInt64(name)

獲得當(dāng)前鍵下指定鍵值中的 Int64 值。

Registry.prototype.readValue(name)

獲得當(dāng)前鍵下指定鍵值中的字符串值。

Registry.prototype.readValues(name)

獲得當(dāng)前鍵下指定鍵值中的字符串列表值。

Registry.prototype.writeValue(name, value)

向當(dāng)前鍵值下指定鍵值中寫入值,value 可以是整數(shù)或者是字符串。

Registry.prototype.startWatching()

開始監(jiān)聽指定的鍵是否發(fā)生了改變,該鍵必須在打開時設(shè)置了 KEY_NOTIFY 權(quán)限。

Registry.prototype.hasChanged()

返回當(dāng)前被監(jiān)聽的鍵是否發(fā)生了改變,若該鍵未被監(jiān)聽,則始終返回 false。

Registry.prototype.stopWatching()

停止監(jiān)聽指定的鍵是否發(fā)生了改變。

Registry.prototype.isWatching()

判斷當(dāng)前鍵是否正在被監(jiān)聽。

Registry.prototype.handle()

返回當(dāng)前對象保存的鍵的 handle 的 16 進(jìn)制值字符串。

Registry.prototype.handle2()

返回當(dāng)前對象保存的鍵的 handle 的整數(shù)值,有可能出現(xiàn)溢出。

Registry.prototype.getRealKeyPath()

返回當(dāng)前的鍵在注冊表中的真實路徑。

Registry.prototype.iterateKeys([iterator])

遍歷當(dāng)前鍵下的子鍵,若傳入了 iterator (function 類型) 則逐一返回,若參數(shù)為空則返回一個數(shù)組。

Registry.prototype.iterateValues([iterator])

遍歷當(dāng)前鍵下的鍵值,若傳入了 iterator (function 類型) 則逐一返回,若參數(shù)為空則返回一個數(shù)組。

Registry.createFromReservedKey(key)

直接由 key 指定的 handle 創(chuàng)建一個 Registry 對象。key 可以是一個 16 進(jìn)制值字符串,也可以是 Predefined Keys 字符串。

var Registry = hex.extensions.hex_registry_extension.Registry;
var reg = Reg.createFromReservedKey(Reg.HKEY_CLASSES_ROOT);
var reg = Reg.createFromReservedKey(‘HKEY_CLASSES_ROOT’);
var reg = new Registry(Reg.HKEY_CLASSES_ROOT);
// 上面三行等效

Registry.iterateKeys(handle, [subkey, [iterator]])

功能與 Registry.prototype.iterateKeys 類似,第一個參數(shù)為一個 Registry 對象。

可以設(shè)置第二個 subkey 參數(shù)指定一個子鍵。

Registry.iterateValues(handle, [subkey, [iterator]])

功能與 Registry.prototype.iterateValues 類似,第一個參數(shù)為一個 Registry 對象。

可以設(shè)置第二個 subkey 參數(shù)指定一個子鍵。

Registry.getRealKeyPath(handle)

功能與 Registry.prototype.getRealKeyPath 類似,第一個參數(shù)為一個 Registry 對象。

Registry Key Security and Access Rights

  • Registry.KEY_QUERY_VALUE
  • Registry.KEY_SET_VALUE
  • Registry.KEY_CREATE_SUB_KEY
  • Registry.KEY_ENUMERATE_SUB_KEYS
  • Registry.KEY_NOTIFY
  • Registry.KEY_CREATE_LINK
  • Registry.KEY_WOW64_32KEY
  • Registry.KEY_WOW64_64KEY
  • Registry.KEY_WOW64_RES
  • Registry.KEY_READ
  • Registry.KEY_WRITE
  • Registry.KEY_EXECUTE
  • Registry.KEY_ALL_ACCESS

詳細(xì)信息請參見:http://msdn.microsoft.com/en-us/library/windows/desktop/ms724878(v=vs.85).aspx

Predefined Keys

  • Registry.HKEY_CLASSES_ROOT
  • Registry.HKEY_CURRENT_USER
  • Registry.HKEY_LOCAL_MACHINE
  • Registry.KEY_ENUMERATE_SUB_KEYS
  • Registry.HKEY_USERS
  • Registry.HKEY_PERFORMANCE_DATA
  • Registry.HKEY_PERFORMANCE_TEXT
  • Registry.HKEY_PERFORMANCE_NLSTEXT
  • Registry.HKEY_CURRENT_CONFIG
  • Registry.HKEY_DYN_DATA
  • Registry.HKEY_CURRENT_USER_LOCAL_SETTINGS

詳細(xì)信息請參見:http://msdn.microsoft.com/en-us/library/windows/desktop/ms724836(v=vs.85).aspx

file association 擴(kuò)展

create(info)

創(chuàng)建一個自定義文件類型。info 是一個對象,包含以下信息:

  • extension
  • prog_id
  • description
  • content_type
  • perceived_type
  • icon_path
  • icon_index
  • open_command
  • open_command_arguments
  • clsid
  • cur_ver
  • friendly_type_name

關(guān)于 Windows 文件類型注冊,請參見:http://msdn.microsoft.com/en-us/library/windows/desktop/cc144104(v=vs.85).aspx

var FA = hex.extensions.hex_file_association_extension;
FA.create({
  extension: 'test',
  prog_id: 'My.Test',
  description: 'My test file type',
  icon_path: process.execPath,
  icon_index: 0,
  open_command: process.execPath,
  open_command_arguments: '%1'
});

update(info)

暫時與 create 一致。

delete(ext)

刪除指定的擴(kuò)展名的文件類型,ext 可以帶“.”,也可以不帶“.”。

isExtensionExist(ext)

判斷指定的擴(kuò)展名在注冊表中是否已被注冊。

isProgIdExist(ext)

判斷指定的 ProgId 在注冊表中是否已被注冊。

getShellOpenCommandByExtension(ext)

通過指定的擴(kuò)展名獲取可以打開它的命令列表。

getShellOpenCommandByProgId(prog_id)

通過指定的 ProgId 獲取可以打開它的命令列表。

getExtensionProgId(ext)

通過指定的擴(kuò)展名獲取其 ProgId。

getOpenWithProgIds(ext)

通過指定的擴(kuò)展名獲取其對應(yīng)的已被注冊的 ProgId。

getOpenWithList(ext)

通過指定的擴(kuò)展名獲取其其對應(yīng)的已被注冊的打開方式列表。

isInOpenWithProgIds(ext, prog_id)

判斷一個擴(kuò)展名是否與指定的 ProgId 相關(guān)聯(lián)。

isInShellNew(ext)

判斷一個擴(kuò)展名是否在“新建”列表中。

appendToOpenWithProgId(ext, prog_id)

將一個 ProgId 追加到 ext 指定的擴(kuò)展名的打開方式列表中。

removeFromOpenWithProgId(ext, prog_id)

將一個 ProgId 從 ext 指定的擴(kuò)展名的打開方式列表中移除。

appendToShellNew(ext, path, is_null_file)

將一個 ext 指定的擴(kuò)展名追加到“新建”列表中。當(dāng) is_null_file 為 false 時,path 代表新建文件的路徑。

removeFromShellNew(ext)

將一個 ext 指定的擴(kuò)展名從“新建”列表中移除。

getShellNewList(ext)

獲取“新建”列表。

registerMuiCache(path, title)

注冊 MUI Cache,path 為關(guān)聯(lián)的可執(zhí)行文件路徑,title 為指定的標(biāo)題,這將會影響打開方式列表中的項目顯示名。

getRegisteredMuiCacheList()

獲取 MUI Cache,返回一個對象。

getDefaultIcon(ext)

獲取指定擴(kuò)展名的圖標(biāo)路徑及 index。

getDescription(ext)

獲取指定擴(kuò)展名的描述信息。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號