您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(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é)果:
感謝各位的閱讀!關(guān)于“易語言注冊自定義協(xié)議Register protocol的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(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)容。