Ich habe versucht, aktuelle aktive Anwendung Name (oder Prozessname), aber in einigen Anwendungen wie Microsoft Edge ist das Ergebnis ApplicationFrameHost. Gibt es eine Möglichkeit, den Anwendungsnamen wie im Task-Manager zu erhalten?Holen Sie sich aktuelle aktive Anwendung Name in Windows 10 mit C#
Meine eigentliche Code:
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
[DllImport("user32.dll")]
public static extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, out uint processId);
private string GetActiveProcess()
{
const int nChars = 256;
uint processId;
StringBuilder Buff = new StringBuilder(nChars);
IntPtr handle = GetForegroundWindow();
if (GetWindowText(handle, Buff, nChars) > 0)
{
GetWindowThreadProcessId(handle, out processId);
return Process.GetProcessById((int)processId).ProcessName;
}
return null;
}
Dann bitte eine Antwort mit der Lösung erstellen - Sie können es sich auch nicht annehmen können. Setzen Sie nicht "Gelöst" in den Titel - die akzeptierte Antwort wird zeigen, dass es gelöst ist. –
Victor, wenn Sie möchten, können Sie die Antwort kopieren, die ich angegeben habe (klicken Sie auf Bearbeiten, alle auswählen) und fügen Sie sie als Ihre eigene Antwort ein. Ich werde dann meine löschen. Sie können dann Ihre eigene Antwort selbst akzeptieren, und Sie können sogar Upvotes dafür bekommen. – halfer