CloseHandle() gibt eine Ausnahme: Externe Komponente hat eine Ausnahme geworfen

Ich bin auf der Suche nach einem Weg, um ein Fenster zu schließen, die durch die Klasse name. Da die Process-Klasse nicht über so etwas wie GetProcessByClassName, suchte ich nach einem Weg dies zu tun ist mithilfe der Win32-API. Ich habe geschrieben das folgenden code:

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..");
        }
    }
}

Allerdings, wenn ich tun, CloseHandle(), es gibt die folgende Fehlermeldung:

SEHEExeption war unhandle:Externe Komponente hat eine Ausnahme geworfen.

Habe ich keine Idee, wie dieses Problem zu beheben.

InformationsquelleAutor Jack | 2011-12-31
Schreibe einen Kommentar