static public my_task_class[] return_array_of_tasks() { Process[] buf_for_processes = Process.GetProcesses(); my_task_class[] buf_for_my_tasks = new my_task_class[buf_for_processes.Length]; int counter = 0; //********************************************************************************* SelectQuery query = new SelectQuery(@"SELECT * FROM Win32_Process"); using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query)) { ManagementObjectCollection processes = searcher.Get(); foreach (ManagementObject process in processes) { process.Get(); string[] user_and_domain_names = new string[2]; user_and_domain_names[0] = " "; user_and_domain_names[1] = " "; process.InvokeMethod("GetOwner", user_and_domain_names); if (user_and_domain_names[0] == null) user_and_domain_names[0] = ""; PropertyDataCollection processProperties = process.Properties; foreach (Process cur_proc in buf_for_processes) { if (buf_for_my_tasks[counter] == null) { buf_for_my_tasks[counter] = new my_task_class(); buf_for_my_tasks[counter].memory = cur_proc.PrivateMemorySize64; buf_for_my_tasks[counter].process_name = cur_proc.ProcessName; buf_for_my_tasks[counter].current_id = cur_proc.Id; } int test_int = int.Parse(string.Format("{0}", processProperties["ProcessId"].Value)); if (buf_for_my_tasks[counter].current_id == int.Parse(string.Format("{0}", processProperties["ProcessId"].Value))) { buf_for_my_tasks[counter].user_name_for_task = user_and_domain_names[0]; break; } ++counter; } counter = 0; } } //********************************************************************************* return buf_for_my_tasks; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { Process[] buf_for_tasks = (Process[])value; my_task_class[] buf_for_my_tasks = new my_task_class[buf_for_tasks.Length]; for (int counter = 0; counter < buf_for_tasks.Length - 1; ++counter) { buf_for_my_tasks[counter] = new my_task_class(); buf_for_my_tasks[counter].current_id = buf_for_tasks[counter].Id; } return buf_for_my_tasks; }
private void filter_user_name_text_box_TextChanged(object sender, TextChangedEventArgs e) { List<my_task_class> dynamic_collection = new List<my_task_class>(); for (int counter = 0; counter < storage_for_tasks.main_storage_for_tasks.Length; ++counter) { if ((storage_for_tasks.main_storage_for_tasks[counter].user_name_for_task).Contains(((TextBox)sender).Text)) { dynamic_collection.Add(storage_for_tasks.main_storage_for_tasks[counter]); } } if (dynamic_collection.Count > 0) { my_task_class[] template_source_of_tasks = new my_task_class[dynamic_collection.Count]; int counter_for_array = 0; foreach (my_task_class cur_task in dynamic_collection) { template_source_of_tasks[counter_for_array] = new my_task_class(); template_source_of_tasks[counter_for_array].current_id = cur_task.ID; template_source_of_tasks[counter_for_array].process_name = cur_task.process_name; template_source_of_tasks[counter_for_array].memory = cur_task.memory; template_source_of_tasks[counter_for_array].user_name_for_task = cur_task.user_name_for_task; ++counter_for_array; } main_data_grid.ItemsSource = template_source_of_tasks; } }