我只需要在终端服务服务器上运行一个应用程序的单个实例,每个人都可以同时使用特权用户和非特权用户。
我尝试使用全局互斥锁(如其他答案所述),但是如果启动该应用程序的第一个用户没有SeCreateGlobalPrivilege
权限(通常是非管理员用户),则此操作将失败。出于相同的原因(无法查看非管理会话中的所有进程),查找已经打开的进程无法正常工作。
我的第一个猜测是将文件锁定在应用程序的同一文件夹中,以模拟穷人的互斥体,但我担心权限可能会再次搞砸我(据我所知,Program Files
通常读为-仅适用于普通用户。
在这种情况下是否可以检测到我的应用程序的其他正在运行的实例?