跟踪桌面应用程序会话

时间:2016-10-01 08:11:34

标签: c# wpf wmi

我正在开发一个WPF应用程序,它必须跟踪桌面应用程序的会话。我使用ManagementEventWatcher它按预期工作,但我的WPF应用程序需要以管理员身份运行。应用程序的用户将没有管理员权限,因此用户获得Access is denied例外。

即使在Visual Studio中开发我的应用程序时,要查询此ManagementEventWatcher(“SELECT * FROM Win32_ProcessStopTrace”),Visual Studio也必须以管理员身份运行。

如何在没有管理员权限的情况下获取已停止的事件进程?还有其他方法可以让我获得已停止的进程吗?

以下是我使用的代码:

processStopEvent = new ManagementEventWatcher("SELECT * FROM Win32_ProcessStopTrace");

processStopEvent.EventArrived += new EventArrivedEventHandler(processStopEvent_EventArrived);
processStopEvent.Start();

void processStopEvent_EventArrived(object sender, EventArrivedEventArgs e)
{
   string processName = e.NewEvent.Properties["ProcessName"].Value.ToString();
   string processID = Convert.ToInt32(e.NewEvent.Properties["ProcessID"].Value).ToString();

    if (processName.ToUpper().Contains(processname.ToUpper().Replace(".EXE", "")))
    {
           //closed/disconnect desktop log
    }
}

0 个答案:

没有答案