C#可以用Process.Start()呼叫外部執行檔(.exe),但在程式綁定特定軟體的作法很不靈活,使用者也不能更換自己習慣的瀏覽器。
既然這樣,不如使用微軟的預設程式去開啟,讓作業系統去決定要用哪個軟體開啟檔案。
在網路上找到很多寫法在Win10可行,但在Win11會遇到下面的問題
System.ComponentModel.Win32Exception (0x80004005): 沒有任何應用程式與此操作的指定檔案有關聯。
於 System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
於 System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
以下是我最後找到的方法,在Win10/11都可行,讚啦!
string fullpath = @"C:\\Users\\USER\\Pictures\\image.jpg"; //your picture.
string explorer_path = Path.Combine(Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System)).FullName, "explorer.exe");
ProcessStartInfo startInfo = new ProcessStartInfo(explorer_path, fullpath);
Process.Start(startInfo);
發佈留言