如何强制进程由另一个进程启动

时间:2013-05-17 22:26:34

标签: c# winforms

我有一个启动另一个应用程序的AutoUpdater应用程序。无论如何强制第二个应用程序只有在AutoUpdater启动时才会运行?

问题是,一些最终用户将在其桌面上创建主应用文件的快捷方式。这成为一个问题,因为它应该在启动之前检查应用程序的更新,并且它们不会收到我们的更新。

我有一个想法是通过WCF创建一个IPC通道,并从AutoUpdater向另一个应用程序发出一个非常简单的命令。如果其他应用程序在2或3秒内没有收到该命令,它将自行关闭。

这似乎比应该需要的代码/开销更多。有更简单的方法吗?

谢谢!

2 个答案:

答案 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
}

我希望我帮助解决它。