質問: 今、〇〇.exeが既に開かれています。それを、画面上で邪魔なので非表示にしたいのですが、何か良い方法は無いですか? 又、その後も同じタスク名にて開かれる〇〇.exe全て非表示にしたいのです。 今、考えている言語は、VBS・JVS・VC++にて検討しています。
回答: VC++でやるとしたら 1. EnumWindows()関数でトップレベルウィンドウのハンドル全てを取得する 2. 取得したハンドルから実行ファイル名を取得する 3. 目的の実行ファイルと同じものだったら、ShowWindow()関数を使って非表示にする という手順でどうでしょうか。 取得したウィンドウハンドルから実行ファイル名にたどり着くにはちょっと手順が必要ですが * GetWindowThreadProcessId()でウィンドウハンドルからウィンドウを作成したプロセスIDを取得 * OpenProcess()でプロセスIDからプロセスハンドルを取得 * EnumProcessModules()でプロセスハンドルからモジュールハンドルを取得 * GetModuleFileNameEx()でモジュールハンドルからモジュールのフルパスを取得 という一連の処理で取得が可能だと思います。