Par exemple, si je travaille sur Visual Studio 2008, je veux les valeurs devenv et 2008 ou 9.Comment puis-je déterminer le nom du processus ciblé en cours et la version en C#
Le numéro de version est très important .. .
Par exemple, si je travaille sur Visual Studio 2008, je veux les valeurs devenv et 2008 ou 9.Comment puis-je déterminer le nom du processus ciblé en cours et la version en C#
Le numéro de version est très important .. .
Cela va être la ville PInvoke ...
Vous devez Pinvoke les années API suivantes dans User32.dll
Win32 :: GetForegroundWindow() retourne le HWND de la fenêtre actuellement active.
/// <summary>
/// The GetForegroundWindow function returns a handle to the foreground window.
/// </summary>
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
Win32 :: GetWindowThreadProcessId (HWND, LPDWORD) renvoie le PID d'une donnée HWND
[DllImport("user32.dll", SetLastError=true)]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
En C#
Process.GetProcessByID() prend le PID pour créer un objet de processus C# ProcessInstance.MainModule renvoie un ProcessModule associé à FileVersionInfo.
Ce project montre les deux fonctions dont vous avez besoin: EnumWindows et GetWindowtext
Pouvez-vous préciser votre question? Voulez-vous dire que vous voulez un programme en cours d'exécution, qui vous dira des données sur le programme dans la fenêtre active? Ou que vous voulez que votre programme signale sa propre version? Ce que vous cherchez à obtenir l'information est System.Reflection.Assembly. (Voir les exemples de code dans le lien.)
Comment obtenir l'assembly à partir d'un programme externe? Ce que je ne suis pas sûr ...
Pouvez-vous donner un exemple sur la façon d'utiliser? – Danpe