C#-关闭其他进程的消息框

时间:2019-04-17 09:39:40

标签: c# multithreading process messagebox user32

我有一个多线程应用程序,它会触发很多类似的进程。

有时其中一个进程抛出一个错误的MessageBox,这对整个应用程序产生了负面影响。

我希望能够探出此MessageBox并向其发送OK / CLOSE按钮命令。

最大的问题是MessageBox / Window没有标题,所以我不能使用它:

IntPtr window = FindWindow(null, "");
while (window != IntPtr.Zero)
{
      Console.WriteLine("Window found, closing...");

      //use some function to close the window    
      SendMessage((int)window, WM_SYSCOMMAND, SC_CLOSE, 0);

      window = IntPtr.Zero;
}

如何调整此代码,或者如何使用类似的方法找到没有标题的Window,然后将其关闭?

我需要遍历整个过程吗?请记住,这些进程具有相似的名称,因此即使我可以使用特定的名称获得所有进程,但在查找导致该问题的进程时还是会遇到困难...

PS:我无法编辑应用程序的源代码,我现在必须制作一个小的FIX。

0 个答案:

没有答案