繁体   English   中英

WPF显示命令行选项

[英]WPF display command line options

我需要在WPF项目中添加命令行选项,这是我目前可以进行的工作,但是效果不是很好。 我需要一个更专业的解决方案。

要编写开始和停止代码,请执行以下操作:

AttachConsole(-1);
Console.WriteLine("Start");
System.Threading.Thread.Sleep(1000);
Console.WriteLine("Stop");

产生输出:

C:\Work>TestWriteCLI.exe -h

C:\Work>Start
Stop

这有几处错误:

  1. 我运行exe后,用C:\\Work>创建了一个新行,我不想这样做,我希望它直接在控制台上打印“开始”。
  2. 在显示“停止”后,程序只是在那里等待,等待按下“ Enter”,我也不希望那样,我只希望它退出。

这是我想要实现的输出:

C:\Work>TestWriteCLI.exe -h
Start
Stop
C:\Work>

这里的其他类似问题也提供了我不喜欢的解决方案,例如,我不想创建新的控制台窗口。 我有一个控制台,我希望它运行该控制台,而不打开新控制台,先显示东西,然后关闭它,然后再回到我的原始控制台。

我也不想将我的项目更改为命令行项目。

我的项目是WPF项目,它应该以命令行项目可以使用的正常方式处理命令行选项,并尽可能使用WPF方法。

非常感谢您的帮助。

非常感谢

您应该使用Kernel32 assembly FreeConsole() AllocConsole()并使用FreeConsole()关闭控制台。

课堂上的导入方法

[DllImport("Kernel32")]
public static extern void AllocConsole();

[DllImport("Kernel32")]
public static extern void FreeConsole();

并以这种方式使用它们-

AllocConsole();
Console.WriteLine("Start");
System.Threading.Thread.Sleep(1000);
Console.WriteLine("Stop");
FreeConsole();

对于第一个问题,只需使用带有/W/Wait作为选项的start命令运行可执行文件,如此处所示

C:\Work>start /W TestWriteCLI.exe -h

对于第二个问题,在代码末尾添加以下行:

    System.Windows.Forms.SendKeys.SendWait("{ENTER}"); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM