模拟Windows开机动态色带条

一、首先使用 ResHacker 将 NTOSKRNL.EXE 中的资源 HACK 出来,安装过 ResHacker 后,找到系统目录下的 NTOSKRNL.EXE, 然后打开文件,在位图资源处找到我们需要的 Windows 开机画面,然后用保存资源成BMP的方式将资源导出到一个BMP文件,通过简单的处理就可以得到静态的色带的BMP文件 dynaline.bmp 了!:->:


图一 使用 ResHacker 得到开机画面

二、程序设计

接下来我们需要在 VC 中创建一个简单的对话框工程 DemoLine

导入我们获得的静态位图 dynaline.bmp,在工程中加入一个bitmap 资源 IDB_DYNLINE

在的对话框中加入静态的 Picture 控件,将 CStatic 属性设成 bitmap,

然后创建一个派生于 CStatic 的 MFC 新类 CDynLine,我们让这个类来完成动画显示!

在类 CDynLine 的实现代码中加入工作线程,它负责将静态的画面显示成动态的色带条,代码如下:

UINT  DispThread(LPVOID lpParam)
{
  CDynLine* pWnd = (CDynLine*)lpParam;
  CClientDC dcClient(pWnd);
  CDC    dcMem;
  dcMem.CreateCompatibleDC(&dcClient);
  BITMAP  bits;
  pWnd->m_bmp.GetBitmap(&bits);
  CBitmap *pBmp = (CBitmap*)dcMem.SelectObject( pWnd->m_bmp );
  CSize  size(0,0);
  while(g_lDisplay)
  {
    if( size.cx < bits.bmWidth )
      size.cx +=2;
    else
      size.cx = 0;
    dcClient.BitBlt( 0,0,size.cx,bits.bmHeight,&dcMem,(bits.bmWidth-size.cx),0,SRCCOPY);
    dcClient.BitBlt( size.cx,0,(bits.bmWidth-size.cx),bits.bmHeight,&dcMem,0,0,SRCCOPY);
    Sleep( 20 );
  }
  return 1;
}

动态显示的算法很简单,就是不断移动填充图象的位置。

时间: 2024-10-25 15:53:50

模拟Windows开机动态色带条的相关文章

windows编程-如何模拟WINDOWS 自带的AERO PEEK预览

问题描述 如何模拟WINDOWS 自带的AERO PEEK预览 最近在做一个项目,希望实现类似的效果,把一个窗口的内容实时更新到另外一个窗口中.求问各位大大有没有什么思路,他那个预览是会动态更新里面内容的,比方说在看视频,里面内容也会更新.

WPF模拟Windows 7气象组件

本篇将利用Weather Reader User Control(WRUC) 模拟Windows 7 Gadgets 中的气象组件.WRUC 控件是使用C#和 WPF 制作的,首先下载WRUC 源代码,其实该控件已经实现了所有天气预报的功能,只需将DLL 库导入到其他项目使用即可. WRUC 更新 在使用WRUC 控件之前先了解一下它的工作模式,并完善其中的一些功能.通过源码可以看出控件是通过http://weather.service.msn.com 服务获取某地天气数据(XML格式),再将X

JS仿Windows开机启动Loading进度条的方法

 这篇文章主要介绍了JS仿Windows开机启动Loading进度条的方法,实例分析了javascript操作html元素及对应样式实现特效的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JS仿Windows开机启动Loading进度条的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <html> <title>JS仿Windows开机启动的Loading进度条</title> </head> <body st

JS仿Windows开机启动Loading进度条的方法_javascript技巧

本文实例讲述了JS仿Windows开机启动Loading进度条的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <html> <title>JS仿Windows开机启动的Loading进度条</title> </head> <body style="margin:0;background-color:#5279CE;" scroll=no> <table id=lw style="disp

模拟Windows下CPU占用率的控件及其实现

参考了一下Windows任务管理器(图一),于是模仿MS的东西,做了这个控件 (图二). 图一 Windwows管理器 图二 我的 Control 二.功能说明 我把这个东东做成了ActiveX控件, 为的是通用性,这样,其他的开发工具(VB.Delphi等)也能使用它,而不仅限 于VC. 我是用MFC来写的这个控件,该控件提供的大致功能有:设置占用比率颜 色.未占用比率颜色.设置占用率.设置背景颜色.字体颜色,等等. 控件的 方法列表如下: void SetFreeColor(OLE_COLO

U盘制作Windows开机加密狗教程

U盘等移动设备除了可以用来储存文件,装系统以外,还可以用来制作加密狗.这篇文章中所指的加密狗仅指针对Windows系统开机的加密狗.它的作用是为了避免他人随便开启自己的电脑查看自己的私密信息,除了设置个人密码外,还可以通过简单的设置让电脑只有在插入自己的U盘后才能启动,否则启动后即自动关机. 制作这样一个加密狗并不需要很复杂的过程,也不像一位朋友所认为那样的需要什么英语基础什么的.照着下面几个步骤,一分钟之内任何人都能做出一个属于自己的加密狗. 1.插上自己的U盘或者其他移动存储设备 2.在U盘

Win7系统重装后卡在正在启动Windows开机界面怎么办

  Win7系统重装后卡在开机界面的解决方法: 一.首先可以看看该故障出现的原因是否是因为启动了acpi造成的,大家试着重启一下计算机,然后在系统还没有启动好的时候按F11进入BIOS,接下来禁用ACPI,然后再次重启计算机即可. 二.大家若是有系统安装盘的话,可以试着利用系统盘引导进入系统,然后将分区中的Winload.exe覆盖替换一下.替换方式很简单,大家若是安装在c盘,则将文件路径更改为:C:/Windows/System32/Winload.exe即可,如果是将系统安装在D盘或者是E盘

解除Windows开机登陆密码的5种方法

  方法1.在开机时,按下F8进入"带命令提示符的安全"模式 输入"NET USER+用户名+123456/ADD"可把某用户的密码强行设置为"123456″ 方法2.在计算机启动时按[F8]及选[Safe Mode With Command Prompt] 2.选[Administrator]后便会跳出[Command Prompt]的窗口 3.用[Net]的命令增加一个用户,例:增加一个用户名为alanhkg888,命令语法如下: net user a

Windows开机自启动程序的方法

  开机启动项 [启动项目就是开机的时候系统会在前台或者后台运行的程序] 当Windows(操作系统)完成登录过程,进程表中出现了很多的进程!Windows在启动的时候,自动加载了很多程序. 许多程序的自启动,给我们带来了很多方便,这是不争的事实,但不是每个自启动的程序对我们都有用;更甚者,也许有病毒或木马在自启动行列! 其实Windows2000/XP中的自启动文件,除了从以前系统中遗留下来的Autoexec.bat文件中加载外,按照两个文件夹和9个核心注册表子键来自动加载程序的. [启动项分