Ejemplo n.º 1
0
        public void RefreshProcessList()
        {
            m_dtProcessList.Clear();
            DataRow row;
            Process currentProcess = Process.GetCurrentProcess();

            foreach (Process process in Process.GetProcesses())
            {
                try
                {
                    if (process.SessionId == currentProcess.SessionId && process.Id != currentProcess.Id)
                    {
                        row    = m_dtProcessList.NewRow();
                        row[0] = process.Id;
                        row[1] = System.Drawing.Icon.ExtractAssociatedIcon(process.MainModule.FileName).ToBitmap();
                        row[2] = process.MainModule.ModuleName;
                        row[3] = process.MainWindowTitle;
                        row[4] = process.MainModule.FileName;

                        if (IsRecentProcess(process.ProcessName))
                        {
                            m_dtProcessList.Rows.InsertAt(row, 0);
                        }
                        else
                        {
                            m_dtProcessList.Rows.Add(row);
                        }
                    }
                }
                catch (Win32Exception ex)
                {
                    if ((uint)ex.ErrorCode != 0x80004005)
                    {
                        throw;
                    }
                }
            }
            if (DGV_PROCESS_LIST.RowCount > 0)
            {
                DGV_PROCESS_LIST.ClearSelection();
                DGV_PROCESS_LIST.CurrentCell = DGV_PROCESS_LIST.Rows[0].Cells[1];
            }
        }
Ejemplo n.º 2
0
        public void RefreshProcessList()
        {
            m_dtProcessList.Clear();
            DataRow row;
            Process currentProcess = Process.GetCurrentProcess();

            foreach (Process process in Process.GetProcesses())
            {
                try
                {
                    if (process.SessionId == currentProcess.SessionId && process.Id != currentProcess.Id)
                    {
                        row    = m_dtProcessList.NewRow();
                        row[0] = process.Id;
                        row[1] = System.Drawing.Icon.ExtractAssociatedIcon(process.MainModule.FileName).ToBitmap();
                        row[2] = process.MainModule.ModuleName;
                        row[3] = process.MainWindowTitle;
                        row[4] = process.MainModule.FileName;

                        if (IsRecentProcess(process.ProcessName))
                        {
                            m_dtProcessList.Rows.InsertAt(row, 0);
                        }
                        else
                        {
                            m_dtProcessList.Rows.Add(row);
                        }
                    }
                }
                catch
                {
                    // exception can be caused by anything, e.g. lack of access rights. Ignore process.
                }
            }
            if (DGV_PROCESS_LIST.RowCount > 0)
            {
                DGV_PROCESS_LIST.ClearSelection();
                DGV_PROCESS_LIST.CurrentCell = DGV_PROCESS_LIST.Rows[0].Cells[1];
            }
        }