예제 #1
0
		private static string GetProcessOwner( Process p )
		{
			string s =  "\\\\.\\root\\CIMV2:Win32_Process.Handle=\"" + p.Id + "\"";

			ManagementPath mp = new ManagementPath( s );

			ROOT.CIMV2.Process wmip = new ROOT.CIMV2.Process( mp );

			string domain,user;

			wmip.GetOwner( out domain , out user );

			return domain + "\\" + user;
		}
예제 #2
0
		private void ProcessWatcher_EventArrived(object sender, EventArrivedEventArgs e)
		{
			ROOT.CIMV2.Process wmiProcess = new ROOT.CIMV2.Process( (ManagementBaseObject)e.NewEvent["TargetInstance"] );

			Process p = Process.GetProcessById( (int)wmiProcess.ProcessId );

			string thisOwner = GetProcessOwner( Process.GetCurrentProcess() );

			if ( thisOwner == GetProcessOwner( p ) )
			{
				DoProcessAction( p );
			}
		}