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()的总是时候异常!!怪事!

  • 相关阅读:
    用Python发生RestFul API POST和GET请求
    C# 8.0中的新功能
    A股数据分析之收集数据:股票列表和股价
    A股数据分析之收集数据:公司详细信息
    VS 2019中修改C#语言版本
    Weak Event Manager
    在WPF中使用MVVM的方式关闭窗口
    C# GDI绘制仪表盘(纯代码实现)
    C#中实现文件拖放打开的方法
    C#设置自定义文件图标实现双击启动
  • 原文地址:https://www.cnblogs.com/linmilove/p/1740107.html
Copyright © 2011-2022 走看看