今回作るのは、任意のウインドウを強制的に非表示状態にしてしまうという便利ツールです。これは、コマンドラインやバッチを頻繁に実行する方、システム管理者の方にうれしいツールでしょう。バッチ処理の実行中に、複数のウインドウを切り替えて作業していると、間違ってバッチ処理中のウインドウをアクティブにしてしまうことがよくあります。こうなると、バッチ処理のウインドウから、再び作業したいウインドウに切り替えなければならないのでやっかいです。誤ってクリックして実行中のバッチを止めるなど誤操作してしまう危険もあります。このツールを使えば実行中のバッチウインドウを非表示にする(タスクトレイからも隠してしまう)ので、集中して作業に取り組むことができます。

プログラム~ウインドウを強制的に非表示にしてしまうツール

 はじめに以下のプログラムをなでしこエディタに貼り付けてください。そして、7行目にある「ウインドウ一覧」に非表示にしたいウインドウのタイトルを記入します(ワイルドカードで指定できます)。その後、なでしこエディタの実行ボタンを押すとプログラムが実行されます。

 「何を行いますか?」と選択肢が出るので「0:隠す」のボタンを押してください。指定したウインドウが非表示になります。非表示にしたウインドウを表示させたい場合は、プログラムを再度実行し、「1:表示」のボタンをクリックします。

プログラムを実行したところ
プログラムを実行したところ
[画像のクリックで拡大表示]

 選択肢で「11:強制最小化」をクリックすると、ウインドウを最小化させることができます。「q:強制終了」は、[Alt + F4]で終了できるプログラムだけに有効です。「*:窓列挙」は、ウインドウの一覧をCSV形式で表示します。ウインドウのクラス名やタイトル名を調べるのに利用できます。

#-----------------------------------------------------------------------# ウィンドウを強制的に非表示にしてしまうツール#-----------------------------------------------------------------------母艦のタイトル=「強制非表示ツール」。母艦の可視=オフ#-----------------------------------------------------------------------# クラス名かウィンドウタイトルを指定ウィンドウ一覧=「ConsoleWindowClass # コマンドラインのクラス名作業中-*           # ウィンドウのタイトルをワイルドカードで指定」#-----------------------------------------------------------------------「何を行いますか?」を「0:隠す1:表示11:強制最小化q:強制終了*:窓列挙」でボタン選択。設定値=それから「:」まで切り取る。もし、設定値が「*」ならば  窓列挙してメモ記入。終わる。#-----------------------------------------------------------------------# ウィンドウ一覧を処理ウィンドウ一覧を反復  対象=対象から「#」まで切り取って空白除去。  もし、それが空ならば続ける。  一覧=窓列挙。  # クラス名を検索  一覧の1から対象を表完全一致ピックアップ。  反復    操作実行(対象\0)  # タイトルで検索  一覧の2から対象を表ワイルドカードピックアップ。  反復    操作実行(対象\0)終わる。#-----------------------------------------------------------------------●操作実行(h)  h=INT(h);もし、h=0ならば、続ける。  もし、設定値が「q」ならば    hに『%{F4}』を窓ハンドルキー送信。  違えば    ShowWindow(h, 設定値)●ShowWindow(h,n) =DLL("user32.dll","Long ShowWindow(Long hWnd,Long nCmdShow)")#-----------------------------------------------------------------------