用于检测Webex客户端是否正在运行的可靠方法

本文关键字:运行 方法 检测 Webex 客户端 是否 用于 | 更新日期: 2024-10-19 20:12:44

确定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任务管理器中。我已经看到atmgrCiscoWebexWebService使用Process Explorer查找进程。有时,根据主机操作系统Windows XP/Windows 7,它只会显示atmgr,而不会显示属于atmgr的子进程CiscoWebexWebService。它也会根据所使用的浏览器略有不同。它作为所有支持的浏览器的浏览器插件运行,对于不支持的浏览器,它将提供作为独立应用程序运行的选项。

进程树可能会有所不同(即其他浏览器/操作系统),但它看起来像这样:

iexplore.exe  
    -> atmgr.exe  
        -> CiscoWebexWebService.exe  

显然,所有的检查都必须在客户端而不是服务器端进行,但有更好的方法来实现这一点吗?

用于检测Webex客户端是否正在运行的可靠方法

我与一位思科专家进行了交谈,他们说我目前的方法应该可以安全地检测Webex客户端是否在运行用户的机器。他们能够确认进程名称为atmgr.exe,在不久的将来不会更改。