我想要求助於從關聯的應用程序中打開來自c#應用程序的文件。 我嘗試這樣做:打開文件和關聯的應用程序
ProcessStartInfo pi = new ProcessStartInfo(file);
pi.Arguments = Path.GetFileName(file);
pi.UseShellExecute = true;
pi.WorkingDirectory = Path.GetDirectoryName(file);
pi.FileName = file;
pi.Verb = "OPEN";
Process.Start(pi);
或本:
Process.Start(file);
其中串file
在這兩個例子代表完整路徑文件試圖打開。現在,除了使用ACDSee應用程序的(jpg)圖像之外,一切運行良好。 Irfanview協會運作良好,MS辦公文件也是如此。試圖打開與acdsee相關的jpg圖像後,它只運行通知區域中的acdsee,並且不打開該文件。
我發現,在註冊表中CLASSES_ROOT爲* .jpg圖像,有一個ACDSee.JPG值相關聯的應用程序,此註冊表項下存在的殼 - >打開 - >命令路徑:
"C:\Program Files\ACD Systems\ACDSee\ACDSee.exe" /dde
和我的事情,這個怪異的/dde
是什麼原因,爲什麼我不能打開該文件。我意識到,在同一章鍵殼 - >打開存在具有值[open("%1")]
對於伊爾視圖或其它檢查應用中的一些DDEExec
鍵輸入,則沒有ddeexec,只是正常的命令等
"C:\Program Files (x86)\IrfanView\i_view32.exe" "%1"
可以從命令行swaping%1文件名
後運行,但我不能運行在命令行ACDSEE進入命令:(
所以我的問題是,我該怎麼設置ProcessStartInfo
反對確保它將運行所有文件,因爲它將在瀏覽器中通過doubleclick標準和這個DDEExec
?是否還有其他類似DDEExec
,我知道嗎? 感謝和抱歉我的EN
他似乎已經用'Process.Start(file);'試過了。 – 2012-04-16 12:43:00
「所以我的問題是,我怎樣才能設置ProcessStartInfo對象,以確保它可以像在瀏覽器中一樣運行所有文件,雙擊」:答案就是這樣。他使用命令行參數,無論如何......但不是直接調用,就像我看到的那樣。 – Tigran 2012-04-16 12:45:52
@Tigran Mario是正確的,就像我寫的那樣,我嘗試了你的建議作爲第二個例子......我想問問我的問題,顯然這不是正確的溶劑,因爲jpg沒有打開! – Zavael 2012-04-16 12:47:39