确定Cisco Webex客户端是否在用户计算机上运行的最佳方法是什么?目前,我正在检查这样一个正在运行的进程:
public static bool IsWebExClientRunning()
{
// webex process name started from internet browser (could change). Just use Process Explorer to find the sub process name.
// alternate name - CiscoWebexWebService
Process[] pname = Process.GetProcessesByName("atmgr");
return pname.Length > 0;
}
虽然这种方法有效,但可能会有一个实例,思科推出更新客户端的更新,如果我们正在寻找特定的进程名称,则更改进程名称会破坏此代码。
Webex客户端从Internet浏览器作为子进程启动,因为它在技术上是一个浏览器插件,并且它不会在Windows任务管理器中单独显示。我已经看到 atmgr 和 CiscoWebexWebService 使用Process Explorer查找进程。有时,根据主机操作系统Windows XP / Windows 7,它只会显示 atmgr ,而不会显示属于 atmgr 的子进程 CiscoWebexWebService 。它根据使用的浏览器略有不同。它作为所有支持的浏览器的浏览器插件运行,对于不受支持的浏览器,它将提供作为独立应用程序运行的选项。
进程树可能会有所不同(即其他浏览器/操作系统),但它看起来像这样:
iexplore.exe
-> atmgr.exe
-> CiscoWebexWebService.exe
显然,所有检查都必须在客户端而不是服务器端完成,但是有更好的方法可以解决这个问题吗?
答案 0 :(得分:4)
我与一位思科专家进行了交谈,他们说我现在的方法应该可以安全地检测Webex客户端是否在运行用户的机器。他们能够确认流程名称为atmgr.exe
,并且不会在不久的将来发生变化。