Я ищу способ закрыть окно по имени класса. Поскольку у класса Process нет чего-то вроде GetProcessByClassName, я искал способ сделать это с помощью Win32 API. Я написал следующий код:
public partial class Form1 : Form
{
[DllImport("user32", CharSet = CharSet.Unicode)]
public static extern
IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("kernel32", CharSet = CharSet.Auto,SetLastError = true)]
public static extern
bool CloseHandle(IntPtr handle);
private void button1_Click(object sender, EventArgs e)
{
IntPtr handle = FindWindow("Notepad", null);
if (handle != IntPtr.Zero)
{
bool hresult = CloseHandle(handle);
}
else
{
MessageBox.Show("app is not running..");
}
}
}
Однако, когда я делаю CloseHandle (), он выдает следующую ошибку:
SEHEExeption был не обработан: внешний компонент выдал исключение.
Понятия не имею, как это исправить.