Windows 7 で、指定した間隔でバッチ ファイルを実行するスケジュール タスクを作成しました。
このバッチ ファイルは、Perl スクリプトを呼び出します。Perl スクリプト内で、結果に基づいて、Perl Tk を使用してアラートを出すポップアップ メッセージを表示します。
ここで、インターネットの閲覧など、自分のマシンで他のタスクを実行している間、たとえばブラウザ ウィンドウがアクティブなウィンドウになります。その間に、スケジュールされたタスクが実行され、ポップアップ ウィンドウは表示されず、代わりに最小化されてタスク バーに表示されます。
ntwind の htstart.exe を使用して、スケジュールされたタスクの実行時にコンソール ウィンドウが表示されないようにしていることに注意してください (そうしないと、スケジュールされたタスクが実行されるたびに taskeng.exe が表示されます)。
Perl Tk ウィンドウをアクティブ ウィンドウにするために、以下に示すようにウィンドウを作成しています。
$mw = MainWindow->new(-background => 'blue');
$mw->focus(-force);
$mw->geometry("200x200");
$mw->title("Message");
このウィンドウがアクティブになるように、フォーカス オプションを設定しました。
ここで、スケジュールされたタスクが実行されると、フォーカス オプションを設定した後に私が観察した唯一の違いは、Tk ウィンドウがタスクバーに表示され、点滅し続けることです (おそらく、現在アクティブ ウィンドウとして設定されているためです)。
表示されたときに最前面に表示され、タスク バーに最小化されないようにするにはどうすればよいですか?
ありがとう。