私有協議為 coffeeclass://xxxxxx.mp4
注冊表如下
Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\coffeeclass]
@="coffeeClass Protocol"
"URL Protocol"=""[HKEY_CLASSES_ROOT\coffeeclass\DefaultIcon]
@="D:\\Program Files (x86)\\coffeedrm\\coffeedrmPlayer1.2.8.27en\\bin\\coffeecoffeedrmPlayer.exe"[HKEY_CLASSES_ROOT\coffeeclass\shell]
@=""[HKEY_CLASSES_ROOT\coffeeclass\shell\open]
@=""[HKEY_CLASSES_ROOT\coffeeclass\shell\open\command]
@="\"D:\\Program Files (x86)\\coffeedrm\\coffeedrmPlayer1.2.8.27en\\bin\\coffeecoffeedrmPlayer.exe\" \"%1\" "
以上代碼保存為 .reg文件雙擊安裝就可以修改注冊表
以下是nsis代碼,原理一樣
WriteRegStr HKCR "coffeeClass" "" "coffeeClass Protocol"
WriteRegStr HKCR "coffeeClass" "URL Protocol" ""
WriteRegStr HKCR "coffeeClass\DefaultIcon" "" "$INSTDIR\bin\coffeeClassPlayer.exe,0"
WriteRegStr HKCR "coffeeClass\shell" "" ""
WriteRegStr HKCR "coffeeClass\shell\open" "" ""
WriteRegStr HKCR "coffeeClass\shell\open\command" "" '"$INSTDIR\bin\coffeeClassPlayer.exe" "%1"'
調用exe的時候,協議的路徑,會以參數(代碼中的%1)的形式傳遞給 exe的main函數。
另外注意單例模式的應用,需要將參數發送給已經運行的exe。