国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#客戶端程序調用外部程序的3種實現方法

2019-10-29 21:05:59
字體:
來源:轉載
供稿:網友

簡介

大家都知道,當我們用C#來開發客戶端程序的時候,總會不可避免的需要調用外部程序或者訪問網站,本篇博客介紹了三種調用外部應用的方法,供參考,下面話不多說了,來一起看看詳細的介紹吧。

實現

第一種是利用shell32.dll,實現ShellExecute方法,該方法可同時打開本地程序、文件夾或者訪問網站,只要直接輸入路徑字符串即可, 如C:/Users/Desktop/xx.exe或者https://cn.bing.com/,可以根據返回值判斷是否調用成功 (成功0x00000002a , 失敗0x00000002)

Window wnd = Window.GetWindow(this); //獲取當前窗口var wih = new WindowInteropHelper(wnd); //該類支持獲取hWndIntPtr hWnd = wih.Handle;    //獲取窗口句柄var result = ShellExecute(hWnd, "open", "需要打開的路徑如C:/Users/Desktop/xx.exe", null, null, (int)ShowWindowCommands.SW_SHOW);
[DllImport("shell32.dll")]public static extern IntPtr ShellExecute(IntPtr hwnd, //窗口句柄 string lpOperation, //指定要進行的操作 string lpFile,  //要執行的程序、要瀏覽的文件夾或者網址 string lpParameters, //若lpFile參數是一個可執行程序,則此參數指定命令行參數 string lpDirectory, //指定默認目錄 int nShowCmd   //若lpFile參數是一個可執行程序,則此參數指定程序窗口的初始顯示方式(參考如下枚舉) );
public enum ShowWindowCommands : int{ SW_HIDE = 0, SW_SHOWNORMAL = 1, SW_NORMAL = 1, SW_SHOWMINIMIZED = 2, SW_SHOWMAXIMIZED = 3, SW_MAXIMIZE = 3, SW_SHOWNOACTIVATE = 4, SW_SHOW = 5,  //顯示一個窗口,同時令其進入活動狀態 SW_MINIMIZE = 6, SW_SHOWMINNOACTIVE = 7, SW_SHOWNA = 8, SW_RESTORE = 9, SW_SHOWDEFAULT = 10, SW_MAX = 10}

第二種是利用kernel32.dll,實現WinExec方法,該方法僅能打開本地程序,可以根據返回值判斷是否調用成功(<32表示出現錯誤)

var result = WinExec(pathStr, (int)ShowWindowCommands.SW_SHOW);
[DllImport("kernel32.dll")]public static extern int WinExec(string programPath, int operType);

第三種方法是利用Process類,Process類具體應用可以看類的定義,這里只實現它打開文件和訪問網站的用法,(其他使用方法請參考 https://msdn.microsoft.com/en-us/library/system.diagnostics.process(v=vs.110).aspx ),調用失敗會拋出異常

 /// <devdoc> /// <para> ///  Provides access to local and remote ///  processes. Enables you to start and stop system processes. /// </para> /// </devdoc>

具體實現為

 //調用程序    Process process = new Process();try {  process.StartInfo.UseShellExecute = false;  process.StartInfo.FileName = pathStr;  process.StartInfo.CreateNoWindow = true;  process.Start(); }  catch (Exception ex) {  MessageBox.Show(ex.Message); }//訪問網站try{  Process.Start("iexplore.exe", pathStr);}  catch (Exception ex){  MessageBox.Show(ex.Message);}

可以看出來,C#調用外部程序還是比較容易的~    有補充的地方歡迎留言,謝謝

Demo下載:點擊這里

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肇源县| 上思县| 南江县| 竹北市| 宿迁市| 韶山市| 德庆县| 罗源县| 临泽县| 盖州市| 衡山县| 汉寿县| 双流县| 湖南省| 乐山市| 伊吾县| 平山县| 赤水市| 建水县| 浙江省| 长顺县| 上虞市| 年辖:市辖区| 太和县| 和林格尔县| 城口县| 甘肃省| 晋城| 郯城县| 灵川县| 莫力| 吕梁市| 罗定市| 长沙县| 九江县| 沙雅县| 麻阳| 五原县| 荣昌县| 嘉峪关市| 安阳市|