Ich versuche, Chrom aus meiner Anwendung zu schließen.WM_CLOSE Nachricht scheint nicht zu schließen chrom
Ich verwende die folgende Methode:
public class CloseChrome
{
static int WM_CLOSE = 0x0010;
static int WM_QUIT = 0x0012;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
static public void closeCrome()
{
var process = Process.GetProcesses();
foreach (var item in process)
{
if (item.ProcessName.Contains("chrome"))
{
//item.Kill();
int ret = SendMessage(item.Handle, WM_CLOSE, 0, 0);
Console.WriteLine("Chrome Reply: " + a);
}
}
}
}
das Kill-Methode verwenden tötet den Chrom-Prozess, aber wenn ich die Meldung von WM_CLOSE nichts senden geschieht, obwohl der Rückgabewert 0 von nachrichts ist. Mache ich etwas falsch ist Chrom nur ignorieren meine Anfrage?
Haben Sie versucht, nur 'item.CloseMainWindow();' aufzurufen, das ist dasselbe wie das Senden von WM_CLOSE. –
Danke. Das scheint zu funktionieren, aber warum funktioniert WM_CLOSE nicht – SamFisher83
Ich weiß es nicht. Ich kann nur spekulieren, dass "item.Handle" nicht der Griff zum Hauptfenster ist. Sie könnten auch versuchen, PostMessage statt SendMessage zu verwenden, aber ich weiß nicht, ob das auch funktioniert. –