这个问题难道真的这么难吗?

解决方案 »

  1.   

    试试这个:
    var
      g_hLogHook:HHOOK=0;
    function JournalLogProc(iCode:Integer;wParam:WPARAM;lParam:LPARAM): LRESULT stdcall;
    var
      pEvt:^EVENTMSG;
      vKey:Integer;
    begin
      Result:=0;
      if iCode<0 then
        exit;
      CallNextHookEx(g_hLogHook,iCode,wParam,lParam);
      if iCode=HC_ACTION then
      begin
        pEvt:=Pointer(DWord(lParam));
        if pEvt.message=WM_KEYDOWN then
        begin
          vKey:=LOBYTE(pEvt.paramL);
          if vkey=191 then
          form1.Edit1.Text:='/';
          end;
     end;
      Result:=CallNextHookEx(g_hLogHook,iCode,wParam,lParam);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
    g_hLogHook:=SetWindowsHookEx(WH_JOURNALRECORD,
        JournalLogProc,HInstance,0);
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    UnhookWindowsHookEx(g_hLogHook);
    end;