<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 在應用程序中跟蹤MOUSE的坐標

    時間:2024-06-09 15:13:44 計算機網絡畢業論文 我要投稿
    • 相關推薦

    在應用程序中跟蹤MOUSE的坐標

    在應用程序中跟蹤MOUSE的坐標

    第一步,建一DLL,DELPHI中NEW-》DLL SAVE AS GETKEYlibrary getKey;uses
    SysUtils,
    Windows,
    HookMain in hookmain.pas;exports
    OpenGetKeyHook,
    CloseGetKeyHook,
    GetPublicP;begin
    NextHook := 0;
    procSaveExit := ExitProc;
    DLLproc := @DLLMain;
    ExitProc := @HookExit;
    DLLMain(DLL_PROCESS_ATTACH);
    end.第二步,建一UNIT ,HOOK MAIN。關鍵在于CreateFileMapping 和 消息 WM_NCMouseMove, WM_MOUSEMOVE:unit HookMain; interface
    uses Windows, Messages, Dialogs, SysUtils; //type DataBuf = Array of DWORD;
    type mydata=record
    data1:array of DWORD;
    data2:TMOUSEHOOKSTRUCT;
    end;
    var hObject : Thandle;
    pMem : Pointer;
    NextHook: Hhook;
    procSaveExit: Pointer; function HookHandler(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;
    function OpenGetKeyHook(sender : HWND;MessageID : WORD) : BOOL; export;
    function CloseGetKeyHook: BOOL; export;
    function GetPublicP : Pointer;stdcall; export;
    Procedure DLLMain(dwReason:Dword); far;
    procedure HookExit; far; implementation Procedure UnMapMem;
    begin
    if Assigned(pMem) then
    begin
    UnMapViewOfFile(pMem);
    pMem := Nil
    end;
    end; Procedure MapMem;
    begin
    hObject := CreateFileMapping($FFFFFFFF,Nil,Page_ReadWrite,0,$FFFF,pChar(_IOBuffer));
    if hObject = 0 then Raise Exception.Create(創建公用數據的Buffer不成? ;
    pMem := MapViewOfFile(hObject,FILE_MAP_WRITE,0,0,SizeOf(mydata));
    // 1 or SizeOf(DataBuf) ????
    // 創建SizeOf(DataBuf)的數據區
    if not Assigned(pMem) then
    begin
    UnMapMem;
    Raise Exception.Create(創建公用數據的映射關系不成功!);
    end;
    end;
    Procedure DLLMain(dwReason:Dword); far;
    begin
    Case dwReason of
    DLL_PROCESS_ATTACH :
    begin
    pMem := nil;
    hObject := 0;
    MapMem; //以下的公有數據,如tHWND,tMessageID將直接使用本Buf.
    End;
    DLL_PROCESS_DETACH : UnMapMem;
    DLL_THREAD_ATTACH,
    DLL_THREAD_DETACH :; //缺省
    end;
    end; procedure HookExit; far;
    begin
    CloseGetKeyHook;
    ExitProc := procSaveExit;
    end;function GetPublicP : Pointer;export;
    begin //這里引出了公用數據區的指針,你可以在你的應用程序中自由操作它。但建議去掉此接口。
    Result := pMem;
    end;function HookHandler(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;
    begin
    Result := 0;
    If iCode $#@60; 0
    Then Result := CallNextHookEx(NextHook, iCode, wParam, lParam);
    // This is probably closer to what you would want to do...
    Case wparam of
    WM_LBUTTONDOWN:
    begin
    end;
    WM_LBUTTONUP:
    begin
    end;
    WM_LBUTTONDBLCLK:
    begin
    end;
    WM_RBUTTONDOWN:
    begin
    messagebeep(1);
    end;
    WM_RBUTTONUP:
    begin
    end;
    WM_RBUTTONDBLCLK:
    begin
    end;
    WM_MBUTTONDOWN:
    begin
    end;
    WM_MBUTTONUP:
    begin
    end;
    WM_MBUTTONDBLCLK:

    下一頁

    【在應用程序中跟蹤MOUSE的坐標】相關文章:

    跟蹤審計中存在題目及對策12-08

    視頻圖像中的車輛檢測跟蹤和分類03-18

    坐標系在化學教學中的運用的方式分析03-16

    Blackfin系統引導過程中的多應用程序管理03-07

    淺析極坐標系與坐標旋轉11-30

    實時操作系統VxWorks在跟蹤雷達系統中的應用03-18

    電源跟蹤技術03-19

    成本管理的戰略坐標03-07

    基于XML的智能應用程序的研究03-07

    光學3D坐標測量技術在大齒輪在位測量中的應用03-07

    主站蜘蛛池模板: 久久综合精品国产一区二区三区| 久久亚洲国产精品五月天婷| 国产精品欧美日韩| 精品国产网红福利在线观看| 国产精品久久久久AV福利动漫| 夜夜高潮夜夜爽国产伦精品| 国内精品久久久久影院优| 国产精品爱搞视频网站 | 精品人妻中文av一区二区三区 | 99在线精品免费视频| 国产精品久久久久久吹潮| 大伊香蕉精品一区视频在线 | 国产日韩精品在线| 久久精品国产精品亚洲人人| 久久久精品2019免费观看| 99久久精品免费看国产| 精品国产福利在线观看| 中文字幕精品无码一区二区| 国产精品亚洲欧美大片在线看| 久久99精品国产麻豆宅宅| 亚洲色精品aⅴ一区区三区| 色欲久久久天天天综合网精品| 四虎国产精品永免费| 精品人妻码一区二区三区| 99久久精品久久久久久清纯| 日韩欧美亚洲国产精品字幕久久久| 国内揄拍高清国内精品对白| 99riav国产精品| 中文字幕精品无码一区二区| 亚洲精品综合一二三区在线 | 91麻豆精品视频在线观看| 日本精品视频在线观看| 国产伦精品一区二区三区女| 午夜肉伦伦影院久久精品免费看国产一区二区三区| 99在线精品一区二区三区| 一区二区日韩国产精品| 久久久精品人妻无码专区不卡| 91久久精品国产成人久久| 99re66热这里只有精品| 国产精品国产三级国产专播| 99久久婷婷免费国产综合精品|