这个问题已经有答案了:
Get all process of current active session(1个答案)
3天前关闭。
我需要检查一个程序(xyz.exe
)是否正在运行,但只针对当前用户。无论使用什么方法,都不能要求提升权限,而且必须运行得快(所以JavaScript已经过时了)。Process.GetProcessesByName("xyz")
返回所有登录用户的“xyz”结果.但我只关心当前用户。
有什么想法?
这个问题已经有答案了:
Get all process of current active session(1个答案)
3天前关闭。
我需要检查一个程序(xyz.exe
)是否正在运行,但只针对当前用户。无论使用什么方法,都不能要求提升权限,而且必须运行得快(所以JavaScript已经过时了)。Process.GetProcessesByName("xyz")
返回所有登录用户的“xyz”结果.但我只关心当前用户。
有什么想法?
4条答案
按热度按时间rxztt3cl1#
使用当前进程
SessionId
筛选进程列表:ctrmrzij2#
我在这里找到了答案:http://dotbay.blogspot.com/2009/06/finding-owner-of-process-in-c.html
我会复制/粘贴它的情况下,该博客曾经路过。
下面是相应的类:
wdebmtf23#
这里是完整的程序。这是一个命令行C#应用程序。它很丑,没有评论。但这很有效。你给它一个EXE文件的名字(包括路径),它会检查它是否已经在运行,如果没有,就启动它。
bksxznpy4#
上面的代码很好用。但如果你只想知道当前用户是否看到打开的应用程序:如果进程不是来自当前用户,那么如果你试图获取句柄,你已经有了一个异常。所以,你可以用这个扩展做得更简单: