2008-09-22 19 views

回答

8

这将是PInvoke的城市......

你需要的PInvoke以下API在User32.dll中

的Win32 :: GetForegroundWindow ()in返回当前活动窗口的HWND。

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

的Win32 :: GetWindowThreadProcessId(HWND,LPDWORD)返回给定的HWND

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

的PID在C#

Process.GetProcessByID()采用PID来创建C#过程对象

processInstance.MainModule返回一个附有FileVersionInfo的ProcessModule。

+0

你能举一个如何使用的例子吗? – Danpe 2011-10-11 20:40:04

0

你能澄清你的问题?你的意思是你想要一个运行的程序,它会告诉你有关活动窗口中的程序的数据?或者你希望你的程序报告自己的版本?

你要找的信息是System.Reflection.Assembly。 (请参阅链接中的代码示例。)

如何从外部程序获取程序集?这一个我不知道......