我想在Delphi中制作一个不处理鼠标和键盘事件的窗体,并将它们传递到其下方的窗口。我怎样才能做到这一点?
最佳答案
您可以利用USER32.DLL的BlockInput程序
你可以尝试这个(小心!):
procedure Bloqued(block:boolean);
var
milib: THandle;
BlockInput : function(Block: BOOL): BOOL; stdcall;
begin
milib := GetModuleHandle('USER32.DLL');
if milib <> 0 then begin
@BlockInput := GetProcAddress(milib, 'BlockInput');
if @BlockInput <> nil then begin
BlockInput(block);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject) ;
begin
Bloqued(true);
Sleep(1000);
Bloqued(false);
end;
没有动态加载的版本:
Function BlockInput (Block: BOOL): BOOL; stdcall; External 'USER32.DLL';
procedure TForm1.Button1Click(Sender: TObject);
begin
BlockInput(true);
Sleep(1000);
BlockInput(false);
end;
关于delphi - 不处理鼠标和键盘事件的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16460607/