日期:2014-05-17  浏览次数:20363 次

如何获取线程传递的参数
我在asp.net(webform) 启动了一个外部程序并且传递了参数。请问大家:被启动的程序怎样才能获取到参数呀?谢谢啦!
代码如下:  

  string arguments = 参数;

  Process ps = new Process();
  ps.StartInfo.CreateNoWindow = false;
  ps.StartInfo.WorkingDirectory = ConfigurationManager.AppSettings["SendMailPath"];
  ps.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
  ps.StartInfo.Arguments = arguments;
  ps.StartInfo.FileName = "emailapp.exe";
  ps.StartInfo.UseShellExecute = true;
  ps.Start();




------解决方案--------------------
开启的是什么程序呢?一般可通过Main(string[] args)来获得参数(多个参数以空格间隔)
------解决方案--------------------
主函数,一般在program.cs中

public static void Main(string[] args),其中args就是命令行参数
------解决方案--------------------
调用WebService不能实现这个功能吗?
------解决方案--------------------
ps.StartInfo.Arguments = arguments;
这个就是传递参数用的。

ps.StartInfo.Arguments = ”c:\abc.txt";
ps.StartInfo.FileName = "notepad.exe";

这就是命令记事本打开c盘的abc.txt文件。当然,你运行的账号要有足够权限才行。

------解决方案--------------------
原来你这个需求只是为了发邮件。
发邮件有一命令是SendAsync(),异步发送。
或者你可以设置页面的超时时间足够长。

总不至于为了这点小坑就以降低服务器的安全性为代价。