簡體   English   中英

如何通過C#應用程序關閉文件后立即重新打開文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM