Исследуйте низкоуровневые вызовы Win API, они могут предложить решение для вас.
Например, использование Spy ++ может выявить имена окон, которые затем можно искать и закрывать.Затем, используя вызовы WINDOWS API ...
using System.Runtime.InteropServices;
// Get a handle to an application window.
[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
private static extern IntPtr FindWindow(string lpClassName,
string lpWindowName);
// Activate an application window.
[DllImport("USER32.DLL")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
Затем в фоновом потоке напишите процесс, который ищет эти окна и закрывает их.
//Some PsuedoCode, note loop should have a cancel condition!
while (true)
{
//Get a handle.
handle = FindWindow(windowClassName, windowName);
//We found the window, close it
if (handle != IntPtr.Zero)
{
//Send Close Command
SetForegroundWindow(handle);
SendKeys.SendWait("%{F4}");
}
//Wait 200ms seconds before trying again
System.Threading.Thread.Sleep(200);
}
Возможно, вы сможетевыполните какое-нибудь хакерское решение, подобное этому, в своем приложении.
Обратите внимание, вам придется хранить windowClassName (s) и windowName (s) в каком-либо файле конфигурации или жестко кодировать их в своем приложении.