(一)、先制作一个带启动参数的EXE文件。
步骤:
1、定义全局私有变量:private string[] s = new string[1]; //这里为了简单起见,只做一个参数
2、 在窗体的构造函数中初始化启动参数
public Form1(string[] p) { InitializeComponent(); s = p; }
3、在main()函数中进行参数判断
static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (args.Length <= 0) { MessageBox.Show("请输入启动参数"); Application.Exit(); } if (args.Length == 1) { if (args[0] == "Test") { Application.Run(new Form1(args)); } else { MessageBox.Show("启动参数错误,请输入Test"); Application.Exit(); } } }
到这里,带启动参数的EXE文件制作完成
(二)调用带参数EXE文件(调用刚才做的程序),我写了下面这个简单的函数
public bool StartProcess(string filename, string[] args) { try { string s=""; foreach(string arg in args) { s=s+arg+" "; } s=s.Trim(); Process myprocess = new Process(); ProcessStartInfo startInfo = new ProcessStartInfo(filename,s); myprocess.StartInfo = startInfo; //通过以下参数可以控制exe的启动方式,具体参照 myprocess.StartInfo.下面的参数,如以无界面方式启动exe等 myprocess.StartInfo.UseShellExecute = false; myprocess.Start(); return true; } catch (Exception ex) { MessageBox.Show("启动应用程序时出错!原因:" + ex.Message); } return false; }
接着,在调用的地方调用此函数
private void button1_Click(object sender, EventArgs e) { string[] arg = new string[1]; arg[0] = textBox1.Text.Trim(); StartProcess(@"E:/ZHOUXL/C#/FileOP/FileOP/bin/Debug/FileOP.exe",arg); }