1. 程式人生 > >C#如何判斷程式呼叫的exe已結束

C#如何判斷程式呼叫的exe已結束

二個方法:以執行系統記事本為例

方法一:這種方法會阻塞當前程序,直到執行的外部程式退出
System.Diagnostics.Process exep = System.Diagnostics.Process.Start(@"C:\Windows\Notepad.exe");
exep.WaitForExit();//關鍵,等待外部程式退出後才能往下執行
MessageBox.Show("Notepad.exe執行完畢");

方法二:為外部程序新增一個事件監視器,當退出後,獲取通知,這種方法時不會阻塞當前程序,你可以處理其它事情
System.Diagnostics.Process exep = new System.Diagnostics.Process();
exep.StartInfo.FileName = @"C:\Windows\Notepad.exe";
exep.EnableRaisingEvents = true;
exep.Exited += new EventHandler(exep_Exited);
exep.Start();

//exep_Exited事件處理程式碼,這裡外部程式退出後啟用,可以執行你要的操作
void exep_Exited(object sender, EventArgs e)
{
            MessageBox.Show("Notepad.exe執行完畢");
}

來源:http://zhidao.baidu.com/link?url=u6hNAXaLxOYEcBIViascG2fgPRorVYQyN9eULCiVyNCKihlqUGJmCBOZWtp6KS8D71tFaCcrTnjt_xmQqqNNLa

相關推薦

C#如何判斷程式呼叫exe結束

二個方法:以執行系統記事本為例 方法一:這種方法會阻塞當前程序,直到執行的外部程式退出 System.Diagnostics.Process exep = System.Diagnostics.Process.Start(@"C:\Windows\Notepad.exe"

C#使用WinExec呼叫exe程式

實現 1、新增引用 using System.Runtime.InteropServices;//呼叫外部的DLL 2、定義win32API //呼叫exe [DllImport("ke

c++判斷程式及作業系統位數

曾經在書上看到過,也被人問起過,搜尋過,為了記憶更加深刻,還是寫一篇博文吧~ 程式位數是將一段程式編譯後,程式本身的位數,比如32bit。 32bit程式在一般情況下可以在32bit和64bit的作業系統上執行。 下面分別列出獲取程式位數和作業系統位數的方法: 程式位數:

C#demo程式 呼叫自己編寫的DLL

1、新建解決方案|新建專案|類庫,名稱為DLL; 新建專案|控制檯應用程式,名稱為Load; 2、新建類庫DLL中編寫程式碼,新增一個方法: using System; using Syste

C#WinForm程式呼叫SVG,並動態在SVG圖上綁值

開始建立一個新的C #窗體應用程式,然後安裝SVG渲染庫使用NuGet包管理參考。 一、右鍵單擊解決方案資源管理器,選擇管理NuGet程式包; 二、選擇聯機,右上角搜尋框輸入SVG; 三、安裝SVG Rendering Library,完成後點關閉

Android Studio開發時遇見adb.exe結束工作

1、CMD命令視窗輸入:adb nodaemon server 。然後就會提示你哪個埠被佔用了。 2、輸入netstat -ano | findstr "5037" 。然後會彈出提示告訴你哪些程序佔用了該埠,記住非0地址的後面的數字 3、開啟工作管理員,點選“程序“,“檢視

C#程式呼叫外部exe程式(轉)

連結:https://www.cnblogs.com/BookCode/p/5329890.html 在編寫程式時經常會使用到呼叫可執行程式的情況,本文將簡單介紹C#呼叫exe的方法。在C#中,通過Process類來進行程序操作。 Process類在System.Diagnostics包中。

C# 呼叫exe程式總結

已經很久沒有更新部落格,以後關於個人或者團隊在實際中遇到的問題在這裡做個記錄。 先總結一下C#呼叫執行exe程式,簡單直接上程式碼 Thread worker = new Thread(delegate () { System.Diagno

C#程式呼叫cmd.exe執行命令

public class CmdHelper { private static string CmdPath = @"C:\Windows\System32\cmd.exe"; /// <summary

c++執行cmd指令、cmd隱藏程序不出現控制檯、結束程序、呼叫exe、CreateProcess以及WinExec的使用

需求分析: 我們在呼叫外部的exe時會彈出控制檯黑框,而我們不想在軟體中出現這個黑框,修改軟體屬性為窗體也不起作用。呼叫如何結束也是我們要解決的一個問題。 知識點: 1.如執行cmd命令 在C++中執行cmd指令的幾種方法: (1)system("指令");//會出現黑

QT中呼叫之前c++寫好的程式

核心程式已經用c++寫好了,現在在用QT編一個使用者介面,想在這個介面中呼叫這個程式,並且把結果在介面中顯示出來。 程式是用c++寫的,最後出來一個debug資料夾,裡面有一個.exe檔案,這就是要呼叫的程式,是封裝好的。有個要注意的地方是,這個exe檔案 在執行的時候要從

Linux下用C語言判斷程式是否執行

通過程式名獲得程序號,然後和當前程式程序號做對比。 int isRunning() { int ret = 0; char sCurrPid[16] = {0}; spri

C:Program FilesMSBuildMicrosoft.Cppv4.0V110Microsoft.CppCommon.targets(249,5): error MSB6006: “CL.exe退出,代碼為 -1073741515。

studio ros ram target obj .cpp .dll err x86 解決: Add this to your PATH environment variables:C:\Program Files (x86)\Microsoft Visual Studi

C#程式呼叫cmd執行命令

string str = Console.ReadLine(); System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd

C++程式呼叫mysql資料庫

1.int mysql_library_init(int argc, char **argv, char **groups) 在呼叫任何其他MySQL函式之前,呼叫此函式初始化MySQL客戶端庫。 2.void mysql_library_end(void) 完成使用庫

c#】讀取程序列表判斷程式是否已經啟動,啟動應用...

方法一: using System.Diagnostics; Process[] vProcesses = Process.GetProcesses(); foreach (Process vProcess in vProcesses) if (vProcess.

程式真機除錯顯示結束請重新開始解決方法

可能是晚上更新了下微信開發者工具的原因,下班回家開啟微信真機除錯就一直這樣,真是差點罵娘 重啟開發者工具,重新下載最新版本開發者工具,甚至重啟電腦都試了。 然並卵! 最後真的絕望了,下了箇舊版本的開發者工具,居然就好了…… 歷史版本下載開發者工具地址:https://dev

C#程式呼叫Oracle的Packages函式

1.  oracle 增加package部分 CREATE OR REPLACE PACKAGE BODY Interface_PKG AS PROCEDURE GetTableData(IN_WorkDate IN Date, IO_CURSOR OUT T_C

C# winform 判斷程式是否已經在執行 判斷程式是否已經開啟

在   Program.cs  開啟的時候在裡面修改[STAThread] static void Main() { Application.E

Python:用Python程式呼叫C/C++編譯的可執行檔案

[TODO] 用python程式呼叫C/C++編譯的可執行檔案 ************************華麗的分割線************************ step1:cppexec.cpp #include <iostream> int ad