示例#1
0
        private void ListHandles(int processId)
        {
            try
            {
                this.listView1.BeginUpdate();
                this.listView1.Items.Clear();

                using (WindowsHandleInfo whi = new WindowsHandleInfo())
                {
                    for (int i = 0; i < whi.HandleCount; i++)
                    {
                        _SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX she = whi[i];

                        if (she.OwnerPid != processId)
                        {
                            continue;
                        }

                        string objName = she.GetName(out string handleTypeName);
                        if (string.IsNullOrEmpty(handleTypeName) == true)
                        {
                            continue;
                        }

                        if (string.IsNullOrEmpty(objName) == true)
                        {
                            continue;
                        }

                        ListViewItem lvItem = this.listView1.Items.Add(handleTypeName);
                        lvItem.SubItems.Add(objName);

                        /*
                         * if (File.Exists(objName))
                         * {
                         *  ListViewItem lvItem = this.listView1.Items.Add("File");
                         *  lvItem.SubItems.Add(objName);
                         * }
                         * else if (Directory.Exists(objName))
                         * {
                         *  ListViewItem lvItem = this.listView1.Items.Add("Directory");
                         *  lvItem.SubItems.Add(objName);
                         * }
                         */
                    }
                }
            }
            catch (Exception e)
            {
                Trace.WriteLine(e.ToString());
            }

            this.listView1.EndUpdate();
            this.Text = $"# of file handles: {this.listView1.Items.Count}";
        }
示例#2
0
        public override bool Equals(object obj)
        {
            _SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX target = (_SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX)obj;

            if (target.ObjectPointer == this.ObjectPointer)
            {
                return(true);
            }

            return(false);
        }