In top of form1 i did:
private System.Timers.Timer _refreshTimer;
private int _thisProcess;
Then in the Form1 Load event:
_thisProcess = Process.GetCurrentProcess().Id;
InitializeRefreshTimer();
PopulateApplications();
Then the timer init method:
void InitializeRefreshTimer()
{
_refreshTimer = new System.Timers.Timer(5000);
_refreshTimer.SynchronizingObject = this;
_refreshTimer.Elapsed += new System.Timers.ElapsedEventHandler(TimerToUpdate_Elapsed);
_refreshTimer.Start();
}
Then the timer elapsed event:
void TimerToUpdate_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
PopulateApplications();
}
In the end the Populate method:
void PopulateApplications()
{
dataGridView1.Rows.Clear();
foreach (Process p in Process.GetProcesses("."))
{
if (p.Id != _thisProcess)
{
try
{
if (p.MainWindowTitle.Length > 0)
{
String status = p.Responding ? "Running" : "Not Responding";
dataGridView1.Rows.Add( p.MainWindowTitle, status);
}
}
catch { }
}
}
}
The variable status show in the column2 but let's say i want that status will be display for each process/app in column5 ? How can i move it ?
This is an image showing what i get whne running the program:
This is the method im using:
void PopulateApplications()
{
dataGridView1.Rows.Clear();
DataGridViewImageColumn img = new DataGridViewImageColumn();
img.HeaderText = "Icon";
img.Name = "ImageCol";
dataGridView1.Columns.Add(img);
dataGridView1.Columns.Add("AppName", "Application Name");
dataGridView1.Columns.Add("Status", "Status");
foreach (Process p in Process.GetProcesses())
{
if (p.MainWindowTitle.Length > 1)
{
var icon = Icon.ExtractAssociatedIcon(p.MainModule.FileName);
Image ima = icon.ToBitmap();
(dataGridView1.Columns["ImageCol"] as DataGridViewImageColumn).Image = ima;
String status = p.Responding ? "Running" : "Not Responding";
dataGridView1.Rows.Add(icon, p.MainWindowTitle, status);
}
}
}
Can you try this code?
void PopulateApplications()
{
dataGridView1.Rows.Clear();
DataGridViewImageColumn img = new DataGridViewImageColumn();
img.HeaderText = "Icon";
img.Name = "ImageCol";
dataGridView1.Columns.Add(img);
dataGridView1.Columns.Add("AppName", "Application Name");
dataGridView1.Columns.Add("Status", "Status");
foreach (Process p in Process.GetProcesses())
{
if (p.MainWindowTitle.Length > 1)
{
var icon = Icon.ExtractAssociatedIcon(p.MainModule.FileName);
Image ima = icon.ToBitmap();
String status = p.Responding ? "Running" : "Not Responding";
dataGridView1.Rows.Add(ima, p.MainWindowTitle, status);
}
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.