【发布时间】:2016-11-30 15:02:21
【问题描述】:
所以在我的表单构造函数中,我检查了一个参数。如果我得到两个特殊参数之一,那么我只想注册/注销我的服务器并关闭程序。我不希望在这些情况下加载表单。但是,就目前而言,以下代码成功注册/取消注册服务器,但它不会像我想要的那样立即杀死我的应用程序。还有其他命令可以这样做吗?或者也许有更好的方法来做我想做的事?
我的代码:
public Form1()
{
InitializeComponent();
instance = this;
fillMeasView();
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 1)
{
switch (args[1])
{
case "register":
try
{
slikServer1.RegisterServer();
MessageBox.Show("Server registered successfully!");
}
catch(Exception ex)
{
MessageBox.Show("Error: Could not register server." + "\nAdditional Information: " + ex.Message, "Registering Server Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Application.Exit();
break;
case "unregister":
try
{
slikServer1.UnregisterServer();
MessageBox.Show("Server unregistered successfully!");
}
catch (Exception ex)
{
MessageBox.Show("Error: Could not unregister server." + "\nAdditional Information: " + ex.Message, "Unregistering Server Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Application.Exit();
break;
default:
MessageBox.Show("This is the cmd line arg:" + args[1]);
break;
}
}
}
【问题讨论】:
-
将该代码移动到
Main方法(应用程序入口点),并且根本不显示表单,而是退出任何内容。 -
@Sinatr 你是说要创建一个主目录?这会在程序起点方面增加歧义,不是吗?
-
你已经拥有它......某处;)不要创建新的,使用/修改现有的。它甚至还有特殊版本:见this answer。
-
@J.Doe 将检查放在程序起点 (
main)。然后仅在需要时加载表单
标签: c# winforms command-line-arguments exit kill-process