[英]How to reopen a file immediately after it closes via my C# application
我沒有想法,找不到任何參考,所以在這里...我需要保持一個與我的c#項目始終在后台運行無關的輔助應用程序。 因此,如果此輔助應用程序崩潰或其他人手動將其關閉,它將通過我的c#應用程序自動重新啟動。
我不知道如何完成此操作,我的意思是檢查此應用程序是否因我的C#應用程序外部關閉。
任何幫助將不勝感激。 提前致謝。
下面的代碼在C#中,位於WinForm中。
private void Form1_Load(object sender, EventArgs e)
{
Process p = Process.GetProcessesByName("Notepad")[0];
p.EnableRaisingEvents = true;
p.Exited += new EventHandler(p_Exited);
}
void p_Exited(object sender, EventArgs e)
{
MessageBox.Show("Exit");
}
它使用名稱記事本查找一個進程,並檢索到它的第一個實例。 它將EnableRaisingEvents設置為true並掛接到Exited事件。 每當記事本關閉時,都會顯示警報。
基於此邏輯,您可以構建自己的應用程序。
作為解決方案,您可以使用Windows服務來調用始終運行的應用程序。
您可以使該服務從應用中捕獲錯誤返回代碼,然后根據錯誤重新啟動它。
您可以使用vb.net中的進程類繼續檢查進程是否正在運行
對於每個p作為Process in Process.GetProcessesByName(“ communicator”)ShowWindow(p.MainWindowHandle,SHOW_WINDOW.SW_NORMAL)下一個p
如果您想要的進程不在列表中,則可以再次啟動它。 阿什什·庫瑪(Ashish kumar)
最簡單的方法是運行計時器,在滴答事件中,使用-
if (Process.GetProcessesByName("communicator").Count() == 0)
{
Process.Start("communicator.exe");
}
您可以使用FileSystemWatcher來監視由其他應用程序修改的文件。
FileSystemWatcher具有諸如Changed,Created,Renamed,Delete之類的事件,可以訂閱這些事件來跟蹤文件更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.