在delphi中编写一个程序实现以下功能:
1。屏蔽桌面;
2。屏蔽菜单;
3。屏蔽快捷键
用户只有通过程序中设定好的按钮才能进入我的电脑,我的文挡等,屏蔽其他的功能。这个程序就是应用在教学软件中,禁止学生做一些与学习无关的操作。
给个思路也可以。
先谢谢大家。
1。屏蔽桌面;
2。屏蔽菜单;
3。屏蔽快捷键
用户只有通过程序中设定好的按钮才能进入我的电脑,我的文挡等,屏蔽其他的功能。这个程序就是应用在教学软件中,禁止学生做一些与学习无关的操作。
给个思路也可以。
先谢谢大家。
解决方案 »
- 哪位帮忙翻译下VLFeat中SIFT算法的Pascal Header
- 关于delphi的ListView控件问题
- Embarcadero Shines Light on Delphi Prism™ .NET development system for Windows, Mac OS X and Linux
- delphi 中二进制如何表示
- c语言头文件向pascal转换问题。
- 请问类中方法覆盖的问题?
- 求maxlength-1 长的子串的算法
- BDE和数据库问题!
- 声名变量的问题
- 请问仁兄一个SQL难题!
- 问个socket通信问题
- 用OLEContainer在系统中嵌入word编辑环境时,当双击word时,word的菜单和工具栏充满了整个Form,怎么能够控制它们只显示在一个Panel里面?
现在的问题是如何屏蔽系统的热键?
CreateDesktop
OpenDesktop
SwitchDesktop
CloseDesktop
CreateDesktop
OpenDesktop
SwitchDesktop
CloseDesktop但是系统热键是屏蔽不掉吧,只能拦截系统消息吧,这样方法有很多,勾子函数
Windows;var
hHk : HHOOK;{$R *.res}
function keyHookProc(nCode: Integer; WParam: WPARAM; LParam: LPARAM): LRESULT; stdcall;
begin
Result := 1;
if nCode < 0 then
CallNextHookEx(hHk,nCode,WParam,LParam);
end;function EnableHook: Boolean; stdcall; export;
begin
if hHk = 0 then
begin
hHk := SetWindowsHookEx(13,@keyHookProc,HInstance,0);
Result := True;
end
else
Result := False;
end;function DisableHook: Boolean; stdcall; export;
begin
if hHk <> 0 then
begin
UnHookWindowsHookEx(hHk);
hHk := 0;
Result := True;
end
else
Result := False;
end;
exports
EnableHook,
DisableHook;
end.
这个函数可以屏所有的键盘控键.
我可以屏蔽桌面、任务栏,也屏蔽了win组合键和alt+Tab。现在的问题是始终无法屏蔽ctrl+alt+del,不知道大家有没有解决的方法。
另外,还有程序还有一个要求:启动本程序时,在桌面上打开的其他窗口全部屏蔽,也就是说只保留我这个程序的窗口,其他已经打开的窗口无法继续操作了。这个怎么做?
期待大家的回帖。
Implementation var Hwnd:THandle; Tmp:integer; procedure TForm1.Button1Click(Sender: TObject); begin Hwnd:=FindWindow('Shell_TrayWnd',nil); if Hwnd<>0 then ShowWindow(Hwnd,SW_HIDE); //隐藏任务栏 SystemParametersInfo(SPI_SCREEN SAVERRUNNING,1,@Tmp,0); //屏蔽系统热键 end; procedure TForm1.Button2Click(Sender: TObject); begin Hwnd:=FindWindow('Shell_TrayWnd',nil); ShowWindow(Hwnd,SW_SHOW); //恢复任务栏 SystemParametersInfo(SPI_SCR EENSAVERRUNNING,0,@Tmp,0); //恢复系统热键 end;