Domanda

Ad esempio, se lavoro su Visual Studio 2008, desidero i valori devenv e 2008 o 9.

Il numero di versione è molto importante ...

È stato utile?

Soluzione

Questa sarà la città di PInvoke ...

Dovrai PInvoke le seguenti API in User32.dll

Win32 :: GetForegroundWindow () in restituisce l'HWND della finestra attualmente attiva.

/// <summary>
/// The GetForegroundWindow function returns a handle to the foreground window.
/// </summary>
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();

Win32 :: GetWindowThreadProcessId (HWND, LPDWORD) restituisce il PID di un determinato HWND

[DllImport("user32.dll", SetLastError=true)]
static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);

In C #

Process.GetProcessByID () accetta il PID per creare un oggetto processo C #

processInstance.MainModule restituisce un ProcessModule con FileVersionInfo allegato.

Altri suggerimenti

Questo progetto dimostra le due funzioni necessarie: EnumWindows e GetWindowtext

Puoi chiarire la tua domanda? Vuoi dire che vuoi un programma in esecuzione, che ti dirà i dati sul programma nella finestra attiva? O che desideri che il tuo programma riporti la propria versione?

Quello che stai cercando per ottenere le informazioni in entrambi i modi è System.Reflection.Assembly . (Vedi esempi di codice nel link.)

Come ottenere l'assembly da un programma esterno? Quello di cui non sono sicuro ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top