タイトル通り、他のアプリケーションを左クリックしたときのイベントを得たいのですが、うまくいきません。
具体的には、DirectXを使って動いているフルスクリーンのアプリケーションを左クリックしたときにイベントを得るということです。
http://tokyo.cool.ne.jp/kanain/APIHTM/GetMsg.html
こちらで紹介されている方法でVBのフォームを左クリックしたときのイベントは得ることができました。
そして、他のアプリケーションのハンドルを取得して引数に指定してみましたが、うまくいきません。
分かりにくい説明ですみません^^;
何が間違っているのでしょうか。自分なりに作ってみたソースを記述した方がよいでしょうか?また、全く違う方法でも構わないので他のアプリケーションを左クリックしたときのイベントを得る方法がありましたら教えてください。
バージョン:VB6.0
No.1ベストアンサー
- 回答日時:
ここよりの引用
http://www.microsoft.com/JAPAN/developer/library …
「Windows 95/98:hWnd パラメータで指定したウィンドウが SetWindowLong 関数を呼び出したスレッドと同じプロセスに属していないと、SetWindowLong 関数は失敗します。」
他プロセスのイベントの取得はグローバルフックを使えばできますが、VBだけでは無理っぽいですね。
http://www.geocities.co.jp/SiliconValley/7406/ti …
回答ありがとうございます。
SetWindowLongでは別プロセスのイベントは取得できなかったんですね。
>他プロセスのイベントの取得はグローバルフックを使えばできますが、VBだけでは無理っぽいですね。
VBではできないんですか・・・。残念。
今回はマウスクリックではなくGetAsyncKeyStateとタイマーでキーボード入力からイベントを取得して代用することにしたいと思います。
No.2
- 回答日時:
#1の言うように
>SetWindowsHookEx
で、Windows全てのイベントを取得する方法のほかに、
95系
CreateFileMapping/MapViewOfFile
NT系
VirtualAllocEx/WriteProcessMemory/ReadProcessMemory
で特定ハンドルに対するイベントは取得できます。
参考URL(VCですが)
http://techtips.belution.com/ja/vc/0001/
で、別プロセスのリストビュー、ツリービュー(簡単に言ってしまえばエクスプローラ)のイベントを取得いたしました。VBにコンバートするにはチト厄介ですが、可能です。
もし完全に別プロセスのイベントが取得できないと言うのであれば、VisualStudio付属のアプリケーション「Spy++」はどうやってんだ?ってことになります。
回答ありがとうございます。
参考URL拝見しましたが難しくてよく分かりませんでした(汗
今回はマウスクリックのイベントを取得するのではなくキーボード入力からの取得で代用しようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- ネットワーク OSI参照モデルの各層の役割がわかりません。 3 2023/04/21 21:12
- 会社設立・起業・開業 e-Gov電子申請アプリケーションからGビズIDのアカウントをログアウトしたい 1 2023/07/04 20:21
- Mac OS Macのミュージック上で、アルバムのアートワークを取得させない方法について 3 2022/12/07 02:16
- Mac OS ミュージックのアートワークを自動取得させない方法について 1 2022/11/17 01:12
- Mac OS Mac book Proを使用しているものです。 最近バージョン12.6にアップデートしたのですが、 1 2022/09/28 22:05
- その他(コンピューター・テクノロジー) HOI4のクリックがバグった 2 2023/04/29 17:51
- Windows 8 動画の再生とタイトルの変更方法を教えてください。 3 2022/08/01 14:51
- ネットワーク クラウド環境の範囲について教えてください。 7 2023/03/09 15:50
- その他(ソフトウェア) ソフトが異常終了します 1 2022/08/28 01:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
タスクマネージャーのプロセス...
-
プロセスIDからウィンドウハ...
-
ShellExecuteExでハンドルの取得
-
別のプロセスの関数を呼び出す...
-
プロセスが実行中かどうか調べ...
-
Windowsでのfork方法
-
C#でのbatファイル実行結果取得
-
VC++6.0 「プロセスへ...
-
ロードアベレージが高いのです...
-
プロセスのアタッチ・デタッチ...
-
AppActivate関数について
-
非表示になったエクセルは?
-
他のEXEが起動しているかの確認
-
c言語でプロセスIDを調べたい
-
別プロセスをの実行パスを取得...
-
CreateObjectで作成したExcelの...
-
子プロセスのデバッグ方法について
-
警告『 別のプロセスで使用され...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
タスクマネージャーのプロセス...
-
C#でのbatファイル実行結果取得
-
プロセスのアタッチ・デタッチ...
-
VB6.0 SHELLで起動...
-
プロセスIDからウィンドウハ...
-
Process.Startの戻り値を後で取得
-
ウィンドウのタイトルからプロ...
-
他のEXEが起動しているかの確認
-
ADOでアクセスのレコードに...
-
怪しいプロセス教えてください。
-
別のプロセスの関数を呼び出す...
-
C++のプログラムをバックグラウ...
-
Linuxでのスレッド間メッセージ...
-
C++でシェルを起動
-
プロセスIDの取得方法について
-
OSPFでプロセスを分ける意義に...
-
非表示になったエクセルは?
-
Windowsでのfork方法
おすすめ情報