Wie kann ich die aktuellen fokussierten Prozessnamen und die Version in C # bestimmen
Frage
Zum Beispiel, wenn ich auf Visual Studio 2008 gerade arbeite, mag ich die Werte devenv und 2008 oder 9.
Die Versionsnummer ist sehr wichtig ...
Lösung
Das wird PInvoke Stadt sein ...
Sie müssen die folgenden API in User32.dll PInvoke
Win32 :: GetForegroundWindow () das HWND des gerade aktiven Fenster in kehrt zurück.
/// <summary>
/// The GetForegroundWindow function returns a handle to the foreground window.
/// </summary>
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
Win32 :: GetWindowThreadProcessId (HWND, LPDWORD) gibt die PID eines gegebenen HWND
[DllImport("user32.dll", SetLastError=true)]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
In C #
Process.GetProcessByID () nimmt die PID ein C # Prozess-Objekt zu erstellen
processInstance.MainModule gibt einen Process mit Fileversioninfo beigefügt.
Andere Tipps
Das Projekt die beiden Funktionen zeigt, was Sie brauchen: EnumWindows und GetWindowText
Können Sie Ihre Frage klären? Meinen Sie damit Sie ein Programm laufen soll, mit dem Sie Daten über das Programm im aktiven Fenster wird Ihnen sagen? Oder dass Sie Ihr Programm will seine eigene Version berichten aus?
Was Sie suchen die Informationen zu erhalten oder so ist