würde ich empfehlen, Importieren und definieren die folgenden:
[System.Runtime.InteropServices.DllImportAttribute("user32.dll")]
public static extern bool PostMessage(IntPtr handleWnd, UInt32 Msg, Int32 wParam, Int32 lParam);
const int WM_ENDSESSION = 0x0016,
WM_TRUE = 0x1,
WM_FALSE = 0x0;
dann durch 0x1 oder 0x0 senden darstellt wahr oder falsch als wParam Nachricht.
in Ihrem Code So werden Sie verwenden:
PostMessage(HandleToSendTo, WM_ENDSESSION, WM_TRUE, 0);
Wo HandleToSendTo das Fenster-Handle des Fensters ist es, Ihnen die Nachricht senden möchten.
bearbeiten
Um die Fenster handhaben, wenn Sie es nicht wissen, ich gehe davon aus, dass Sie sie den Titel oder den Namen wissen.Wenn ja, können Sie diese verwenden:
[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
public static extern int FindWindowEx(int hwndParent, int hwndEnfant, int lpClasse, string lpTitre);
Welche über weitere Informationen können in this question.
finden Oder vielleicht
Ich weiß nicht, ob dies ein ähnlicher Griff ist, bezweifle ich, es, aber jemand könnte mich wissen lassen, wenn es ist, aber Sie können ein Prozess-Handle erhalten, was bedeutet, dass Sie den Prozess mit Process.GetProcessesByName ("MyAppName") abrufen konnten; obwohl nicht darauf verlassen, wie ich nicht denke, dass es den Griff bekommen wird, nach dem du suchst. Nur ein Vorschlag.
Ich denke, es gehört auf stackoverflow.com –
Irgendwelche Glück damit? – ThePower