c#读取进程列表判断程序是否已经启动(转)

方法一:

using System.Diagnostics; 


Process[] vProcesses = Process.GetProcesses(); 
foreach (Process vProcess in vProcesses) 
if (vProcess.ProcessName.Equals( "iexplore ", 
StringComparison.OrdinalIgnoreCase)) 
{ 
MessageBox.Show( "IE已经打开 "); 
break; 
}


方法二:

using System.Diagnostics;


Process[] app = Process.GetProcessesByName("AMS");
            if (app.Length > 0)
            {
                MessageBox.Show("请关闭已经启动的程序后再进行尝试");
                return;
            }
            else
            {
                System.Diagnostics.Process.Start("AMS.exe");
            }


杀死进程:查找到对应的进程后就可以调用系统命令杀死指定名称的进程

            Process[] p = Process.GetProcessesByName("AMS");
            foreach (Process ps in p)
            {
                ps.Kill();
            }
C#中,你可以使用Button控件来启动Vivado烧录程序文件的过程,并且显示一个进度条来指示烧录进程。以下是一个基本的实现步骤,其中涉及到创建用户界面、编写事件处理程序以及调用外部命令来执行烧录操作。 1. **用户界面设计**:在Windows Forms应用程序中,你将需要至少一个Button控件来触发烧录过程,一个ProgressBar控件来显示烧录进度,以及一些方式来显示烧写成功或失败的信息(比如Label控件)。 2. **事件处理**:为Button控件编写一个点击事件处理程序,这个处理程序将执行Vivado烧录命令,并更新进度条和状态信息。 3. **执行烧录命令**:可以通过Process类来启动外部的Vivado程序,并传递相应的参数来烧录程序文件。你可能需要通过ProcessStartInfo类来配置该进程,包括程序的路径、要传递的参数等。 4. **更新进度和状态信息**:在烧录命令运行的同时,你可能需要从Vivado的输出中获取进度信息,并更新到ProgressBar控件中。这通常涉及到异步读取进程的标准输出流。 5. **判断烧写成功与失败**:根据Vivado烧录后的输出信息来判断操作是否成功,并将结果显示在界面上。 下面是一个简化的示例代码,用于说明以上概念: ```csharp // 假设你已经设计好了Form,有buttonStart、progressBar、labelStatus等控件。 private void buttonStart_Click(object sender, EventArgs e) { try { // 设置进度条范围和初始状态 progressBar.Minimum = 0; progressBar.Maximum = 100; progressBar.Value = 0; // 创建进程信息 ProcessStartInfo psi = new ProcessStartInfo { FileName = "Vivado的路径和命令行参数", // 例如 "C:\Vivado\2019.1/bin/vivado.bat" Arguments = "你的烧录参数", // 例如 "program -intarget -bitfile your_bitfile.bit" RedirectStandardOutput = true, // 重定向标准输出,以便读取进度信息 UseShellExecute = false, CreateNoWindow = true, // 不创建新窗口 WindowStyle = ProcessWindowStyle.Hidden }; // 启动进程 using (Process process = new Process { StartInfo = psi }) { process.Start(); // 异步读取输出,更新进度条和状态 while (!process.StandardOutput.EndOfStream) { string line = process.StandardOutput.ReadLine(); // 分析输出,找到进度信息,并更新progressBar // 例如:progressBar.Value = (int)(解析出来的百分比 * 100); // 更新状态信息 labelStatus.Text = line; } // 等待进程结束 process.WaitForExit(); // 判断成功或失败,更新状态 if (process.ExitCode == 0) { labelStatus.Text = "烧录成功!"; } else { labelStatus.Text = "烧录失败,请检查日志。"; } } } catch (Exception ex) { labelStatus.Text = "发生异常:" + ex.Message; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值