<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

    主站蜘蛛池模板: 中日精品无码一本二本三本| 成人区人妻精品一区二区不卡网站| 一夲道无码人妻精品一区二区| 国产精品一久久香蕉国产线看| 四虎亚洲国产成人久久精品| 青青草国产精品久久久久| 亚洲精品中文字幕乱码三区| 国产精品成人精品久久久| 国产福利91精品一区二区| 性欧洲精品videos| 日韩精品无码久久一区二区三| 亚洲一二成人精品区| 97久久久久人妻精品专区| 亚洲精品色午夜无码专区日韩| 久久国产成人精品国产成人亚洲| 免费精品99久久国产综合精品| 精品黑人一区二区三区| 亚洲国模精品一区| 精品视频一区二区三区四区五区| 亚洲国产精品自在在线观看| 2022精品天堂在线视频| 久久精品毛片免费观看| 亚洲精品国产美女久久久| 四虎影院国产精品| 久久免费国产精品| 国产精品白丝jkav网站| 99九九精品免费视频观看| 国产成人精品久久一区二区三区 | 欧美日韩国产成人高清视频,欧美日韩在线精品一 | 亚洲精品乱码久久久久久不卡 | 精品综合久久久久久88小说| 香蕉久久夜色精品国产小说| 国产精品视频免费观看| 99国产精品国产精品九九| 97精品久久天干天天天按摩| 国产精品视频一区二区噜噜| 久久久久无码精品国产| 无码精品A∨在线观看| 亚洲精品成人片在线播放| 热re99久久精品国99热| 精品视频无码一区二区三区|