博主最近要写一个程序,需要获取windows中活动窗口的进程及程序路径
需要添加引用System.Windows.Forms
代码如下
using System;
using System.Diagnostics;
using System.Threading;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace GetActiveWindowProcess //获取活动窗口进程信息
{
class Program
{
[DllImport("User32.dll")]
public static extern IntPtr GetForegroundWindow(); //获取活动窗口句柄
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID); //获取线程ID
static void Main(string[] args)
{
Thread.Sleep(3000); //睡眠3s,用来选择活动窗口
IntPtr hWnd = GetForegroundWindow(); //获取活动窗口句柄
int calcID = 0; //进程ID
int calcTD = 0; //线程ID
calcTD = GetWindowThreadProcessId(hWnd, out calcID);
Process myProcess = Process.GetProcessById(calcID);
MessageBox.Show("进程名:" + myProcess.ProcessName + "\n" + "进程ID:" + calcID + "\n" + "程序路径:" + myProcess.MainModule.FileName); //在MessageBox中显示获取的信息
Console.ReadKey();
}
}
}