我有一个具有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] 举报,一经查实,本站将立刻删除。