有没有办法检测用户当前在Windows操作系统中查看的程序?

时间:2018-03-06 07:03:46

标签: c# windows

这只是我的一个侧面项目,我尝试根据用户当前正在查看的程序更改鼠标的颜色。例如,如果是Microsoft边缘,颜色将变为蓝色;如果是Google Chrome,则颜色将变为黄色。有没有办法找出用户当前正在查看的程序?

1 个答案:

答案 0 :(得分:1)

您可以将GetForegroundWindowProcess.GetProcesses

结合使用

GetForegroundWindow功能

  

检索前景窗口的句柄(用于显示窗口的窗口)   用户目前正在工作)。系统分配稍高   创建前景窗口的线程的优先级比它的优先级   到其他线程。

Process.GetProcesses方法()

  

为本地的每个流程资源创建一个新的Process组件   计算机。

示例

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
private static extern IntPtr GetForegroundWindow();

... 

// get the active window
var activatedHandle = GetForegroundWindow();

var processes = Process.GetProcesses();

// compare with the processes  
foreach (var proc in processes)
{

    if(activatedHandle == proc.MainWindowHandle)
    {
        // you now have the process name
        string processName = proc.ProcessName;

        return processName;
    }
}