2016-05-09 44 views
-3

我有一个名为A的程序,它负责告诉用户有关我的程序的新闻和更新,然后它应该运行程序B,这是主程序。我如何让程序B只能从程序A打开?仅从程序A运行程序B?

+0

如果没有更多的细节(以及一些代码..),这是相当广泛的。 –

+0

@DangerZone这对我来说很清楚。他想制作一个发射器,就像暴雪游戏中的一个。 –

+1

@ThalesPereira - 好吧,所以不清楚。但它很广泛。当然可以回答,但答案同样广泛。 –

回答

3

我不保证这是最好的解决方案,但它可以很容易地实现:尝试为您开始的程序设置一个环境变量。当新程序启动时,它应该检查该环境变量,如果它不存在则关闭。

所以在程序A:

public static void StartProgramB() 
{ 
    Process p = new Process(); 
    p.StartInfo.FileName = "programb.exe"; 
    //Other startinfo calls go here: parameters, start options, etc. 
    p.StartInfo.EnvironmentVariables["CalledFromProgramA"] = "true"; 
    p.Start(); 

    p.WaitForExit(); 
} 

和方案B:

public static void Main() 
{ 
    if(Environment.GetEnvironmentVariable("CalledFromProgramA") != "true") 
     return; 
} 
+0

我显然回答了一个无法回答的问题......没想到它太不明了 –