我正在尝试创建一个获取命令行参数的WPF应用程序.如果没有给出参数,则应弹出主窗口.在某些特定命令行参数的情况下,代码应该在没有GUI的情况下运行并在完成时退出.关于如何正确完成这一任何建议将不胜感激.
我正在测试visual studio 2012中的一个项目.
当我在x86中运行我的代码时,会Console.Writeline在输出窗口中显示.但是,当我在x64中运行它时,它没有.
我知道我可以使用System.Diagnostics.Debug,但我真的很想知道为什么Console.Writeline不工作,或者某个地方有设置.
谢谢.
编辑:观察:两个版本都禁用Visual Studio托管过程.当我启用它时,所有Console.Writeline消息都显示为x64和x86.当我再次禁用它时,只显示x86 Console.Writeline.
是否可以将消息从WinForms应用程序记录到cmd.exe进程以编程方式启动?我尝试过以下代码的各种变体:
private void button1_Click(object sender, EventArgs e)
{
Log("Button has been pressed");
}
private void Log(string message)
{
var process = Process.Start(new ProcessStartInfo("cmd.exe", @"/K ""more""")
{
UseShellExecute = false,
RedirectStandardInput = true,
});
process.StandardInput.WriteLine(message);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,控制台窗口闪烁半秒钟就是这样.
请不要回答我真正想做的事情,因为现在我只是好奇,如果可能的话:)
我想在调试程序时创建一个控制台窗口并在其上打印一些信息.VS 2010没有为我提供为程序设置不同输出类型的选项,具体取决于它是处于调试模式还是发布模式,因此我采用手动创建控制台窗口,如下所示:
[DllImport("kernel32.dll")]
public static extern Int32 AllocConsole();
static void Main()
{
#if DEBUG
AllocConsole();
#endif
....
Run Code Online (Sandbox Code Playgroud)
弹出窗口打开一个控制台窗口,但没有任何内容写入它.我尝试了一堆其他的pinvoke(AttachConsole等......)什么也没做.然后我终于尝试在Visual Studio之外运行应用程序,并且控制台窗口工作.显然Visual Studio正在吃掉我所有的Console.WriteLines!
我怎样才能解决这个问题?