C#一個讓mpv能夠使用網址呼叫的工具
首先我先說說原理
我們需要在登入表 註冊 通用協議 讓電腦能明白 使用這個協議要呼叫甚麼程式
我們這邊使用已我製作的Bat檔 來當範例
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@echo off
REM 獲取當前腳本的目錄
set "SCRIPT_DIR=%~dp0"
REM 設置註冊表條目
reg add "HKCR\mpvjbk" /ve /d "URL:mpvJBK Protocol" /f
reg add "HKCR\mpvjbk" /v "URL Protocol" /t REG_SZ /d "" /f
REM reg add "HKCR\mpvjbk\DefaultIcon" /ve /d "\"%SCRIPT_DIR%YourApplicationIcon.ico\"" /f
reg add "HKCR\mpvjbk\shell\open\command" /ve /d "\"%SCRIPT_DIR%mpvjbk.exe\" \"%%1\"" /f
echo 安裝完成!
pause
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我的程式叫做mkvjbk使用這個BAT檔他會抓取我們BAT檔目錄的位置 來註冊 登入檔 並調用此目錄下的我的程式mkvjbk
然後再看看C# 的原始碼
然後再看看C# 的原始碼
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
using System.Diagnostics;
namespace mpvjbk
{
internal class Program
{
static void Main(string[] args)
{
if (args.Length > 0)
{
string protocol = args[0];
Uri uri = new Uri(protocol);
string queryString = uri.Query;
var parameters = System.Web.HttpUtility.ParseQueryString(queryString);
string code = parameters["code"];
if (!string.IsNullOrEmpty(code))
mpv(code);
}
}
public static void mpv(string code01)
{
string Exe = "mpv";
string fileName = "mpv_path.config";
string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName);
if (File.Exists(filePath))
{
string mpv_path = File.ReadAllText(filePath);
if (File.Exists(mpv_path))
Exe = mpv_path;
}
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = Exe,//使用程式
Arguments = code01,//使用的參數
UseShellExecute = false,
CreateNoWindow = true,
};
using (Process process = new Process())
{
process.StartInfo = startInfo;
process.Start();
}
}
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一個非常簡短 的程式碼 我先來說說 首先 我們的自定義呼叫網址 是mkvjbk:/?code="mpv指令"
我們使用Uri 解析網址 然後再用讀取其中的code參數 然後使用code參數去呼叫mpv
通常要調用mpv 要註冊 環境變數 不過我這邊新增了 可以自定義mpv 路徑 我搜尋了我們mpvjbk目錄下的 mpv_path.config 檔案 讀取裡面的mpv位置 這樣就可以不用定義mpv路徑了
基本上就是這樣的檔案...
再來教大家要完全刪除我的程式 其實只要清除 登入檔就可以了
下面是清除登入檔的bat
我們使用Uri 解析網址 然後再用讀取其中的code參數 然後使用code參數去呼叫mpv
通常要調用mpv 要註冊 環境變數 不過我這邊新增了 可以自定義mpv 路徑 我搜尋了我們mpvjbk目錄下的 mpv_path.config 檔案 讀取裡面的mpv位置 這樣就可以不用定義mpv路徑了
基本上就是這樣的檔案...
再來教大家要完全刪除我的程式 其實只要清除 登入檔就可以了
下面是清除登入檔的bat
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@echo off
REM 移除註冊表
reg delete HKEY_CLASSES_ROOT\mpvjbk /f
echo 卸載完成!
pause
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
最後附上下載網址
https://cdn.discordapp.com/attachments/1243073156776726580/1243073181837824030/mpvjbk.zip
這個網址沒有令牌 令牌需要把這串網址丟到discord裡面 discord會自己幫你獲得最新下載網址
這個網址沒有令牌 令牌需要把這串網址丟到discord裡面 discord會自己幫你獲得最新下載網址
留言
張貼留言