16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:デスクトップダブルクリックでポップア"
この発言は #01152 雪見酒 さんのデスクトップダブルクリックでポップアップ に対するコメントです
#1152 雪見酒 さん こんにちは。
>ActiveDesktopには対応してません。
WinSightで簡単に取得できました。(^^ゞ
アイコン上でのフックをキャンセルするのはむずかしそう。(^^;
function mouseProc(nCode:integer; wParam:integer; lParam:LongInt)
:integer;stdcall;
//mouseHook のコールバック関数
var
ptr: pointer;
hDskTop,htmp,hIE:hWnd;
begin
if nCode = HC_ACTION then begin
//シェアメモリへアクセス
ptr := MapViewOfFile(hShareMem, FILE_MAP_ALL_ACCESS, 0, 0, 0);
// デスクトップのハンドル取得
htmp := FindWindowEx(FindWindow('Progman', nil),
0, 'SHELLDLL_DefView', nil);
hDskTop := FindWindowEx(htmp, 0, 'SysListView32', nil);
// ActiveDesktop のハンドル取得
hIE:= FindWindowEx(htmp, 0, 'Internet Explorer_Server', nil);
if wParam = WM_LBUTTONDOWN then
PostMessage(PHostWnd(ptr)^, MyBtnDwnMsg, 0, 0);
if ((hDskTop = PMouseHookStruct(lParam).hwnd) or
(hIE = PMouseHookStruct(lParam).hwnd)) and
(wParam = WM_LBUTTONDBLCLK) then
PostMessage(PHostWnd(ptr)^, MyDblClkMsg, 0, 0);
//アクセス終了
UnmapViewOfFile(ptr) ;
result:=0; //システムに戻す。メッセ−ジを破棄する場合は0以外
end else
//次のHookへMessageを渡す
result := CallNextHookEx(hndHook, nCode, wParam, lParam);
end;
Yukimi Sake GHE01746@nifty.ne.jp
- FDELPHI MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 00/08/29 -
Original document by 雪見酒 氏 ID:(GHE01746)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|