2010-11-19 25 views
2

运行控制台应用程序与C#参数 - GUI联播咨询

我(警告这是一个C#的n00b问题,努力学习一点C#,同时使事情变得更容易为一个控制台应用程序我经常跑!)。 “M试图而不必在参数每次手动键入运行控制台应用程序(consoleapp.exe) - 该命令是通常的这种形式:

C:/consoleapp.exe --username (uname) --password (pass) --inputfile "c:/pathtofile/filename.xml"

使用C#我甚至可以加载了一个Windows资源管理器文件提示,而不是每次都必须手动输入文件路径。我会如何去做这件事?我试过snippet at this link。我通过将ApplicationPath替换为我的cojnsole应用程序的路径,ApplicationArguments以上述格式显示的参数来替代它,除了我不确定如何使用VC#GUI工具连接参数,或者将我从原始控制台应用程序获得的输出转发回去。

+0

'.bat'文件可能会更简单(http://tips.oncomputers.info/archives2003/0305/2003-may-04.htm)。 – 2010-11-19 09:43:12

+0

是的,但理想情况下,我希望能够点击一个按钮为'--inputfile'参数加载一个win explorer文件对话框 - 而不是每次都在外部寻找文件路径的奢侈品 – ina 2010-11-19 09:47:22

+0

我读过这个问题多了几倍,我不确定我是否理解正确。 @伊娜 - 你能写(一步一步地)你在做什么?如果'consoleapp'是你开发的一个应用程序,从VS开始构建和运行?或者它是你的应用程序从代码中激发的应用程序? – 2010-11-19 14:26:44

回答

9

这不是对上述问题的回答 - 请参阅上述问题的评论。

项目属性对话框调试选项卡上,你可以定义命令行参数工作目录

0

这里有一些示例代码,用参数运行控制台应用程序并处理输出。

private static Process PrepareTfProcess(string args) 
{ 
    return new Process 
         { 
          StartInfo = 
           { 
            CreateNoWindow = true, 
            FileName = @"consoleapp.exe", 
            Arguments = args, 
            RedirectStandardOutput = true, 
            UseShellExecute = false 
           } 
         }; 

} 

//... 
using (var process = PrepareTfProcess("--param1 --param2")) 
{ 
    while (!process.StandardOutput.EndOfStream) 
    { 
     string str = process.StandardOutput.ReadLine(); 
     // Process output lines here 
    } 
} 
//... 
+0

虽然我不完全确定这是否是您询问的问题,以及是否有帮助 – Dyppl 2010-11-19 09:54:09

相关问题