2017-07-26 13 views
1

私はいくつかのPDFファイルを生成するwinフォームアプリケーションを持っています。今、私はスケジューラーで毎日指定の時間にアプリケーションを実行するタスクを作成する必要があります。今私がしなければならないことは、アプリケーションを手動で実行する必要があるということです。手動で実行すると、ユーザーにいくつか余分な結果が表示される必要があります。では、スケジューラまたは手動でアプリケーションを識別するにはどうしたらいいですか?ここでプロセスが手動で開始されるかタスクスケジューラから開始されるかを識別する方法

+0

スケジューラによって開始するときに、コマンドラインパラメータを渡します。例えば'--showNoUI'です。そして、あなたはその2つを区別することができます。 – mjwills

+0

シンプルなソリューション:グラフィカルアプリケーションでパラメータを読み取らせてから、スケジュールされたタスクを変更してプログラムを実行し、指定されたパラメータを渡して決定します。 – ElektroStudios

+0

@ElektroStudiosあなたは私に1つの例を教えていただけます – Jzl

答えて

2

あなたは、いくつかのコマンドライン引数を設定し、プロジェクトのプロパティに

  1. 移動します。これは enter image description here

  2. 今すぐタスクスケジューラに行くと、それはexeファイルから実行またはこの引数をスケジューラとき 今enter image description here

  3. 下記のようなパラメータを設定し、手動で知っているため(リリースとデバッグの両方のためのセット)になるだろうパラメータとして来

    コードサンプル

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

インストールされたシステムからexeファイルを実行した後にアプリケーションを実行しているときに例外なく動作していて、** args **にアクセスできません。なぜこのようなことが起こるのか分かりますか – Jzl

+0

スケジューラに入っているかどうか確認してください。彼らがスケジューラーに来ている場合、あなたの仕事は完了します。ちょっと忙しい – Ramankingdom

関連する問題