当前位置:  开发笔记 > 编程语言 > 正文

C#使用多个参数启动应用程序

如何解决《C#使用多个参数启动应用程序》经验,为你挑选了2个好方法。

我一直在尝试从C#应用程序启动一个应用程序,但它无法正常启动.从cmd开始,应用程序加上参数会启动一个显示输出的小窗口,然后将应用程序最小化到系统托盘中.

使用下面的代码从C#应用程序启动应用程序会导致进程出现在任务管理器中,但没有其他任何内容,没有输出窗口,没有系统托盘图标.可能是什么问题?

    myProcess.StartInfo.FileName = ...;
    myProcess.StartInfo.Arguments = ...;
    myProcess.Start();

也试过传递以下内容

    myProcess.StartInfo.RedirectStandardOutput = true; //tried both
    myProcess.StartInfo.UseShellExecute = false; //tried both 
    myProcess.StartInfo.CreateNoWindow = false;

运用

    Process.Start(Filename, args)

也没用.非常感谢有关如何解决这个问题的任何帮助.

更新:我认为问题可能是要传递给流程的多个参数

RunMode=Server;CompanyDataBase=dbname;UserName=user;PassWord=passwd;DbUserName=dbu;Server=localhost;LanguageCode=9

问候



1> Sergio Rosas..:

我的代码中没有看到任何错误.我写了一个小程序,将其args打印到控制台

static void Main (string[] args)
{
     foreach (string s in args)
         Console.WriteLine(s);
     Console.Read(); // Just to see the output
}

然后我把它放在C:中,作为应用程序"PrintingArgs.exe"的名称,所以我写了另一个执行第一个:

Process p = new Process();
p.StartInfo.FileName = "C:\\PrintingArgs.exe";
p.StartInfo.Arguments = "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18";
p.Start();

这给了我所需的数字列表输出.调用PrintingArgs的应用程序在到达p.Start()时退出,这可以通过使用p.WaitForExit();或仅使用来避免Console.Read();.我也用过p.UseShellExecutep.CreateNoWindow.除非

p.UseShellExecute = false;
p.CreateNoWindow = true;

使PrintingArgs应用程序不显示窗口(即使我只放置p.CreateNoWindow = true它显示一个窗口).

现在我想到,也许你正在以错误的方式传递args并使其他程序失败并立即关闭,或者你可能没有指向正确的文件.检查路径和名称,以便找出可以省略的任何错误.另外,使用

 Process.Start(fileName, args);

不会将您使用StartInfo设置的信息用于Process实例.

希望这会有所帮助,问候



2> IModulo5..:

不知道是否有人仍在遵循此方法,但这是我想出的。

string genArgs = arg1 + " " + arg2;
string pathToFile = "Your\Path";
Process runProg = new Process();
try
{
    runProg.StartInfo.FileName = pathToFile;
    runProg.StartInfo.Arguments = genArgs;
    runProg.StartInfo.CreateNoWindow = true;
    runProg.Start();
}
catch (Exception ex)
{
    MessageBox.Show("Could not start program " + ex);
}

在字符串中添加空格允许将两个参数传递到我要运行的程序中。执行代码后,程序运行没有问题。

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有