Если я выполняю следующий код:
Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.FileName = "notepad.exe";
myProcess.EnableRaisingEvents = true;
myProcess.Exited += new System.EventHandler(Process_OnExit);
myProcess.Start();
public static void Process_OnExit(object sender, EventArgs e)
{
// Delete the file on exit
}
Событие генерируется, когда я выхожу из блокнота. Если я пробую тот же код, но я запускаю изображение вместо этого:
Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.FileName = @"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg";
myProcess.EnableRaisingEvents = true;
myProcess.Exited += new System.EventHandler(Process_OnExit);
myProcess.Start();
public static void Process_OnExit(object sender, EventArgs e)
{
// Delete the file on exit
}
Событие никогда не запускается. Это, потому что процесс, который загружает изображение, никогда не закрывается?
ОБНОВЛЕНИЕ: процессом для запуска является не всегда Изображение. Это может быть что-либо (PDF, документ слова, и т.д.). Возможно, мой подход не является правильным. Там какой-либо другой путь состоит в том, чтобы удалить файл после того, как пользователь вышел из процесса?
Спасибо
Вы используете изображение Viewer изображений по умолчанию в Windows, поскольку файл изображения не исполняется. Я изменил код, чтобы использовать XP по умолчанию, и он работал нормально.
class Program
{
static void Main(string[] args)
{
Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.FileName = @"rundll32.exe";
myProcess.EnableRaisingEvents = true;
myProcess.StartInfo.Arguments = @"C:\winnt\System32\shimgvw.dll,ImageView_Fullscreen c:\leaf.jpg";
myProcess.Exited += new System.EventHandler(Process_OnExit);
myProcess.Start();
Console.Read();
}
public static void Process_OnExit(object sender, EventArgs e)
{
Console.WriteLine("called");
Console.Read();
}
}
Событие срабатывает для меня с помощью Viewer Microsoft Photo Viewer в качестве зрителя. Возможно, вы используете зритель, который на самом деле не закрывается?