高难度 -- 如何锁定Win 95/98屏幕?
如何在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




