创建两个窗体程序项目
被调用方-sso_demo
第一步接受参数的exe启动程序修改
需要修改Program文件
在FORM2里面会有2个构造函数
定义args来接收传入这个exe启动程序的参数
调用方-调用exe传参
我们需要使用到process进程类和ProcessStartInfo类,ProcessStartInfo用来配置参数
小demo,便于理解:
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = "C:/Program Files/Google/Chrome Dev/Application/chrome.exe"; //启动360浏览器,可以更换
process.StartInfo.Arguments = "http://www.sina.com";
process.Start();
上面的代码的意思是调用谷歌浏览器,并传一个sina的参数,你执行的时候会自动打开谷歌并访问http://www.sina.com
Process进程类,GetProcesses获取本地进程
Process[] proList = Process.GetProcesses(“.”);
int k = proList.Length ; //当前进程数量
下面的图片就是proList 的值,我们可以看到正在运行的项目(调用exe传参)
然后我们通过进程类查询有没有这个”调用exe传参“,有就干掉他
Process[] a = Process.GetProcessesByName("调用exe传参");
a[0].Kill(); //杀死该进程
再来一个:
只当谷歌打开ceshi.txt文件
System.Diagnostics.Process.Start("C:/Program Files/Google/Chrome Dev/Application/chrome.exe", "C:/Users/Administrator/Desktop/测试/ceshi.txt"); //直接打开文件Readme.txt
我们可以同个这个进程类打开指定文件加:
这个就是运行完了之后会自动给你打开D盘
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.FileName = "explorer.exe"; //资源管理器
processStartInfo.Arguments = @"D:\";
System.Diagnostics.Process.Start(processStartInfo);
用这个进程,我们可以调用dos来执行一些命令:
下面这个会得到我们IPconfig的输出信息
Process process = new Process();//实例
process.StartInfo.CreateNoWindow = true;//设定不显示窗口
process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = "cmd.exe"; //设定程序名
process.StartInfo.RedirectStandardInput = true; //重定向标准输入
process.StartInfo.RedirectStandardOutput = true; //重定向标准输出
process.StartInfo.RedirectStandardError = true;//重定向错误输出
process.Start();
process.StandardInput.WriteLine("ipconfig");//执行的命令
process.StandardInput.WriteLine("exit");
process.WaitForExit();
string output = string.Empty;
output = process.StandardOutput.ReadToEnd();//获取输出流
process.StandardInput.Close();
process.Close();