溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

易語言注冊自定義協(xié)議Register protocol的示例分析

發(fā)布時間:2021-06-17 11:28:35 來源:億速云 閱讀:180 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)易語言注冊自定義協(xié)議Register protocol的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

Register protocol

tencent:// thunder:// 是 騰訊 和 迅雷 的協(xié)議,即頁面上或地址欄里的鏈接只要輸入帶有 tencent://… 的協(xié)議,就會自動調(diào)用一個已寫好的程序執(zhí)行該協(xié)議的操作。 或者是打開頁面,迅雷的是下載資源的鏈接。

通過微軟的說明,知道這是Register protocol,對于 Windows、Linux 和 OS X 操作系統(tǒng)都可以注冊這樣的協(xié)議。比如說Windows,其實只需寫入注冊表,即可實現(xiàn)協(xié)議與執(zhí)行程序的關(guān)聯(lián)。

DLL命令表

.版本 2
.DLL命令 RegCreateKey, 邏輯型, "Advapi32.dll", "RegCreateKeyA", 公開
 .參數(shù) hKey, 整數(shù)型
 .參數(shù) lpSubKey, 文本型
 .參數(shù) phkResult, 整數(shù)型, 傳址
.DLL命令 RegCloseKey, , "Advapi32.dll", "RegCloseKey", 公開
 .參數(shù) hKey, 整數(shù)型
.DLL命令 RegSetKeyValue, 邏輯型, "Advapi32.dll", "RegSetValueExA", 公開
 .參數(shù) hKey, 整數(shù)型
 .參數(shù) lpSubKey, 文本型
 .參數(shù) lpValueName, 文本型
 .參數(shù) dwType, 整數(shù)型
 .參數(shù) lpData, 文本型
 .參數(shù) cbData, 整數(shù)型
.DLL命令 sprintf, 整數(shù)型, "msvcrt.dll", "@sprintf"
 .參數(shù) s, 文本型, 傳址
 .參數(shù) foramt, 文本型
 .參數(shù) arg, 文本型
.DLL命令 GetCommandLine, 文本型, "kernel32.dll", "GetCommandLineA", 公開

常量數(shù)據(jù)表

.版本 2
.常量 HKEY_CLASSES_ROOT, "2147483648"
.常量 REG_SZ, "1"

注冊自定義協(xié)議Register protocol

.版本 2
.程序集 程序集1
.子程序 _啟動子程序, 整數(shù)型, , 本子程序在程序啟動后最先執(zhí)行
.局部變量 pszArgv, 文本型, , "0"
.局部變量 szExePath, 文本型
.局部變量 i, 整數(shù)型
.局部變量 Schemes, 文本型
標(biāo)準(zhǔn)輸出 (, “Windows 注冊自定義協(xié)議演示:”, #換行符)
取命令行 (pszArgv)
.如果真 (取數(shù)組成員數(shù) (pszArgv) ≥ 1) ' 如果啟動參數(shù)小于1,那說明并非由協(xié)議啟動
 .計次循環(huán)首 (取數(shù)組成員數(shù) (pszArgv), i)
  .如果真 (取文本左邊 (到小寫 (pszArgv [i]), 6) = “eyuyan:”)
   Schemes = 取文本右邊 (pszArgv [i], 取文本長度 (pszArgv [i]) - 8) ' 協(xié)議數(shù)據(jù)
   標(biāo)準(zhǔn)輸出 (, “收到協(xié)議數(shù)據(jù): ”, Schemes, #換行符)
   ' 在這里就可以處理接收到的協(xié)議數(shù)據(jù)了
   標(biāo)準(zhǔn)輸出 (, “按回車鍵結(jié)束程序!”, #換行符)
   標(biāo)準(zhǔn)輸入 ()
   返回 (0)
  .如果真結(jié)束
 .計次循環(huán)尾 ()
.如果真結(jié)束
標(biāo)準(zhǔn)輸出 (, “注冊協(xié)議頭: Ayana ”, #換行符, “在地址欄或者瀏覽器中輸入: Ayana:hello%20world ,將會觸發(fā)接收程序!”, #換行符)
szExePath = 取運行目錄 () + “\” + 取執(zhí)行文件名 ()
登錄協(xié)議 (“eyuyan”, szExePath + “,0”, szExePath)
標(biāo)準(zhǔn)輸出 (, “按回車鍵結(jié)束程序!”, #換行符)
標(biāo)準(zhǔn)輸入 ()
返回 (0)
.子程序 登錄協(xié)議, , 公開, 注冊自定義windows 協(xié)議
.參數(shù) 協(xié)議頭, 文本型, , 協(xié)議頭: 比如 schemes
.參數(shù) 圖標(biāo)文件, 文本型, , 圖標(biāo)文件
.參數(shù) 協(xié)議接收程序, 文本型, , 協(xié)議接收程序
.局部變量 根HKEY, 整數(shù)型, , , 根HKEY
.局部變量 文本, 文本型
.局部變量 結(jié)果, 文本型
文本 = 取空白文本 (60)
sprintf (文本, “%sProtocol”, 協(xié)議頭)
RegCreateKey (#HKEY_CLASSES_ROOT, 協(xié)議頭, 根HKEY)
RegSetKeyValue (#HKEY_CLASSES_ROOT, 協(xié)議頭, “”, #REG_SZ, 文本, 取文本長度 (文本))
RegSetKeyValue (#HKEY_CLASSES_ROOT, 協(xié)議頭, “URL Protocol”, #REG_SZ, 協(xié)議接收程序, 取文本長度 (協(xié)議接收程序))
RegSetKeyValue (根HKEY, “DefaultIcon”, “”, #REG_SZ, 圖標(biāo)文件, 取文本長度 (圖標(biāo)文件))
RegSetKeyValue (根HKEY, “shell”, “”, #REG_SZ, “”, 0)
RegSetKeyValue (根HKEY, “shell\open”, “”, #REG_SZ, “”, 0)
結(jié)果 = 協(xié)議接收程序 + “ ” + #引號 + “%1” + #引號
RegSetKeyValue (根HKEY, “shell\open\command”, “”, #REG_SZ, 結(jié)果, 取文本長度 (結(jié)果))
RegCloseKey (根HKEY)

運行結(jié)果:

易語言注冊自定義協(xié)議Register protocol的示例分析

感謝各位的閱讀!關(guān)于“易語言注冊自定義協(xié)議Register protocol的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI