web-dev-qa-db-ja.com

スケジュールされたウィンドウ作成プログラムがフォーカスを奪わないようにするにはどうすればよいですか?

すべてのWebサイトが正常に稼働していることを確認する小さなコンソールプログラムを作成しました。 Microsoft Windowsタスクスケジューラ を使用して、このプログラムを1日1回自動的に実行します。

Screenshot

問題は、当然のことながら、プログラムが実行されるたびにフォーカスを盗むことです。デスクトップの一番上のウィンドウにならずに開始することをお勧めします。これを達成するための最も簡単な方法は何ですか?もちろん、EXEを書き直してバックグラウンドウィンドウを作成する(またはウィンドウをまったく作成しない)こともできますが、タスクスケジューラに「フォーカスを盗まない」などのオプションがあると便利ですが、それも不可能かもしれません。 .。。

6

タスクスケジューラに、コンソールプログラムを開くvbscriptを実行させることができます。 vbscriptは、Shell Runメソッドを使用して、次のように最小化して開くことができます。

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad.exe", 6, true

これに関するいくつかの基本的な情報が http://ss64.com/vb/run.html にあります。

6
Geo

アプリケーションを直接呼び出さないでください。 最小化を開始するショートカットから実行します。

私はあなたができると思います また 同じ効果を得るために/start /minを使用するバッチファイルをミックスに追加しますが、最小化されたショートカットから呼び出されない限り、バッチファイルはフォーカスを奪うと思われます。

編集:start /minは非常に短時間フォーカスを盗みますが、新しいコマンドラインウィンドウを呼び出す.cmdバッチファイルを使用して(cmd.exeを使用)、私のマシンで機能します。

私のバッチファイルは次のようになります。

@echo off
cls
start /min C:\Users\Randolph\Desktop\shortcut.lnk

ショートカット自体はcmd.exeを開き、最小化されて開くことを除いて、デフォルトのオプションが選択されています(オプションRun:Minimizedに設定されています)。

2
user3463

この構文により、start/minアイデアが機能します。
%comspec%/ c start ""/min "C:\ Scripts\Destination_inbound_ftp5.bat"

0
P Pace