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

首頁 > 編程 > C# > 正文

C#客戶端程序調用外部程序的3種實現(xiàn)方法

2020-01-24 00:18:56
字體:
來源:轉載
供稿:網(wǎng)友

簡介

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

實現(xiàn)

第一種是利用shell32.dll,實現(xiàn)ShellExecute方法,該方法可同時打開本地程序、文件夾或者訪問網(wǎng)站,只要直接輸入路徑字符串即可, 如C:/Users/Desktop/xx.exe或者https://cn.bing.com/,可以根據(jù)返回值判斷是否調用成功 (成功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,  //要執(zhí)行的程序、要瀏覽的文件夾或者網(wǎng)址 string lpParameters, //若lpFile參數(shù)是一個可執(zhí)行程序,則此參數(shù)指定命令行參數(shù) string lpDirectory, //指定默認目錄 int nShowCmd   //若lpFile參數(shù)是一個可執(zhí)行程序,則此參數(shù)指定程序窗口的初始顯示方式(參考如下枚舉) );
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,  //顯示一個窗口,同時令其進入活動狀態(tài) SW_MINIMIZE = 6, SW_SHOWMINNOACTIVE = 7, SW_SHOWNA = 8, SW_RESTORE = 9, SW_SHOWDEFAULT = 10, SW_MAX = 10}

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

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

第三種方法是利用Process類,Process類具體應用可以看類的定義,這里只實現(xiàn)它打開文件和訪問網(wǎng)站的用法,(其他使用方法請參考 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>

具體實現(xiàn)為

 //調用程序    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); }//訪問網(wǎng)站try{  Process.Start("iexplore.exe", pathStr);}  catch (Exception ex){  MessageBox.Show(ex.Message);}

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

Demo下載:點擊這里

總結

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 正蓝旗| 吉安市| 和田县| 沧州市| 承德市| 阳曲县| 阳信县| 苍梧县| 都兰县| 股票| 徐水县| 贺兰县| 临朐县| 莱芜市| 淮南市| 油尖旺区| 宁武县| 乡城县| 蛟河市| 荣昌县| 临汾市| 香河县| 山阴县| 额尔古纳市| 孟津县| 于都县| 华池县| 金坛市| 长治县| 鄂温| 玛沁县| 临武县| 黄平县| 应城市| 河南省| 临邑县| 隆回县| 垫江县| 连云港市| 高淳县| 满城县|