首页 / C# / c#-控制台应用程序也将作为GUI运行
c#-控制台应用程序也将作为GUI运行
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-控制台应用程序也将作为GUI运行,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1639字,纯文字阅读大概需要3分钟。
内容图文
![c#-控制台应用程序也将作为GUI运行](/upload/InfoBanner/zyjiaocheng/663/68f0d9eda5104d25842338ac72a5ce05.jpg)
Before anyone marks this as Duplicate, Please read
我有一个Windows应用程序,用C#编写.
现在我有一个要求,我也想从控制台运行它.像这样.
由于需要将输出显示到控制台,因此我将应用程序类型更改为“控制台应用程序”
现在的问题是,每当用户从Windows资源管理器中启动进程时(通过单击两次即可).控制台窗口也会在后面打开.
有办法避免这种情况吗?
在@PatrickHofman的帮助下,我尝试了什么.
>关注的how to run a winform from console application?
但是我还是有问题
>当我执行此操作https://stackoverflow.com/a/279811/3722884时,控制台将在新窗口中打开.我不要
>当我执行此https://stackoverflow.com/a/11058118/3722884时,即将-1传递给AllocConsole时,还会发生其他问题,如所引用的链接中所述.
解决方法:
好吧,我很好奇,我想我会在这玩.
>首先,我更新了Program.cs中的Main方法以接受参数,以便可以指定-cli并使应用程序在命令行上运行.
>其次,我在项目属性中将项目的输出类型更改为“控制台应用程序”.
>第三,我在Program.cs中添加了以下方法
private static void HideConsoleWindow()
{
var handle = GetConsoleWindow();
ShowWindow(handle, 0);
}
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
>第四,我将HideConsoleWindow称为非CLI模式下的第一个动作.
完成这些步骤后,我的(基本)应用程序如下所示:
[STAThread]
static void Main(string[] args)
{
if (args.Any() && args[0] == "-cli")
{
Console.WriteLine("Console app");
}
else
{
HideConsoleWindow();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
然后,如果我使用-cli开关在命令行上打开程序,则该程序将作为命令行应用程序运行,并将内容打印到命令行中;如果我正常运行,它将短暂地(极其)加载命令行窗口,然后以您所期望的正常应用.
内容总结
以上是互联网集市为您收集整理的c#-控制台应用程序也将作为GUI运行全部内容,希望文章能够帮你解决c#-控制台应用程序也将作为GUI运行所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。