带有EXE参数的启动
(一)、先制作一个带启动参数的EXE文件。
步骤:
1、定义全局私有变量:private string[] s = new string[1]; //这里为了简单起见,只做一个参数
2、 在窗体的构造函数中初始化启动参数
public Form1(string[] p)
{
InitializeComponent();
s = p;
}
3、在main()函数中进行参数判断
步骤:
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();
}
}
}
{
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文件(调用刚才做的程序),我写了下面这个简单的函数
(二)调用带参数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;
{
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;
}
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);
}
{
string[] arg = new string[1];
arg[0] = textBox1.Text.Trim();
StartProcess(@"E:/ZHOUXL/C#/FileOP/FileOP/bin/Debug/FileOP.exe",arg);
}