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

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

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

Re[4]: VC++でのフックについて


(過去ログ 97 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■57678 / inTopicNo.1)  VC++でのフックについて
  
□投稿者/ kimi-plusroot (16回)-(2011/03/08(Tue) 13:11:54)

分類:[C/C++] 

http://web.archive.org/web/20050412160347/http://www.cmagazine.jp/books/spice/
このサイトの(6-8)のソースをもとにして、プログラムを作ったのですが、動きません。
sampledll.dllというファイルは存在しません。
どうして動作するのでしょうか?
また、

LRESULT CALLBACK meshookproc1(INT hc,WPARAM wParam,LPARAM lParam)
{
PMSG pmsg;
HMODULE hModule;
CWPSTRUCT *pcwp;

pmsg = (PMSG)lParam;

if (hc >= 0){
if (hc == HC_ACTION)
{
hModule = GetModuleHandle("sampledll.dll");
LoadString(hModule,pmsg->message,szWinMsg,50);
if (wParam == NULL)
{
pcwp = (CWPSTRUCT *)lParam;

if(WM_USER == pcwp->message)
{
MessageBox(hWndtgt,"WM_USER","タイトル",MB_OK);
}
}
}
return CallNextHookEx(hhook, hc, wParam, lParam);
}
return CallNextHookEx(hhook, hc, wParam, lParam);
}

こんな風にコードを書いてみたのですがLoadStringが0を返しWM_USERも機能しません。
引用返信 編集キー/
■57679 / inTopicNo.2)  Re[1]: VC++でのフックについて
□投稿者/ 渋木宏明 (65回)-(2011/03/08(Tue) 13:25:54)
渋木宏明 さんの Web サイト
> sampledll.dllというファイルは存在しません。

作らないとダメです。

↑の書籍でどのような解説が行われているのか分かりませんが、フックプロシージャは .dll 内に配置する必要があります。

ざっくり言うと、フックする側とされる側で .dll を共有することでフックは成り立っています。

引用返信 編集キー/
■57680 / inTopicNo.3)  Re[2]: VC++でのフックについて
□投稿者/ kimi-plusroot (18回)-(2011/03/08(Tue) 13:38:03)
システム全体をフックしたい時に具体的にどの様に書けばいいのでしょうか?
よろしくお願いします。
引用返信 編集キー/
■57688 / inTopicNo.4)  Re[3]: VC++でのフックについて
□投稿者/ Azulean (701回)-(2011/03/08(Tue) 23:45:21)
No57680 (kimi-plusroot さん) に返信
> システム全体をフックしたい時に具体的にどの様に書けばいいのでしょうか?
> よろしくお願いします。

単純に聞く前に、検索してみませんか?
「グローバルフック dll サンプル」とか、そういったキーワードで探すだけでもそこそこ情報を得やすいと思われます。
調べてもわからないならそれを具体的に質問しましょう。

ところで、グローバルフックで何をしたいのでしょうか?
こういった質問が出るレベルだと、かなりの苦戦を強いられると予想しますが、それでも実現したい何かがあるのですよね?

(念のため)
最初の段階では Windows ごと固まる、操作不能になるというオチもあり得るので、実行する、デバッグする際には
Windows を再起動するハメになっても困らないようにしておくべきでしょう。


引用返信 編集キー/
■57702 / inTopicNo.5)  Re[4]: VC++でのフックについて
□投稿者/ kimi-plusroot (21回)-(2011/03/09(Wed) 16:11:55)
問題は解決しました。私のプログラムミスが原因で動作不良を起こしていました。
ありがとうございました。今後もよろしくお願いします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -