簡體   English   中英

如何強制進程由另一個進程啟動

[英]How to force a process to be started by another process

我有一個AutoUpdater應用程序,可以啟動另一個應用程序。 無論如何強制第二個應用程序只有在AutoUpdater啟動時才能運行?

問題是,一些最終用戶將在其桌面上創建主應用程序文件的快捷方式。 這成為一個問題,因為它應該在啟動之前檢查應用程序的更新,並且它們不會收到我們的更新。

我有一個想法是通過WCF創建一個IPC通道,並從AutoUpdater向另一個應用程序發出一個非常簡單的命令。 如果其他應用程序在2或3秒內沒有收到該命令,它將自行關閉。

這似乎比應該需要的代碼/開銷更多。 有沒有更簡單的方法?

謝謝!

Windows窗體應用程序也有一個main方法,可以接受參數。 您可以閱讀一些參數,如果它不符合您的規則,您可以保持表單不打開(因此用戶不會看到任何東西),或者您可以懲罰用戶,我的意思是,給出一條消息他們不應該這樣打開你的應用程序。 我認為這比使用WCF簡單。

您可以使用運行您的應用程序

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
}

我希望我幫助解決它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM