スクロ-ルバー等、システムフックする方法

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: スクロ-ルバー等、システムフックする方法

Re: スクロ-ルバー等、システムフックする方法

by KICO » 2006年1月27日(金) 19:21

イグトランス様、ありがとう御座います。
DLLのグローバル変数はプロセス毎に別個の存在です。
   DLLについて皆様に、色々と教えて頂いたのですが漠然として今ひとつ
   把握できていません。

   「プロセス毎」という事は、例えばアプリA、アプリBにそれぞれDLLが
   ロードされる。
   それとも、アプリAの内のプロセス毎という事でしょうか?
   (私は前者の方で理解していたのですが)


宜しくお願いします。

by イグトランス » 2006年1月27日(金) 18:04

DLLのグローバル変数はプロセス毎に別個の存在です。
グローバルフックではいくつものプロセスにそれぞれDLLがロードされるので、
SetWindowsHookExを呼び出したプロセス以外ではhHookはNULLになっているはずです。
このことが原因ではないでしょうか?

Re: スクロ-ルバー等、システムフックする方法

by KICO » 2006年1月26日(木) 23:55

NoWest様、ありがとう御座います。
以前にも確かグローバルフックの話をしたような気がしますね。
    以前にグローバルフックについて色々教えて頂きまして、ありがとう御座いました。
今回の件なんですが、wParamの下位WORDにスクロールバーのIDが格納されていそうなのでGetDlgItem(msg->hWnd,LOWORD(msg->wParam))でスクロールバーのハンドルを取得できるんじゃないかなと思ったんですがどうでしょう?
    戻り値が0のようで、取得できませんでした。

宜しくお願いします。

Re: スクロ-ルバー等、システムフックする方法

by NoWest » 2006年1月26日(木) 20:33

以前にも確かグローバルフックの話をしたような気がしますね。


今回の件なんですが、wParamの下位WORDにスクロールバーのIDが格納されていそうなのでGetDlgItem(msg->hWnd,LOWORD(msg->wParam))でスクロールバーのハンドルを取得できるんじゃないかなと思ったんですがどうでしょう?

スクロ-ルバー等、システムフックする方法

by KICO » 2006年1月26日(木) 17:24

ノッチ様、ありがとう御座います。
システムフックをする場合はSetWindowsHookExをDLLから呼び出さなければいけません。
この部分はOKでしょうか?
   はい、DLLから呼び出しています。

宜しくお願いします。

Re: スクロ-ルバー等、システムフックする方法

by ノッチ » 2006年1月26日(木) 13:34

> 何時も、お世話に成っています。
>
> スクロ-ルバー(WM_HSCROLL,WM_VSCROLL)とWM_COMMANDをシステムフックする方法を教えて下さい。
>
> [hide]
>  Const WH_MSGFILTER  = -1 'フックの種類を示す定数
>  Const MSGF_SCROLLBAR = 5  'イベントタイプを示す定数
>
>  'MSGFILTER Hook インストール
>  hHook=SetWindowsHookEx(WH_MSGFILTER, AddressOf(SysMsgProc), hInst, 0)
>
> Function SysMsgProc(code As Long, wParam As DWord, lParam As DWord) As DWord
>  Dim msg As *MSG
>
>  If code=MSGF_SCROLLBAR Then
>   msg=lParam
>   msg->lParam で、スクロ-ルバーのハンドルが取得できません?
>  End If
>
>  '次のフックを呼び出す
>  GetMsgProc=CallNextHookEx(hHook, code, wParam, lParam)
> End Function
> [/hide]
> 宜しくお願いします。

システムフックをする場合はSetWindowsHookExをDLLから呼び出さなければいけません。
この部分はOKでしょうか?

スクロ-ルバー等、システムフックする方法

by KICO » 2006年1月21日(土) 10:58

何時も、お世話に成っています。

スクロ-ルバー(WM_HSCROLL,WM_VSCROLL)とWM_COMMANDをシステムフックする方法を教えて下さい。
宜しくお願いします。

ページトップ