winform简单获取进程

获取进程

将界面上设置好,两个button控件,一个DataGridView控件用来显示行和列。
在这里插入图片描述
在两个控件里分别写入下列代码

using System.Windows.Forms;
using System.Diagnostics;

namespace process
{
    public partial class Form1 : Form
    {
        Process[] myProcess;
        public Form1()
        {
            InitializeComponent();
        }

        private void OutProcess()
        {
            dgv_Process.Rows.Clear();
            if (myProcess.Length == 0)
            {
                MessageBox.Show("No 'chrome' process is running.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            foreach (Process process in myProcess)
            {
                int newRowIndex = dgv_Process.Rows.Add(); // 添加新行并获取行索引
                DataGridViewRow row = dgv_Process.Rows[newRowIndex]; // 获取新添加的行
                row.Cells[0].Value = process.Id; // 设置第一列的值为进程 ID
                row.Cells[1].Value = process.ProcessName; // 设置第二列的值为进程名称
             
            }
        }
        private void btn_GetAll_Click(object sender, EventArgs e)
        {
            myProcess = Process.GetProcesses();
            OutProcess();
        }

        private void btn_GetCalc_Click(object sender, EventArgs e)
        {
            myProcess = Process.GetProcessesByName("chrome");
            OutProcess();
        }
    }
}

运行后获取所有进程的效果

在这里插入图片描述

运行后获取浏览器进程的效果

在这里插入图片描述

C#中,如果你想要打开一个WinForms应用程序的进程,并且需要向这个进程传递参数同时获取参数反馈,你可以使用多种方法。一种常见的方法是使用命令行参数,这样可以在应用程序启动时接收参数,并在程序运行时通过特定的方式返回结果。 下面是一个简单的例子,展示了如何启动一个WinForms应用程序,传递参数,并获取反馈: 1. 首先,在你的WinForms应用程序中,你需要处理命令行参数。你可以通过 `Environment.GetCommandLineArgs()` 方法获取启动应用程序的命令行参数数组。 2. 你还需要一个机制来传递参数和接收反馈。一个简单的方法是使用文件系统或命名管道来传递数据,或者使用更高级的IPC(进程间通信)技术,比如WCF服务、Windows消息队列(MSMQ)或共享内存。 3. 当你的应用程序接收到参数后,可以进行相应的处理,并将结果写入之前设定的通信机制中。 4. 在启动WinForms应用程序的主程序中,你需要等待被启动的进程完成任务,并从之前设定的通信机制中读取反馈结果。 这里是一个使用命令行参数启动WinForms应用程序的示例代码: ```csharp using System; using System.Diagnostics; using System.IO; class Program { static void Main(string[] args) { // 假设你的WinForms应用程序名为"WinFormsApp.exe",并且它处理命令行参数 string exePath = @"C:\Path\To\WinFormsApp.exe"; string[] processArgs = { "Hello", "World" }; // 你需要传递的参数 // 创建一个文件来存放结果,如果使用其他IPC机制则不需要这一步 string resultFilePath = Path.GetTempFileName(); // 构建完整的命令行参数字符串 string fullCommand = $"{exePath} {string.Join(" ", processArgs)} --result-file={resultFilePath}"; // 启动进程 ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "cmd.exe", Arguments = $"/c {fullCommand}", UseShellExecute = false, RedirectStandardOutput = true, CreateNoWindow = true }; using (Process process = Process.Start(startInfo)) { process.WaitForExit(); // 读取结果 string result = File.ReadAllText(resultFilePath); Console.WriteLine("Received Result: " + result); // 删除临时结果文件 File.Delete(resultFilePath); } } } ``` 在上述例子中,我们启动了一个名为 `WinFormsApp.exe` 的应用程序,并传递了两个参数 `"Hello"` 和 `"World"`,然后我们创建了一个临时文件来存放反馈结果。在应用程序执行完毕后,我们读取临时文件的内容作为结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值