2008-09-22 6 views

Répondre

8

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.

+0

Pouvez-vous donner un exemple sur la façon d'utiliser? – Danpe

0

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 ...

Questions connexes