微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为.NET程序提供输出types的Windows应用程序和控制台应用程序

我有一个具有GUI的C#应用​​程序,并将其输出types设置为Windows应用程序。 我也想从命令行调用它(通过参数),因此它也需要一个控制台应用程序。 有没有办法让我的应用程序作为Windows应用程序和控制台应用程序运行? 有没有办法在运行时设置它,还是编译时设置?

Windows中没有makecert的自签名证书?

活动窗口上是否有Windows系统事件更改?

本地IIS / Web应用程序通常使用什么术语?

MSBuild不能build立一个MSI。 是否有Windows服务的替代品?

将.NET应用程序添加到registry以在重新启动后启动以完成某些操作

您可以连接控制台。 使Program.cs中的代码如下所示:

[STAThread] static void Main(string[] args) { if (args.Length > 0) { AttachConsole(-1); Console.WriteLine(""); Console.WriteLine("Running in console,press ENTER to continue"); Console.ReadLine(); } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } [System.Runtime.InteropServices.DllImport("kernel32.dll")] private static extern bool AttachConsole(int pid);

Windows窗体应用程序可以接受命令行参数。 在显示应用程序主窗体之前,您只需在主函数中处理这种情况。

static void Main(string[] args) { if (args.Length > 0) { // Run it without Windows Forms GUI } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } }

这是一个编译时间设置:在csc编译器上有一个target:选项。 /target:winexe构建一个Windows应用程序(即使用GUI); /target:exe构建一个控制台应用程序。 虽然这两种类型的应用程序都可以接受命令行参数。

即使您的应用程序输出类型被设置为Windows应用程序,您仍然可以从命令行调用它并传递参数。

只要将你的Main方法定义改为:static void Main(string [] args){…},你可以访问'args'变量中的参数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐