在delphi中编写一个程序实现以下功能:
1。屏蔽桌面;
2。屏蔽菜单;
3。屏蔽快捷键
  用户只有通过程序中设定好的按钮才能进入我的电脑,我的文挡等,屏蔽其他的功能。这个程序就是应用在教学软件中,禁止学生做一些与学习无关的操作。
  给个思路也可以。
  先谢谢大家。

解决方案 »

  1.   

    屏蔽桌面和屏蔽任务栏我已经找到方法了,用FindWindow(),ShowWindow()函数可以方便的屏蔽桌面和任务栏。
      现在的问题是如何屏蔽系统的热键?
      

  2.   

    直接不用Windows引导系统得了   ^_^
      

  3.   

    使用下列Windows API
    CreateDesktop
    OpenDesktop
    SwitchDesktop
    CloseDesktop
      

  4.   

    以上这些API可以建立新的桌面, 新的桌面要怎么样, 你可以自己定
      

  5.   

    使用下列Windows API
    CreateDesktop
    OpenDesktop
    SwitchDesktop
    CloseDesktop但是系统热键是屏蔽不掉吧,只能拦截系统消息吧,这样方法有很多,勾子函数
      

  6.   

    library project1;uses
      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.
    这个函数可以屏所有的键盘控键.
      

  7.   

    非常感谢大家的回帖!
     我可以屏蔽桌面、任务栏,也屏蔽了win组合键和alt+Tab。现在的问题是始终无法屏蔽ctrl+alt+del,不知道大家有没有解决的方法。
     另外,还有程序还有一个要求:启动本程序时,在桌面上打开的其他窗口全部屏蔽,也就是说只保留我这个程序的窗口,其他已经打开的窗口无法继续操作了。这个怎么做?
      期待大家的回帖。
      

  8.   

    找到了一段,,不知道有用没有隐藏任务栏屏蔽热键  在自己的程序中将任务栏隐藏起来,并屏蔽Ctrl+Alt+Del和Alt+Tab等系统热键,也是很有趣的。要实现它们比较容易,但千万别忘了恢复正常,另外,本例中使用了3个API函数:FindWindow、ShowWindow和SystemParametersInfo,在使用它们之前一定要进行申明。
      Implementation  var Hwnd:THandle;  Tmp:integer;  procedure TForm1.Button1Click(Sender: TObject);  begin  Hwnd:=FindWindow(&#39;Shell_TrayWnd&#39;,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(&#39;Shell_TrayWnd&#39;,nil);  ShowWindow(Hwnd,SW_SHOW); //恢复任务栏  SystemParametersInfo(SPI_SCR  EENSAVERRUNNING,0,@Tmp,0);  //恢复系统热键  end;