[C#] 使用系統預設的應用程式來開啟對應的檔案資源

  • 25607
  • 0

摘要:[C#] 使用系統預設的應用程式來開啟對應的檔案資源

Introduction

有時候我們需要使用預設的應用程式來開啟檔案(.txt)或是網路資源(ftp),

這邊參考 MSDN 做個練習。

 

Example

sample1

//使用系統預設的瀏覽器開啟網頁
        private void btnWebBrowser_Click(object sender, EventArgs e) {
            //欲開啟的網址
            string target = @"http://www.google.com.tw/";
            //當系統未安裝預設的程式來開啟相對應的資源的話,會出現例外錯誤
            try {
                System.Diagnostics.Process.Start(target);
            }
            catch (System.ComponentModel.Win32Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }

 

sample2

//指定使用 IE 開啟網頁
        private void btnOpenWebBrowser_Click(object sender, EventArgs e) {
            string target = @"http://www.google.com.tw/";
            //方法 1. 
            //System.Diagnostics.Process.Start("IExplore.exe", target);

            //方法 2.
            System.Diagnostics.ProcessStartInfo pInfo = new System.Diagnostics.ProcessStartInfo();
            pInfo.FileName = "IExplore.exe";
            pInfo.Arguments = target;
            try {
                System.Diagnostics.Process.Start(pInfo);
            }
            catch (System.ComponentModel.Win32Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }

 

sample3

//使用預設的應用程式開啟文件檔
        private void btnDefaultTxt_Click(object sender, EventArgs e) {
            //設定文件檔路徑
            string filename = Environment.CurrentDirectory + @"\Test.txt";
            //建立 ProcessStartInfo 物件
            System.Diagnostics.ProcessStartInfo pInfo = new System.Diagnostics.ProcessStartInfo();
            pInfo.FileName = filename;
            //指定是否使用系統預設關聯的應用程式來啟動。
            pInfo.UseShellExecute = true;
            System.Diagnostics.Process p = null;
            try {
                //開啟文件
                p = System.Diagnostics.Process.Start(pInfo);
            }
            catch (System.ComponentModel.Win32Exception ex) {
                MessageBox.Show(ex.Message);
            }
            finally {
                p.Close();
                p.Dispose();
            }
        }

 

sample4

//使用預設應用程式開啟 Word
        private void btnDefaultWord_Click(object sender, EventArgs e) {
            //設定 Word 檔路徑
            string filename = Environment.CurrentDirectory + @"\Test.doc";
            using (System.Diagnostics.Process p = new System.Diagnostics.Process()) {
                p.StartInfo.FileName = filename;
                p.Start();
            }            
        }      

Link

Process 類別 : 提供對本機和遠端處理序 (Process) 的存取,並讓您能夠啟動和停止本機系統處理序。

Process 成員

ProcessStartInfo 類別 : 指定啟動處理序時所使用之值的集合。

ProcessStartInfo 成員

三小俠  小弟獻醜,歡迎指教