我在.NET應用程序中執行Process。以編程方式禁用Windows錯誤報告(AppCrash)對話框
Process process = new Process();
....
process.StartInfo.UseShellExecute = false;
process.StartInfo.ErrorDialog = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
....
process.Start();
的問題是,可執行文件有時會崩潰,這是確定的,但dialg彈出,防止應用程序的APPCRASH繼續執行,直到我點擊關閉。
我知道我可以設置HKLM\Software\Microsoft\Windows\Windows Error Reporting\
值禁用,以真 - msdn.microsoft.com/en-us/library/bb513638%28v=vs.85%29.aspx
但是有沒有一種方式,我可以在代碼中做到這一點?
編輯:
KMP發佈了一個偉大的答案,但我仍然在尋找如何實現與本地應用程序一樣。
謝謝,但我不能改變崩潰的過程。可執行文件是本地代碼。該應用程序是gswin64c.exe可以在這個存檔中找到:http://downloads.ghostscript.com/public/gs906w64.exe – user1615362
因此,任何想法如何可以注入本機應用程序? – user1615362
工程很棒。在處理託管應用程序時可能不需要注入。你可以創建一個包裝器應用程序,它將設置這些標誌,然後加載真正的應用程序集(而不是新進程)並使用反射來執行Program.Main(),但這只是一個想法,我還沒有測試過。 – Ondra