我有一个WIN32 SDK的例子,想要的话,EMAIL:[email protected]
解决方案 »
- 请问这些编译注释是什么意思?
- 求助~~~关于程序窗口隐藏
- DBGrid 中,如果显示4行数据,当DBGrid拉长时,能否控制Columns,使它填满DBGrid ??
- 新手上路
- 如何獲得當前系統登入用戶的名稱?
- 我想壮WIN2000,大家能不能谈经验
- 刚做Win32 SDK/API版的版主,以后还要请各位多多关照!
- 使用ADO开发的程序,无法在WIN98第一版的机子上使用,在线等候.......
- 怎样屏蔽edit的右键菜单?
- HUB最多能堆叠几层?
- 关于fastreport报表的问题?
- 用TClientSocket和TServerSocket进行通信,在服务端怎样向已知ip地址的客户端发信息?如发送"abc".
library HKTest;uses
HKProc in 'HKProc.pas';exports
EnableHotKeyHook,
DisableHotKeyHook;begin
hNextHookProc := 0;
procSaveExit := ExitProc;
ExitProc := @HotKeyHookExit;
end.将以下的文字剪贴存成HKProc.PAS
unit HKProc;interfaceuses
Windows, Messages;var
hNextHookProc: HHook;
procSaveExit: Pointer;function KeyboardHookHandler(iCode: Integer;
wParam: WPARAM;
lParam: LPARAM): LRESULT; stdcall; export;
function EnableHotKeyHook: BOOL; export;
function DisableHotKeyHook: BOOL; export;
procedure HotKeyHookExit; far;implementationfunction KeyboardHookHandler(iCode: Integer;
wParam: WPARAM;
lParam: LPARAM): LRESULT; stdcall; export;
const
_KeyPressMask = $80000000;
begin
Result := 0;
If iCode < 0 Then
begin
Result := CallNextHookEx(hNextHookProc, iCode, wParam, lParam);
Exit;
end;
if ((lParam and _KeyPressMask) = 0) and
(GetKeyState(vk_Control) < 0) and (wParam = Ord('B')) then
begin
Result := 1;
WinExec('Notepad.exe', sw_Normal);
end;
end;function EnableHotKeyHook: BOOL; export;
begin
Result := False;
if hNextHookProc <> 0 then Exit;
hNextHookProc := SetWindowsHookEx(WH_KEYBOARD,
KeyboardHookHandler,
HInstance,
0);
Result := hNextHookProc <> 0;
end;function DisableHotKeyHook: BOOL; export;
begin
if hNextHookProc <> 0 then
begin
UnhookWindowshookEx(hNextHookProc);
hNextHookProc := 0;
MessageBeep(0);
MessageBeep(0);
end;
Result := hNextHookProc = 0;
end;procedure HotKeyHookExit;
begin
if hNextHookProc <> 0 then DisableHotKeyHook;
ExitProc := procSaveExit;
end;end.启动Delphi开启HKTest.DPR,然後Project and Build All以产生HKTest.DLLFile and New Application 存到与HKTest.DLL相同的目录中.在Form1上安置二个TButton,并撰写OnClick程式implementation{$R *.DFM}function EnableHotKeyHook: BOOL; external 'HKTEST.DLL';
function DisableHotKeyHook: BOOL; external 'HKTEST.DLL';procedure TForm1.Button1Click(Sender: TObject);
begin
if EnableHotKeyHook then
ShowMessage('HotKey Testing...');
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if DisableHotKeyHook then
ShowMessage('HotKey Testing..., DONE!!');
end;end.