簡體   English   中英

如何識別進程是手動啟動還是從任務計划程序啟動?

[英]How to identify the process is started manually or from Task Scheduler?

我有一個生成一些 PDF 文件的 win 表單應用程序。 現在我必須在調度程序中創建一個任務,以便在每天的指定時間運行應用程序。 現在我要做的是,我需要手動運行應用程序。 雖然它手動運行需要向用戶顯示一些額外的結果。 那么如何識別調度程序運行的應用程序或手動運行的應用程序呢?

干得好

  1. 轉到項目的屬性,設置一些命令行參數。 這是為了手動了解(為發布和調試設置) 在此處輸入圖片說明

  2. 現在轉到任務計划程序並設置如下所示的參數 在此處輸入圖片說明

  3. 現在,當它從exe或調度程序運行時,此參數將作為參數

    代碼樣例

     static void Main(string[] args) { Console.WriteLine(args[0]); } 

您可以使用當前目錄作為指標:

if (Environment.CurrentDirectory == Application.StartupPath)
{
    // Started from Start menu
}
else if (Environment.CurrentDirectory == Environment.SystemDirectory)
{
    // Started by Task Scheduler
}

當當前目錄(“開始於”)在開始菜單快捷方式中設置為應用程序目錄而不是在任務計划程序操作中設置時,它會起作用。 這是很常見的。

應用程序目錄在開始菜單快捷方式中設置為當前目錄

備注: Ramankingdom 的回答更可取。 但是,如果由於某些(組織)原因您不能使用命令行參數,則這是一個附加選項。

暫無
暫無

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

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