マシン上で 1 時間ごとに実行するデーモン プロセスがあり、Hidden
ボックスをチェックしても動作しません。
1 時間ごとにタスクが実行されますが、.NET コンソール アプリが実行中の黒いコマンド ウィンドウが表示されます。これはタスクが完了するまで表示されたままで、その後消えます。これは非常に煩わしいもので、ポップアップ表示されて、何をしているときでも中断されます。
本当に隠したいのですが、どうすれば修正できますか?
答え1
「ユーザーがログオンしているかどうかに関係なく実行する」チェックボックスをオンにすると、実行可能ファイルがバックグラウンドで実行されます。
答え2
Windows 7 のスケジュールされたタスクが非表示で実行されているのはなぜですか?なぜこのようなことが起こるのかを説明する必要があります。
また、このTechNetの説明一般的なタスクプロパティ状態:
タスクの一般的なプロパティは、[タスクのプロパティ] または [タスクの作成] ダイアログ ボックスの [全般] タブに表示されます。タスクの一般的なプロパティには、タスク名、作成者、説明、セキュリティ オプション、タスクが構成されているオペレーティング システムなどが含まれます。タスクを非表示にするかどうかを制御するプロパティ。
タスク フォルダーにタスクを作成するときは、タスクに名前を付ける必要があります。同じタスク フォルダー内にある 2 つのタスクに同じ名前を付けることはできません。タスクの説明はオプションです。
タスク セキュリティ オプションは、タスクが実行されるセキュリティ コンテキストを指定します。詳細については、「タスク セキュリティ コンテキスト」を参照してください。
デフォルトでは、非表示のタスクはタスク スケジューラのユーザー インターフェイスに表示されません。非表示のタスクは、[表示] メニューで [非表示のタスクの表示] を選択すると表示できます。タスクを非表示にするには、[タスクのプロパティ] または [タスクの作成] ダイアログ ボックスの [全般] タブで [非表示] チェック ボックスをクリックします。
これはチェックボックスが非表示になるだけを意味しているのではないでしょうかタスク自体スケジュールされた実際のプログラムではなく、スケジューラの UI からですか?
答え3
答え4
デフォルト設定のままにして、ウィンドウを表示せずに実行を開始する短いカスタム プログラムを作成します。たとえば、コマンド プロンプト ウィンドウを表示せずにバッチ ファイルを実行するには、以下のコードを使用します。タスクを設定して、「RunBatchFile.exe (path_to_batch_file)」を起動します。
class Program
{
static void Main(string[] args)
{
try
{
if (args.Length < 1)
{
Console.WriteLine("No batch file");
Console.WriteLine("Usage: RunBatchFile (path)");
Environment.Exit(1);
}
if (!File.Exists(args[0]))
{
Console.WriteLine("Batch file {0} not found", args[0]);
Console.WriteLine("Usage: RunBatchFile (path)");
Environment.Exit(1);
}
// Set to batch file's folder
string startIn = Path.GetDirectoryName(args[0]);
if (!string.IsNullOrEmpty(startIn) && Directory.Exists(startIn))
Directory.SetCurrentDirectory(startIn);
// Start
ProcessStartInfo pi = new ProcessStartInfo()
{
FileName = args[0],
UseShellExecute = true,
WindowStyle = ProcessWindowStyle.Hidden
};
Process.Start(pi);
}
catch (Exception ex)
{
Console.WriteLine("Exception: " + ex.ToString());
}
}
}