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

わんくま同盟

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

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

■102448 / 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 で閉じます。

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

前の記事(元になった記事) 次の記事(この記事の返信)
←IE上のボタンを押したとき、IEのタスクを落としたい /MDIE 返信無し
 
上記関連ツリー

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

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信