一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C#客戶端程序調用外部程序的3種實現方法

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

2022-02-22 14:21_AlexYIN C#

這篇文章主要給大家介紹了關于C#客戶端程序調用外部程序的3種實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。

簡介

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

實現

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

?
1
2
3
4
Window wnd = Window.GetWindow(this); //獲取當前窗口
var wih = new WindowInteropHelper(wnd); //該類支持獲取hWnd
IntPtr hWnd = wih.Handle;    //獲取窗口句柄
var result = ShellExecute(hWnd, "open", "需要打開的路徑如C:\Users\Desktop\xx.exe", null, null, (int)ShowWindowCommands.SW_SHOW);
?
1
2
3
4
5
6
7
8
[DllImport("shell32.dll")]
public static extern IntPtr ShellExecute(IntPtr hwnd, //窗口句柄
 string lpOperation, //指定要進行的操作
 string lpFile,  //要執行的程序、要瀏覽的文件夾或者網址
 string lpParameters, //若lpFile參數是一個可執行程序,則此參數指定命令行參數
 string lpDirectory, //指定默認目錄
 int nShowCmd   //若lpFile參數是一個可執行程序,則此參數指定程序窗口的初始顯示方式(參考如下枚舉)
 );
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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表示出現錯誤)

?
1
var result = WinExec(pathStr, (int)ShowWindowCommands.SW_SHOW);
?
1
2
[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 ),調用失敗會拋出異常

?
1
2
3
4
5
6
/// <devdoc>
/// <para>
///  Provides access to local and remote
///  processes. Enables you to start and stop system processes.
/// </para>
/// </devdoc>

具體實現為

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//調用程序  
 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下載:點擊這里

總結

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

原文鏈接:http://www.cnblogs.com/y-yp/p/8782641.html

延伸 · 閱讀

精彩推薦
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
主站蜘蛛池模板: www.福利| 国产精品午夜国产小视频 | 我和么公的秘密小说免费 | 任我行视频在线观看国语 | 美女口述又粗又大感觉 | 大学生情侣在线 | 欧美一区不卡二区不卡三区 | 男人晚上适合偷偷看的污污 | 女性全身裸露无遮挡 | 99精品视频在线观看re | 国产美女在线一区二区三区 | 2019中文字幕 | 国产aaa毛片 | 出轨娇妻的呻吟1—9 | 天堂在线观看中文字幕 | 国产精品合集一区二区 | 欧美三级做爰全过程 | 好男人好资源在线观看 | poren18美女| 跪在老师脚下吃丝袜脚 | 私人家庭影院5577 | 97porm自拍视频区原创 | 91在线精品国产丝袜超清 | se婷婷| 国产一区国产二区国产三区 | 国产成人愉拍免费视频 | 日本不卡在线观看免费v | 草莓香蕉绿巨人丝瓜榴莲18 | 青青草综合网 | 亚洲成在人线久久综合 | 男女男精品网站免费观看 | 大桥未久一区二区 | 欧美添下面视频免费观看 | 日本在线你懂的 | 欧美一级片免费看 | 跪趴好紧h | 精品久久久久久久国产潘金莲 | 欧美brazzers| 波多野结衣xxxxx在线播放 | 国产高清在线观看 | 成人精品一区二区三区中文字幕 |