为了好玩(50分)

  • 主题发起人 主题发起人 Another_eYes
  • 开始时间 开始时间
A

Another_eYes

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么模拟系统致命错误的显示方式?(蓝屏)
 
做一个DOS小程序.
 
不行,用户一切换不就完了!
 
呵呵,你还真想搞死系统吗? 那就容易了... )))

1. 用控制台程序,可以把键盘消息屏蔽掉(钩子)
2. DOS程序把键盘中断接管了.
 
调dos程序时开dos窗口不露馅了吗?
 
我想你应该知道如何使DOS程序最大化运行吧?
这里有个小技巧....

看钱达智的笔记.
 
说真的,我最讨厌Windows的就是它的所谓致命错误:真是的,
有什么大不了的事情,不就是咱的碟烂了点,又不是天塌下来,
难道就不能忽略?非要大惊小怪!

:)
 
dos程序在转入全屏方式前不是要在小窗口中闪一下吗?
那不露馅了?
 
用DirectX,在图形模式下做也可以。
1.用DLL中的HOOK截获全部的键盘消息,防止程序切换
2.启动DirectDraw独占模式
3.隐藏光标
4.画出图案
 
图形方式和文本方式太好区别了。

我提这个问题是因为我见过一个screen saver, 它就是模拟"致命错误"的显示方式,
并且几秒钟后就模拟机器重新启动, 包括内存检查等等, 都做得非常象。(与其说是
屏保,不如说是吓人的)。
我想知道它的原理。(显然不是用directdraw的图形方式实现的)
 
自己建立全屏幕显示程序,屏蔽系统键:_
 
如何建?
你等于没说嘛
 
先钩住屏幕,使用 黑屏 或 其它方式(把屏幕固定成你要的就象 死机 了)
,然后显示你要的 ,不一定要进入 '多事'dos
记得隐藏鼠标和钩住系统键就搞定了,唉,又出了个坏孩子
 
系统键
type TKeyState = ( kbOn, kbOff );
procedure SetSystemKey( value : TKeyState ); var NoUse : integer;
begin case value of
kbOn : SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @NoUse, 0);
kbOff : SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @NoUse, 0);
end; end;

然后MAXMIZE
然后SHOWMOUSE(OFF)
STAY ON TOP
如果程序运行到后台,那么SETFORGOURND
 
to eYes:
做好cc me 一份.
 
哈,一堆坏蛋
 
同意,比你还坏。
 
多谢各位指教
不过我问题的中心并不是怎么屏蔽系统键
而是怎样调整显示分辨率,如果不能进入文本显示方式,至少要使屏幕看起来象在文本
模式下,包括如何设置字体等等
 
最好的方式还是用DirectX
你可以控制所有的东东,包括键盘和分辨率,
哈哈!!!
 
后退
顶部