[英]Is it possible to pass command-line arguments to an executable via an associated file?
我有一個程序,它將命令行參數傳遞給可執行文件的關聯文件(即關聯文件擴展名)。 可執行文件從不接收參數。 但是,如果我直接啟動可執行文件並將路徑傳遞到關聯文件和參數,那么它將接收文件路徑和參數。
我正在使用以下命令啟動關聯文件:
System.Diagnostics.Process.Start(filepath, arguments)
在此先感謝您提供的所有幫助。
-編輯
基本上,我有一個編程語言解釋器,需要接收C#程序傳遞給它的命令行參數。
如果我使用C#程序啟動代碼文件,則解釋器將啟動,但不會接收C#程序傳遞給代碼文件的命令行參數。
因此,共有三個文件:
而且,直接啟動解釋器不是一種選擇,因為它不是位於每台計算機上的相同文件路徑中。
我希望這一點更加清楚,但是我不能將源代碼發布到法律限制范圍內。
您可以嘗試 (未經測試)將文件關聯(在高級窗格上)更改為在參數中包含%2%3等(通常只包含%1)-但是,這涉及客戶端的更改,並且(更重要的是)將參數傳遞給文檔的整個想法都假定您具有相同的查看者(即,參數明智)。
IMO,一個更好的選擇是顯式啟動exe,並將doc(和其他)作為參數傳遞。
例:
接收器exe(僅顯示接收到的命令參數):
static class Program {
[System.STAThread]
static void Main(string[] args) {
System.Windows.Forms.MessageBox.Show(string.Join("|", args));
}
}
然后:創建一個“ foo.flibble”文件,右鍵單擊/打開並與我的接收器關聯; 進入文件關聯,“輕拂”,高級,“打開”,編輯並添加了%2%3%4
然后在單獨的exe中:
Process.Start(@"c:\foo.flibble", "test of args");
這表現了:
c:\foo.flibble|test|of|args
因此,這已通過文檔將多余的參數傳遞給了exe。 但是客戶端配置很多!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.