这只是我的一个侧面项目,我尝试根据用户当前正在查看的程序更改鼠标的颜色。例如,如果是Microsoft边缘,颜色将变为蓝色;如果是Google Chrome,则颜色将变为黄色。有没有办法找出用户当前正在查看的程序?
答案 0 :(得分:1)
您可以将GetForegroundWindow
与Process.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;
}
}