C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

IE上のボタンを押したとき、IEのタスクを落としたい /MDIE (23/10/03(Tue) 10:01) #102447
Re[1]: IE上のボタンを押したとき、IEのタスクを落としたい /KOZ (23/10/03(Tue) 12:27) #102448
Re[1]: IE上のボタンを押したとき、IEのタスクを落としたい /kiku (23/10/03(Tue) 18:34) #102450


親記事 / ▼[ 102448 ] ▼[ 102450 ]
■102447 / 親階層)  IE上のボタンを押したとき、IEのタスクを落としたい
□投稿者/ MDIE (1回)-(2023/10/03(Tue) 10:01:36)

分類:[JavaScript] 

未だにIEを使っているとか、なぜEdgeじゃないのか等はスルーしていただけたらと思います。
やりたいこととしてはタイトル通りなのですが、
IE上に配置されているボタンを押したとき、IEのプロセスIDを取得して落としたいです。
自身を閉じるだけでいいじゃないかと思われるかもしれないのですが、IEを閉じた際にタスク上に一定時間のタスクが残ることが多々あり、
次のIEが開けないということがあります。
そのため、IEのタスクを落としたいです。
複数のIEブラウザが開かれることを想定し、ブラウザでボタンを押した際、ボタンを押したブラウザ自身を狙って落としたいです。

分類をJavaScriptにしていますが、そのほかの言語でのやり方があれば、そちらも教えていただきたいです。
よろしくお願いします。
[ □ Tree ] 返信 編集キー/

▲[ 102447 ] / 返信無し
■102448 / 1階層)  Re[1]: IE上のボタンを押したとき、IEのタスクを落としたい
□投稿者/ KOZ (411回)-(2023/10/03(Tue) 12:27:58)
2023/10/03(Tue) 12:56:39 編集(投稿者)

No102447 (MDIE さん) に返信
> 複数のIEブラウザが開かれることを想定し、ブラウザでボタンを押した際、ボタンを押したブラウザ自身を狙って落としたいです。
> 分類をJavaScriptにしていますが、そのほかの言語でのやり方があれば、そちらも教えていただきたいです。

手順のひとつを紹介します。
Win32API を呼べる言語で (1) のコールバックを使える言語であればなんでも良いです。
貴方が使える言語を選択してください。

(1) SetWindowsHookEx でマウスをローレベルフックします。(検索すればやり方は見つかるでしょう)
(2) マウスのボタンが押されたら、WindowFromPoint で直下のウインドウハンドルを取得します。
(3) ボタンかどうかは GetClassName でウインドウのクラス名を取得して判断します。
IE が使用しているボタンのクラスはあらかじめ Spy++ などで調べてください。
(4) ウインドウハンドルから GetWindowThreadProcessId でプロセスIDを取得できます。
(5) プロセスIDから OpenProcess でプロセスハンドルを開きます。
(6) プロセスハンドルから EnumProcessModules でモジュールハンドルの配列を取得します。(要素は1でいいはず)
(7) プロセスハンドルとモジュールハンドルから GetModuleFileNameExでプログラムのファイル名がわかります。
(8) ファイル名が IE のファイル名ならプロセスハンドルを指定して TerminateProcess でプログラムを終了します。
(9) プロセスハンドルを CloseHandle で閉じます。

なお、この方法ではコンテンツのボタンは検出できません。
それでもよければ、頑張って調べて挑戦してください。
[ 親 102447 / □ Tree ] 返信 編集キー/

▲[ 102447 ] / 返信無し
■102450 / 1階層)  Re[1]: IE上のボタンを押したとき、IEのタスクを落としたい
□投稿者/ kiku (381回)-(2023/10/03(Tue) 18:34:17)
2023/10/03(Tue) 18:46:36 編集(投稿者)

No102447 (MDIE さん) に返信
> 複数のIEブラウザが開かれることを想定し、ブラウザでボタンを押した際、ボタンを押したブラウザ自身を狙って落としたいです。

自分だったら、この課題に多くの時間を使いたくないと考えると思うので、
上記部分を早々に諦めて(運用で説明すればわかってもらえると思う)、
下記のように、起動中のIEをすべて強制終了させるバッチファイルを用意すると思います。

https://www.thefastcode.com/ja-jpy/article/how-do-i-kill-all-the-iexplore-exe-processes-at-once

[ 親 102447 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -