zoukankan      html  css  js  c++  java
  • 怪事~

       private void Form1_Load(object sender, EventArgs e)
            {
                ConnectionOptions co 
    = new ConnectionOptions();
                co.Impersonation 
    = ImpersonationLevel.Impersonate;
                co.EnablePrivileges 
    = true;
                ManagementScope mgrScope 
    = new ManagementScope(@"\\.\root\default", co);
                WqlEventQuery evQuery 
    = new WqlEventQuery();
                evQuery.WithinInterval 
    = new TimeSpan(000150);
                
    //evQuery.QueryString = @"Select * From RegistryKeyChangeEvent Where Hive='HKEY_USERS' And KeyPath='S-1-5-21-3743974248-512206057-3529231067-1000\\Software\\Microsoft\\Internet Explorer\\Main'";//
                evQuery.QueryString = @"Select * From RegistryKeyChangeEvent Where Hive='HKEY_USERS' And KeyPath='" + GetUserSID() + "\\Software\\Microsoft\\Internet Explorer\\Main'";//

                ManagementEventWatcher RegKeyWacher 
    = new ManagementEventWatcher();
                RegKeyWacher.Query 
    = evQuery;
                RegKeyWacher.EventArrived 
    += new EventArrivedEventHandler(OnRegistryKeyChange);
                RegKeyWacher.Scope 
    = mgrScope;
                RegKeyWacher.Start();

            
            }

            
    private string GetUserSID()
            {
                
    string strUserSID = "";
                ConnectionOptions co 
    = new ConnectionOptions();
                co.Impersonation 
    = ImpersonationLevel.Impersonate;
                co.EnablePrivileges 
    = true;
                ManagementScope mgrScope 
    = new ManagementScope("\\\\.\\root\\cimv2", co);
                ObjectQuery myQuery 
    = new ObjectQuery("SELECT * FROM Win32_UserAccount WHERE Domain=\"" + Environment.UserDomainName + "\"" + " And Name=\"" + Environment.UserName + "\"");
                ManagementObjectSearcher searcher 
    = new ManagementObjectSearcher(mgrScope, myQuery);
                ManagementObjectCollection oReturnCollection 
    = searcher.Get();
                
    foreach (ManagementObject sid in oReturnCollection)
                {
                    strUserSID 
    = sid["SID"].ToString();
                }
                
    return strUserSID;
            }

     

    运行完①②之后,evQuery.QueryString 的值都是一样的,但①可以正常监视,但②RegKeyWacher.Start()的总是时候异常!!怪事!

  • 相关阅读:
    175. 组合两个表
    101. 对称二叉树
    292. Nim游戏
    319. 灯泡开关
    155. 最小栈
    232. 用栈实现队列
    225. 用队列实现栈
    145. 二叉树的后序遍历
    144. 二叉树的前序遍历
    【leetcode】977. Squares of a Sorted Array
  • 原文地址:https://www.cnblogs.com/linmilove/p/1740107.html
Copyright © 2011-2022 走看看