我有一个启动另一个应用程序的AutoUpdater应用程序。无论如何强制第二个应用程序只有在AutoUpdater启动时才会运行?
问题是,一些最终用户将在其桌面上创建主应用文件的快捷方式。这成为一个问题,因为它应该在启动之前检查应用程序的更新,并且它们不会收到我们的更新。
我有一个想法是通过WCF创建一个IPC通道,并从AutoUpdater向另一个应用程序发出一个非常简单的命令。如果其他应用程序在2或3秒内没有收到该命令,它将自行关闭。
这似乎比应该需要的代码/开销更多。有更简单的方法吗?
谢谢!
答案 0 :(得分:6)
Windows窗体应用程序也有一个main方法,可以接受参数。您可以阅读一些参数,如果它不符合您的规则,您可以保持表单不打开(因此用户不会看到任何内容),或者您可以惩罚用户,我的意思是,给出一条消息他们不应该这样打开你的应用程序。我认为这比使用WCF简单。
答案 1 :(得分:2)
您可以使用
运行您的应用System.Diagnostics.Process.Start("", "TestString");
第一个字符串是您要启动的App的路径,类似于“C:/AppName.exe”,第二个字符串是您想要的任何文本,但它必须与您在'if'中检查的字符串相同下面。 在应用程序中,您需要检查通过第二个字符串给出的文本。
static void Main(string[] args)
{
if(!args.Length == 1 || !args[0]=="TestString") Environment.Exit(0);
//↑ lenght check to avoid exception, then check for the string itself
//the OS gives the string to args, you don't need to take care about that
//rest of your code
}
我希望我帮助解决它。