我单位要求我做一个程序,在电脑中用这个程序界面代替WIN98的界面,在代替界面上只有要培训学习的几个程序连接按键,在要学习时就按相应的按键运行学习程序,关闭学习程序后又回到这个代替WIN98的界面程序中,而程序要把WIN98里的其它功能屏蔽掉不让学员使用,就好象以前网吧机上装的限制使用功能的,在学习机中不装鼠标只有键盘。有时程序一但失去焦点就无法操作了,要怎样才能让运行的程序不会因学员乱按键盘触动其它而失去焦点不能操作呢?因为没做过这类的,想请教一下各位,谁做过的请指点一下思路,或者有其它源程序例子给一个参考一下好吗?谢谢!

解决方案 »

  1.   

    BOOL EnableWindow(          HWND hWnd,
        BOOL bEnable
    );
      

  2.   

    EnableWindow(GetDesktopWindow, false);
      

  3.   

    TO aiirii
       大哥,这两名句话是有什么作用,请讲一下好吗?谢谢
      

  4.   

    应该就是一个函数,附带两个参数,getdesktopwindow的意思是使windows桌面最前化显示,后面的false,自然就是让这个状态不能用了。
      

  5.   

    TO aiirii
       这两句应怎样用,我DELPHI水平很一般的,刚学用没多久。谢谢!
      

  6.   

    用Alt + tab也不行,我在程序中的FormActivate事件中用了
    mainfrm.WindowState := wsMaximized; //覆盖屏幕;
    ShowCursor(False);
    而且操作者有很多是40多岁的,他们都是不太懂电脑的,如果不把程序永远放在最上层,他们弄一会又不知进到哪里了,又跑来找我,很是烦人。
      

  7.   

    我的意思是,除了我自已关闭我的程序以外,在我的程序运行的时候,其它的操作都不能用,不能打开"开始"菜单,不能打开任务条,不能调用WINDWOS的任何东西。
      

  8.   

    是不是在API中有个激活窗口的函数?我的想法是在窗口失去焦点时就用这个API函数再把该窗口激活,这样能行吗?
      

  9.   

    谢谢各位,我用http://community.csdn.net/Expert/topic/2781/2781280.xml?temp=.1063349贴中所说的方法已解决了我的问题.