CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

高难度 -- 如何锁定Win 95/98屏幕?

楼主papachong(爬爬)2000-10-06 20:14:00 在 VC/MFC / 基础类 提问

如何在Visual   C++之中锁定屏幕,只让自己的程序运行?  
  在95/98系统之中,我想只运行自己的程序,隐掉桌面以及EXPLOER,  
  感觉上只有该程序在运行。  
  另外,如果需要恢复又如何恢复呢? 问题点数:60、回复次数:25Top

1 楼BluePenguin()回复于 2000-10-06 20:23:00 得分 0

将c:\windows\System.ini文件中[BOOT]中的Shell=Explorer.exe改成Shell=你自己的应用程序,即可。而在你的应用程序中可以决定是否进一步启动Explorer.exe。祝你成功!Top

2 楼lookthecat(天下草猫)回复于 2000-10-06 20:34:00 得分 0

Printscreen键之后,把图显示出来,然后锁定explorer,好象桌面一样,  
  或者把程序全屏幕,屏蔽windows热键。就搞定了。得四。Top

3 楼papachong(爬爬)回复于 2000-10-06 20:55:00 得分 0

谢谢BluePenguin   &   lookthecat;  
  不过我需要的东东是在程序里面直接调用,本程序仍可执行,不能重新启动.Top

4 楼lgs(老臭虫)回复于 2000-10-06 22:02:00 得分 0

象设置有口令的屏幕保护程序一样,屏蔽所有的系统键和桌面项目,即可。Top

5 楼donghaima(你知道我多么爱大海)回复于 2000-10-06 22:06:00 得分 0

1)隐藏系统任务条  
  2)你的程序最大化,   总在最前面.  
  3)屏蔽系统键,     当然程序结束必须恢复过来.Top

6 楼papachong(爬爬)回复于 2000-10-07 17:24:00 得分 0

to   lgs:  
  能否有具体的示例或者相关的SDK函数调用:  
  to   donghaima:  
  屏蔽系统键的关键是如何屏蔽Ctrl+Alt+Del键。另任务条如何隐掉呢?请具体告之.Top

7 楼papachong(爬爬)回复于 2000-10-07 17:29:00 得分 0

to   lgs:  
  能否有具体的示例或者相关的SDK函数调用:  
  to   donghaima:  
  屏蔽系统键的关键是如何屏蔽Ctrl+Alt+Del键。另任务条如何隐掉呢?请具体告之.Top

8 楼Sikao(有点意思)回复于 2000-10-07 17:50:00 得分 0

要屏蔽系统键,   必须使用键盘钩子(Hook).   把不必要的按键过滤掉!!!   或者把所有的按钮干脆不给任何别的应用.     然后要锁定屏幕嘛,   你也可以安装鼠标钩子,   把所有的老鼠事件只给自己的应用程序,   不给任何别的应用!!!     这样,   我想效果就得到了!Top

9 楼lu0(lu0.126.com)回复于 2000-10-08 09:13:00 得分 0

钩子勾不到CTL+ATL+DEL的...  
  屏蔽CTL+ATL+DEL的方法是将自己伪装成屏幕保护,让RIT放弃CTL+ATL+DEL的监控.  
  到htttp://lu0.126.com找答案.Top

10 楼donghaima(你知道我多么爱大海)回复于 2000-10-08 11:16:00 得分 40

关于如何屏蔽CTRL+ALT+DEL  
  API     BOOL   SystemParametersInfor();  
  这个请参见MSDN获得具体的参数设置  
   
  屏蔽;  
  DWORD   noldval;  
  SysttemParametersInfo(SPI_SETSCREENSAVERRUNNING,  
                                              1,  
                                              &noldval,  
                                              0);  
   
   
  解除屏蔽;  
  SysttemParametersInfo(SPI_SETSCREENSAVERRUNNING,  
                                              0,  
                                              &noldval,  
                                              0);  
   
   
  关于任务条  
  它是特殊的窗口,没有标题,窗口类是:Shell_TrayWnd  
  可以使用FindWindow()获得它的句柄,其次再用ShowWindow()隐藏之.  
  handle=FindWindow("Shell_TrayWnd",NULL);  
  ShowWindow(handle,SW_HIDE);  
   
  另外桌面也是个特别的窗口,窗口类是:   Program  
  以此类推。  
  Top

11 楼papachong(爬爬)回复于 2000-10-08 19:00:00 得分 0

to   donghaima:  
  谢谢,希望你能继续指示如何关闭桌面?(即桌面显示一片蓝色,就象win刚启动时)  
  to   Sikao:  
  你这种方法试过不行,而且处理起来较敏锁。  
  to   lu0:  
  我去看过网页了,但是云深不知处,不知你所说的是哪个。  
  Top

12 楼donghaima(你知道我多么爱大海)回复于 2000-10-09 08:05:00 得分 0

关于如何屏蔽CTRL+ALT+DEL  
  API     BOOL   SystemParametersInfor();  
  这个请参见MSDN获得具体的参数设置  
   
  屏蔽;  
  DWORD   noldval;  
  SysttemParametersInfo(SPI_SETSCREENSAVERRUNNING,  
                                              1,  
                                              &noldval,  
                                              0);  
   
   
  解除屏蔽;  
  SysttemParametersInfo(SPI_SETSCREENSAVERRUNNING,  
                                              0,  
                                              &noldval,  
                                              0);  
   
   
  关于任务条  
  它是特殊的窗口,没有标题,窗口类是:Shell_TrayWnd  
  可以使用FindWindow()获得它的句柄,其次再用ShowWindow()隐藏之.  
  handle=FindWindow("Shell_TrayWnd",NULL);  
  ShowWindow(handle,SW_HIDE);  
   
  另外桌面也是个特别的窗口,窗口类是:   Program  
  以此类推。  
   
  Top

13 楼5982(5982)回复于 2000-10-09 11:12:00 得分 10

在win98中隐藏ctrl+alt+del试试这个:  
  //隐藏    
  SystemParametersInfo(SPI_SCREENSAVERRUNNING,TRUE,NULL,SPIF_SENDCHANGE);  
  //显示  
  SystemParametersInfo(SPI_SCREENSAVERRUNNING,FALSE,NULL,SPIF_SENDCHANGE);  
   
   
  Top

14 楼xqwzlm(xwqzlm)回复于 2000-10-09 12:00:00 得分 10

hwnd   hwndFound=::FindWindow(TEXT("Progman"),NULL);  
  EnableWindow(hwndFind,false);Top

15 楼xqwzlm(xwqzlm)回复于 2000-10-09 12:06:00 得分 0

hwnd   hwndFind=FindWindow(TEXT("Progman"),NULL);  
  EnableWindow(hwndFind,FALSE);  
  Top

16 楼hcp(hcp)回复于 2000-10-09 21:39:00 得分 0

代码如下:  
    //隐掉任务条:  
  HWND   hwnd;  
  hwnd=::FindWindow("Shell_TrayWnd",NULL);  
  if(hwnd)  
      ::ShowWindow(hwnd,SW_HIDE);     //恢复:SW_SHOW  
      //屏蔽Ctrl+Alt+Del键:  
          SystemParametersInfo(SPI_SCREENSAVERRUNNING,   TRUE,   NULL,   0);//恢复:FALSE  
    试一试以上代码,我想应该OK。  
                               
  Top

相关问题

  • ……屏幕锁定……
  • 高难度............................................
  • 高难度
  • 高难度
  • 高难度
  • 急!如何锁定屏幕?
  • 如何锁定屏幕?
  • ◎◎◎关于屏幕锁定
  • delphi程序锁定屏幕
  • 高难度问题。。。

关键词

  • 屏蔽
  • 桌面
  • 屏幕
  • 系统
  • 应用程序
  • noldval
  • setscreensaverrunning
  • systtemparametersinfo
  • traywnd
  • 键

得分解答快速导航

  • 帖主:papachong
  • donghaima
  • 5982
  • xqwzlm

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo