掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
あるソフト起動時に処理するには? (ID:13929)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>>タスクバーでは、IShellExecuteHookインターフェースでフックしているのでは? ご指摘ありがとうございます。 IShellExecuteHookを元に調べていったら SetWindowsHookExでWH_SHELLをフックしてもアプリケーションの起動を知ることができることが分かり、試してみたところアプリの起動を識別できそうです。 //---------------------------------------------------------------- // アプリケーションの起動を察知 //---------------------------------------------------------------- library HookShell; uses SysUtils, Windows, Messages, Controls; {$R *.RES} var hInst : Integer; //インスタンスハンドル hHook : Integer; //フックプロシージャのハンドル function JournalRecordProc(nCode:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall; begin result:=0; if nCode < 0 then begin result := CallNextHookEx(hHook,nCode,wParam,lParam) end else begin beep(1000,10); //確認 CallNextHookEx(hHook,nCode,wParam,lParam); end; end; procedure SetHook;stdcall; begin //フック開始 hHook := SetWindowsHookEx(WH_SHELL,@JournalRecordProc,hInstance,0); end; procedure EndHook;stdcall; begin UnhookWindowsHookEx(hHook); end; exports SetHook, EndHook; begin hInst := hInstance; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.