Вывести строки в файл - C#
Формулировка задачи:
не могу в методе refreshDeadProcessInfo() вывести строки в txt
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Diagnostics;
- using System.Drawing;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace WindowsFormsApplication1
- {
- public partial class Form1 : Form
- {
- public List<Processes> procList = new List<Processes>();
- private Process[] processList = Process.GetProcesses();
- public int count = 0;
- public Form1()
- {
- InitializeComponent();
- List<Processes> procList = new List<Processes>();
- dataGridView1.AutoGenerateColumns = true;
- bindingSource1.DataSource = this.procList;
- Timer tmr = new Timer();
- tmr.Interval = 500;
- tmr.Tick += new EventHandler(tmr_Tick);
- tmr.Start();
- }
- private void tmr_Tick(object sender, EventArgs e)
- {
- try
- {
- this.procList.Clear();
- foreach (var winProc in Process.GetProcesses())
- {
- string min_threads = "";
- string totalProcessorTime = "";
- try
- {
- min_threads = winProc.Threads.OfType<ProcessThread>().Where(t => t.ThreadState == ThreadState.Running).Count().ToString();
- totalProcessorTime = winProc.TotalProcessorTime.ToString();
- }
- catch (Exception er)
- {
- }
- this.procList.Add(new Processes(winProc.Id.ToString(), winProc.ProcessName, winProc.PeakVirtualMemorySize64.ToString(), winProc.WorkingSet64.ToString(), totalProcessorTime));
- }
- dataGridView1.DataSource = this.procList;
- dataGridView1.Refresh();
- refreshDeadProcessInfo();
- }
- catch (DataException er)
- {
- MessageBox.Show(er.Message, "Ошибка обновления данных.");
- }
- }
- private void button1_Click(object sender, EventArgs e)
- {
- string data = "";
- int row = Convert.ToInt32(dataGridView1.CurrentCell.RowIndex);
- int pid = Convert.ToInt32(dataGridView1[0, row].Value);
- Process process = Process.GetProcessById(pid);
- string process_name = process.ProcessName;
- foreach (ProcessThread thread in process.Threads)
- {
- data += "ID: " + thread.Id + ", Состояние: " + thread.ThreadState + "\n";
- }
- MessageBox.Show(data, "Информация о процессе " + process_name);
- }
- private void bindingSource1_CurrentChanged(object sender, EventArgs e)
- {
- }
- private void button2_Click(object sender, EventArgs e)
- {
- saveFileDialog1.DefaultExt = "txt";
- if(saveFileDialog1.ShowDialog() == DialogResult.OK)
- {
- string filename = saveFileDialog1.FileName;
- StreamWriter sw = new StreamWriter(filename);
- string start_time ="Нет доступа к информации о процессе";
- foreach (var winProc in Process.GetProcesses())
- {
- try
- {
- start_time = winProc.StartTime.ToString();
- }
- catch (Exception er)
- {
- }
- sw.WriteLine(winProc.Id + "Имя:" + winProc.ProcessName + ", Время старта:" + start_time);
- }
- sw.Close();
- }
- }
- private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
- {
- }
- private void saveFileDialog1_FileOk(object sender, CancelEventArgs e) { }
- private void refreshDeadProcessInfo() //Метод обновляет информацию о мертвых процессах
- {
- string path = @"c:\Users\Мрр\Documents\MyTest.txt";
- Process[] newProcessList = Process.GetProcesses();
- for (int i = 0; i < processList.Length; i++) //Переключаем старые элементы
- {
- bool isDead = true; //Предположим, что процесс мертв
- for (int j = 0; j < newProcessList.Length; j++) //Элемент из старого сравниваем со всеми элементами нового
- if (processList[i].Id == newProcessList[j].Id) isDead = false; //Если встречаем старый процесс в новом списке, то он жив
- if (isDead)
- {
- try
- {
- string[] row = { processList[i].ProcessName, processList[i].StartTime.ToString("HH:mm:ss"), DateTime.Now.ToString("HH:mm:ss") };
- dgv.Rows.Add(row);
- }
- catch
- {
- string[] row = { processList[i].ProcessName, "Error", DateTime.Now.ToString("HH:mm:ss") };
- dgv.Rows.Add(row);
- }
- }
- }
- processList = newProcessList;
- }
- }
- }
Решение задачи: «Вывести строки в файл»
textual
Листинг программы
- catch (Exception er)
- {
- MesssageBox.Show(er.Message);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д