- public static void ResetWinwordProcess()
- {
- foreach (Process process in Process.GetProcessesByName("WINWORD"))
- {
- //Ignore the current process
- if (GetProcessOwner(process.Id) == "ASPNET")
- {
- process.Kill();
- }
- }
- }
- public static string GetProcessOwner(int prcessId)
- {
- SelectQuery query1 = new SelectQuery("Select * from Win32_Process");
- ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(query1);
- string owner = "";
- try
- {
- foreach (ManagementObject disk in searcher1.Get())
- {
- ManagementBaseObject inPar = null;
- ManagementBaseObject outPar = null;
- inPar = disk.GetMethodParameters("GetOwner");
- outPar = disk.InvokeMethod("GetOwner", inPar, null);
- if (int.Parse(disk["ProcessId"].ToString()) == prcessId)
- {
- owner = outPar["User"].ToString();
- break;
- }
- }
- }
- catch (Exception e)
- {
- }
- return owner;
- }
根据进程ID和用户名取进程
最新推荐文章于 2022-12-24 19:19:00 发布
本文介绍了一个实用的C#代码片段,该片段能够终止由特定用户(例如ASPNET)拥有的所有Word进程。通过使用WMI(Windows Management Instrumentation)来获取进程的所有者信息,并在确认所有者后结束相应的进程。
3460

被折叠的 条评论
为什么被折叠?



