ctrl+alt+del?
曾经向网上热心的朋友请教如何使ctrl失效,先后有两位回复,先表示感谢!
本人的目的是做一个在商场中供顾客使用的查询系统.所以要使ctrl+alt+del按下时关闭
程序的对话框不出现.
依照一朋友的指点,发现效果不佳.
程序内容如下:
先将windows98的任务栏的"总在最前"去掉;再
form.keyreview为true;
form.align为alclient;
form的onkeydown为:if key=17 then key:=0;
请各朋友指正.
另外本人孤陋寡闻,不知键盘钩子为何物?望指点!
问题点数:50、回复次数:6Top
1 楼kxy(手举穿肠毒药,怀抱刮骨钢刀)回复于 2000-06-05 10:14:00 得分 0
你去看看SystemParametersInfo这个API函数,设置SPI_SETSCREENSAVERRUNNING
让系统认为屏幕保护在运行,ctrl+alt+del就会失效.Top
2 楼Hank(星星农场)回复于 2000-06-05 13:20:00 得分 50
仔细看一下SystemParametersInfo()API函数。
然后可以写一个自定义函数,将系统键按自己的要求设置。
函数如下:
procedure SetSystemKey(Enable:Boolean);
//屏蔽或恢复系统功能键仅适用于Win9X (Ctrl+Alt+Del,Ctrl+ESC,Alt+Tab,WinKey)
var
Temporary:Integer;
begin
case Enable of
True: SystemParametersInfo(Spi_screensaverrunning,0,@Temporary,0);
False: SystemParametersInfo(Spi_screensaverrunning,1,@Temporary,0);
end;
end;
然后直接调用SetSystemKey(True);可以使Ctrl+Alt+Del失效。
Ok!
HankTop
3 楼zhaohang(眨眼杀人)回复于 2000-06-06 16:17:00 得分 0
试一试下面的程序:
program small;
uses
WinProcs;
{$R *.RES}
var
Dummy : integer;
begin
Dummy := 0;
{Disable ALT-TAB}
SystemParametersInfo( SPI_SETFASTTASKSWITCH, 1, @Dummy, 0);
{Disable CTRL-ALT-DEL}
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @Dummy, 0);
end.
Top
4 楼halfone(蛮牛)回复于 2000-06-06 21:59:00 得分 0
在已答问题中去找吧!Top
5 楼shylsz(星际第一颠)回复于 2000-06-07 00:26:00 得分 0
用
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, 0, 0);Top
6 楼halfone(蛮牛)回复于 2000-06-07 09:01:00 得分 0
//函数声明
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL';
//调用
RegisterServiceProcess(GetCurrentProcessID, 1);//将HIDE
//调用
RegisterServiceProcess(GetCurrentProcessID, 0);//将SHOWTop




