我不知道这个问题是否已被提出,但我找不到任何内容,所以如果你能找到一些东西,请引导我朝着正确的方向前进.
基本上,我想在我的当前C#程序中添加一个事件,以便在另一个指定进程("example.exe")退出时引发.那可能吗?
如果那是不可能的,那么,当通过直接路径("C:\ somefolderpaths ...\example.exe")指定的进程退出时,是否存在引发事件的方法?
要添加:我的程序不会启动进程example.exe.
我正在尝试创建一个临时文件,写入它,打印它,然后删除它.这是我的代码:
string filePathReceipt = Path.GetTempFileName();
try {
using (FileStream fs = new FileStream(filePathReceipt, FileMode.Open)) {
File.WriteAllText(filePathReceipt, dataToBeWritten.ToString());
}
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
//Printing receipt: start
ProcessStartInfo psi = new ProcessStartInfo(filePathReceipt);
psi.Verb = "PRINT";
try {
Process.Start(psi);
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
//Printing receipt: end
if (File.Exists(filePathReceipt)) {
//Delete the file after it has been printed
File.Delete(filePathReceipt);
}
Run Code Online (Sandbox Code Playgroud)
我收到异常消息说:
无法写入,因为它被另一个进程使用.
编辑#2:我发现这有效:
string filePathReceipt = AppDomain.CurrentDomain.BaseDirectory + @"receipt.txt";
虽然这会产生异常: string filePathReceipt = Path.GetTempFileName();
完整的,当前的代码:
//string filePathReceipt = …
Run Code Online (Sandbox Code Playgroud)