mikebai.com

  • Home
  • dev
  • DotNET
  • M365
  • 搞笑
  • 杂七杂八
  • FocusDict
dev
dev

带您深入了解硬盘分区表与逻辑锁

带您深入了解硬盘分区表与逻辑锁 【文章导读】 相信听说过硬盘MBR、硬盘分区表、DBR的朋友一定都不少。可是,你清楚它们分别起什么作用吗?它们的具体位置又在哪里呢?硬盘上的MBR只有一份吗?什么是硬盘逻辑锁?如何制造和破解它呢??…… 第1页:大补血 扇区编号的基本知识先了解第2页:硬盘MBR及硬盘分区表介绍第3页:硬盘DBR介绍第4页:基本知识的延伸第5页:观察主MBR第6页:观察C分区DBR第7页:观察D分区MBR第8页:MBR和DBR的遍历流程详解第9页:我是无聊的小锁匠第10页:总结一下制作逻辑锁的必要步骤 相信听说过硬盘MBR、硬盘分区表、DBR的朋友一定都不少。可是,你清楚它们分别起什么作用吗?它们的具体位置又在哪里呢?硬盘上的MBR只有一份吗?什么是硬盘逻辑锁?如何制造和破解它呢??本文转载自家缘网,文中内容不代表本站观点,仅供参考。 一、必备基础知识: ● 有关扇区编号的基本知识: 介绍一下有关硬盘扇区编号规则的3个易混淆的术语“物理扇区编号“、“绝对扇区编号“和“逻辑扇区编号“。 我们都知道硬盘扇区的定位有两种办法: 1. 直接按柱面、磁头、扇区3者的组合来定位(按这种编号方式得到的扇区编号称为物理扇区编号); 2. 按扇区编号来定位(又分“绝对扇区编号“和“逻辑扇区编号“两种)。 这两种定位办法的换算关系如下图:(设图中所示硬盘每道扇区数均为63)   如图所示,由于目前大多数硬盘采用的是一种“垂直分区结构“,故左图一磁头数为2、盘片数为1的硬盘,图中0磁头所对扇区的表示方法就有2种,即:0柱面0磁头1扇区=绝对0扇区,而1磁头所对扇区的表示方法也有2种,即:1柱面0磁头1扇区=绝对63扇区。如果是如右图所示磁头数为4、盘片数为2的硬盘,那么则顺着垂直于盘片的箭头线方向进行如图的绝对扇区的编号。 上面,我们说了物理扇区、绝对扇区的编号方式,而逻辑扇区编号由于是操作系统采用的扇区编号方式,而操作系统只能读取分区内部的数据内容,故逻辑扇区是从各分区内的第一个扇区开始编号,如我们下文对mbr的说明可以知道:mbr这个扇区所在硬盘磁道是不属于分区范围内的,紧接着它后面的才是分区的内容,因此一般来说绝对63扇区= c:分区逻辑1扇区。 好,让我们列个表总结一下3种编号方式的不同: 需要说明的是:本文假设所使用的硬盘每道扇区数都为63。各位手头上所使用的硬盘具体的每道扇区数则可以在BIOS设置内有关硬盘参数的设置内查到。 ● 有关MBR、分区表、DBR的基本知识: ☆ 硬盘MBR(硬盘主引导记录)及硬盘分区表介绍     硬盘MBR就是我们经常说的“硬盘主引导记录”,简单地说,它是由FDISK等磁盘分区命令写在硬盘     绝对0扇区的一段数据,它由主引导程序、硬盘分区表及扇区结束标志字(55AA)这3个部分组成,如下表:     这3部分的大小加起来正好是512字节=1个扇区(硬盘每扇区固定为512个字节),因此,人们又形象地把MBR称为“硬盘主引导扇区”。     这个扇区所在硬盘磁道上的其它扇区一般均空出,且这个扇区所在硬盘磁道是不属于分区范围内的,紧接着它后面的才是分区的内容(也就是说假如该盘每磁道扇区数为63,那么从绝对63扇区开始才是分区的内容)。 ☆ 硬盘DBR(硬盘分区引导记录)介绍     DBR是各个分区自己的引导记录,又称“分区引导记录”,它是由FORMAT高级格式化命令写在各个分区开始处第一个扇区(比如说:主分区C:从1磁头0柱面1扇区=逻辑1扇区=绝对63扇区)开始,那么C:区逻辑1扇区就是DBR所存放的位置)的一段数据.这段数据主要由以下几个部分组成:     1.占3个字节的跳转指令;     2.占8个字节的操作系统厂商标识及版本号;     3. 占19个字节的分区参数表(又称BPB),里面存放着对该分区进行读写操作时所必备的参数(如该分区内每扇区所包含的字节数、每簇扇区数、每个磁道的扇区数、该分区FAT份数等);     4.占480个字节的DOS引导代码,它负责把DOS引导文件IO.SYS、MSDOS.SYS装入内存;     5.占2个字节的结束标志字”55AA”.     以上5个部分也正好占1个扇区;和MBR有所不同的是:DBR扇区后面一般就紧接着存放该分区的FAT(文件分配表,共2份)。     综上所述,我们知道硬盘MBR负责总管硬盘分区,只有分区工具才能对它进行读写(如FDISK);而DBR则负责管理某个具体的分区,它是用操作系统的高级格式化命令(如FORMAT)来写入硬盘的。在系统启动时,最先读取的硬盘信息是MBR,然后由MBR内的主引导程序读出DBR,最后才由DBR内的DOS引导代码读取操作系统的引导程序,其中任何一个环节出了问题,操作系统都无法正常启动成功,如果是MBR部分出了问题,即使只是”55AA”标志字丢失或被改为其他值,通常都会出现“无效分区表“、逻辑盘丢失、启动死机等现象;而如果是DBR部分出了问题,通常会出现“未格式化的分区”的错误提示。 ☆ 基本知识的延伸     实际上,在每一个分区的前面,都有一份MBR,在每一个分区的开始处,都有一份DBR。通常我们把存放在绝对0扇区的那份MBR称为主MBR或C分区MBR。这样我们就能画出如下的MBR、DBR的存放位置表:市面上很多分区表保存软件(如KV3000的分区表保存功能)实际上保存的就是表中各个分区前MBR区的数据。 ● 进距离观察MBR、DBR:     口说无凭,眼见为实。还是让我们用工具来具体观察一下吧:)我们要观察的盘全部分作DOS区,在DOS区内共分C:、D:、E:三个盘。 1、观察主MBR:     首先得准备工具,这里我们推荐DISKEDIT兼容FAT32的版本。该程序启动后界面如下:     选“PHYSICAL DEVICE”按OK进入。这时候,DISKEDIT首先显示的就是硬盘绝对0扇区的MBR信息,如下图:     从图中我们可以看到MBR的0~01BD字节为主引导程序;01BE~01FD这64字节为硬盘分区表信息,每项分区表占16字节;最后是结束标志字55AA。下面我们详细分析一下分区表各个字节所表示的意思:     注1:此处第一个

2009-04-11 0comments 95hotness 0likes mikebai Read all
dev

手把手教你安装VMware虚拟机

   VMware Workstation虚拟机是一个在Windows或Linux计算机上运行的应用程序,它可以模拟一个基于x86的标准PC环境。这个环境和真实的计算机一样,都有芯片组、CPU、内存、显卡、声卡、网卡、软驱、硬盘、光驱、串口、并口、USB控制器、SCSI控制器等设备,提供这个应用程序的窗口就是虚拟机的显示器。 在使用上,这台虚拟机和真正的物理主机没有太大的区别,都需要分区、格式化、安装操作系统、安装应用程序和软件,总之,一切操作都跟一台真正的计算机一样。 下面,就请大家根据我们的介绍,一步步操作,自己安装一台可以操作的虚拟机。 构建虚拟机 下面通过例子,介绍使用VMware Workstation创建虚拟机的方法与步骤。 1.运行VMware Workstation 6,单击“File→New→Virtual Machine”命令,进入创建虚拟机向导,或者直接按“Crtl+N”快捷键同样进入创建虚拟机向导。 2.在弹出的欢迎页中单击“下一步”按钮。 3.在“Virtual machine configuration”选项区域内选择“Custom”单选按钮。 4.在Choose the Virtual Machine Hardware Compatibility页中,选择虚拟机的硬件格式,可以在Hardware compatibility下拉列表框中,在VMware Workstation 6、VMware Workstation 5或VMware Workstation 4三者之间进行选择。通常情况下选择Workstation 6的格式,因为新的虚拟机硬件格式支持更多的功能,选择好后单击“下一步”按钮。 5.在Select a Guest Operating System对话框中,选择要创建虚拟机类型及要运行的操作系统,这里选择Windows 2000 Professional操作系统,单击“下一步”按钮。 6.在Name the Virtual Machine对话框中,为新建的虚拟机命名并且选择它的保存路径。 7.在Processors选项区域中选择虚拟机中CPU的数量,如果选择Two,主机需要有两个CPU或者是超线程的CPU。 8.在Memory for the Virtual Machine页中,设置虚拟机使用的内存,通常情况下,对于Windows 98及其以下的系统,可以设置64MB;对于Windows 2000/XP,最少可以设置96MB;对于Windows 2003,最低为128MB;对于Windows Vista虚拟机,最低512MB。 9.在Network Type页中选择虚拟机网卡的“联网类型”,如图1所示。 图1 网络连接设置 图2 创建快照 选择第一项,使用桥接网卡(VMnet0虚拟网卡),表示当前虚拟机与主机(指运行VMware Workstation软件的计算机)在同一个网络中。 选择第二项,使用NAT网卡(VMnet8虚拟网卡),表示虚拟机通过主机单向访问主机及主机之外的网络,主机之外的网络中的计算机,不能访问该虚拟机。 选择第三项,只使用本地网络(VMnet1虚拟网卡),表示虚拟机只能访问主机及所有使用VMnet1虚拟网卡的虚拟机。主机之外的网络中的计算机不能访问该虚拟机,也不能被该虚拟机所访问。 选择第四项,没有网络连接,表明该虚拟机与主机没有网络连接。 10.在Select I/O Adapter Type页中,选择虚拟机的SCSI卡的型号,通常选择默认值即可。 11.在Select a Disk页中,选择Create a new virtual disk(创建一个新的虚拟硬盘)。 12.在Select a Disk Type页中,选择创建的虚拟硬盘的接口方式,通常选择默认值即可。 13.在Specify Disk Capacity页中设置虚拟磁盘大小,对于一般的使用来说,选择默认值即可。 14.在Specify Disk File页的Disk file选项区域内设置虚拟磁盘文件名称,通常选择默认值即可,然后单击完成按钮。 安装操作系统 在虚拟机中安装操作系统,和在真实的计算机中安装没有什么区别,但在虚拟机中安装操作系统,可以直接使用保存在主机上的安装光盘镜像(或者软盘镜像)作为虚拟机的光驱(或者软驱)。 可以用打开前文创建的Windows 2000虚拟机配置文件,在Virtual Machine Settings页中的Hardware选项卡中,选择CD-ROM项,在Connection选项区域内选中Use ISO image单选按钮,然后浏览选择Windows 2000安装光盘镜像文件(ISO格式)。如果使用安装光盘,则选择Use physical drive并选择安装光盘所在光驱。 选择光驱完成后,然后单击工具栏上的播放按钮,打开虚拟机的电源,用鼠标在虚拟机工作窗口中单击一下,进入虚拟机。 以后在虚拟机中安装操作系统,就和在主机中安装一样了,在此不再介绍。 【说明】如果想从虚拟机窗口中切换回主机,需要按下Ctrl+Alt热键。 安装VMware Tools 在虚拟机中安装完操作系统之后,接下来需要安装VMware Tools。VMware Tools相当于VMware虚拟机的主板芯片组驱动和显卡驱动、鼠标驱动,在安装VMware Tools后,可以极大提高虚拟机的性能,并且可以让虚拟机分辨率以任意大小进行设置,还可以使用鼠标直接从虚拟机窗口中切换到主机中为。 1.从VM菜单下选择安装VMware Tools。 2.按照提示安装,最后重新启动虚拟机即可。 虚拟机快照 如果想保存某个虚拟机的状态,可以使用快照功能。可以单击工具栏上的快照按钮,或者依次单击VM→Snapshot→Snapshot Manager,也可以按Ctrl+M快捷键,进入快照管理器,单击Take Snapshot按钮创建一个快照,如图2所示。由于创建快照后,可以随时从其他状态返回至快照状态。因此,在进行安装或配置测试时,可以在关键位置创建快照,当安装或测试失败时,可以迅速返回快照,或者从快照开始进行新的测试或实验。 当创建快照后,可以选中快照,然后单击go to按钮,返回到快照点。 【说明】在虚拟机中,可以创建任意个快照并不受限制,但是,却受限于虚拟机所在分区的剩余空间大小。因此,若创建多个快照,应当拥有足够的硬盘空间。 虚拟机克隆 可以从一个快照点或者从当前的状态(就是没有创建快照或者创建快照后又进行了一些操作后的状态),单击clone按钮,进入克隆对话框。当需要保存当前系统状态,或者需要做对比实验时,克隆功能无疑是最快捷和有效的方式。 1.在Clone Source页中,选中An existing snapshot (powered off only)单选按钮,在其下拉列表框中可以选择已经创建的快照点。 2.在Clone Type页中,单击Create a linked clone(创建一个克隆链接)。如果选择第二项Create a full clone,则创建一个完整的克隆。这两个区别在于:第一项创建的虚拟机将依赖于源虚拟机的存在,使用这项创建的虚拟机占用较少的硬盘空间;第二项创建的虚拟机是一个独立的虚拟机,但占用较多的硬盘空间。 3.在Name of the New Virtual Machine页中,设置克隆虚拟机的名称,并且修改保存路径。 4.在Cloning Virtual Machine页中,当克隆完成后,单击Close按钮。 5.克隆完成后,返回到快照管理器,可以看到克隆链接点的快照加

2009-04-10 0comments 96hotness 0likes mikebai Read all
dev

uml发展过程及uml图

uml发展过程及uml图 2008年05月06日 星期二 上午 09:36   1、uml发展过程:   2、uml图:  

2009-03-27 0comments 102hotness 0likes mikebai Read all
dev

SQL数据导入导出问题总结

From:http://blog.csai.cn/tb.asp?id=8923&TBcode=200903010643vaq1THf66Nu5 大家打开这个链接可以看到很多数据库的连接方法。http://www.connectionstrings.com 这些数据库之间的数据交换就是这个贴子所要总结的内容。 (一)SQL Server之间 把远程数据库中的数据导入到本地数据库。 http://community.csdn.net/Expert/topic/5079/5079649.xml?temp=.7512018 http://community.csdn.net/Expert/topic/5011/5011278.xml?temp=.1658899 http://community.csdn.net/Expert/topic/4982/4982625.xml?temp=.8189966 把A库里的其中几个表和视图导入B库 http://community.csdn.net/Expert/topic/5042/5042648.xml?temp=.2556574 sql2005的数据库导入sql2000中 http://community.csdn.net/Expert/topic/4954/4954820.xml?temp=.3408625 在SQL2005中 如何导入 SQL2000中的Analysis Service ? http://community.csdn.net/Expert/topic/4713/4713032.xml?temp=2.752322E-02 英文版sql server2005中bcp导出中文乱码问题 http://community.csdn.net/Expert/topic/5024/5024662.xml?temp=.7404596 如何将一个由SQL保存出来的*.bas文件再导回到SQL中 http://community.csdn.net/Expert/topic/4944/4944630.xml?temp=.8225672 (二)SQL Server --> Access 将SQL数据导出至Access(SQL与Access同一台机器上) http://community.csdn.net/Expert/topic/4919/4919937.xml?temp=.2461359 将SQL数据导出至Access(SQL与Access不在同一台机器上) http://community.csdn.net/Expert/topic/4906/4906691.xml?temp=.1377222 http://community.csdn.net/Expert/topic/4917/4917015.xml?temp=.7591364 (三)Access --> SQL Server http://faq.csdn.net/FAQUnfurl.aspx?id=214875 为什么access与sqlserver2000导入导出时,数据库结构变了,默认主键,自动编号全没了? http://community.csdn.net/Expert/topic/4712/4712570.xml?temp=.3942224 (四)txt(记事本)--> SQL Server http://community.csdn.net/Expert/topic/5045/5045602.xml?temp=.0278284 TXT文件导入数据库出现乱码 http://community.csdn.net/Expert/topic/4939/4939026.xml?temp=.4465296 关于上千份大文本存入Sqlserver http://community.csdn.net/Expert/topic/4973/4973969.xml?temp=.4392816 (五)SQL Server --> txt http://community.csdn.net/Expert/topic/4906/4906039.xml?temp=.6642267 SQL导出TXT或HTML求助 http://community.csdn.net/Expert/topic/5031/5031048.xml?temp=1.302737E-02 (六)Excel --> SQL Server http://community.csdn.net/Expert/topic/5002/5002120.xml?temp=.4375727

2009-03-27 0comments 124hotness 0likes mikebai Read all
dev

SQL2005卸载,重新安装问题汇总

From:http://blog.csdn.net/chiniao/archive/2008/07/09/2630098.aspx 1.Stop 所有服务     2.用 Windows Install Clean Up 工具卸载SQL 2005组件     3.用SrvInstw.exe删除所有SQL服务     4.清除注册表    a. 将HKEY_CURRENT_USER---Software----Microsoft下的Microsoft SQL Server文件夹全部删除    b. 将HKEY_LOCAL_mACHINE---SOFTWARE---Microsoft下的Microsoft SQL Native Client ,Microsoft SQL Server, Microsoft SQL Server 2005 Redist全部删除。   5.删除残留文件   将C盘——Program File下的Microsoft SQL Server 文件夹删除。   6.重启电脑,重新安装。   2)COM Plus Catalog Requirement(warning)问题:装SQL 2005 检测信息时,老是显示“COM Plus Catalog Requirement(warning)”,我用的是XP系统,装的是开发版~~ 原因:你的COM+应用程序出错,装的IIS有问题所致~~ 解决方法: “开始”->“设置”->“控制面板”->“管理工具”->“组件服务”中,“控制台根目录”->“组件服务”->“计算机”->“我的电脑”->“COM+应用程序”中, (1) 到com+应用程序这一步时,弹出:"执行最后操作时发生错误,错误代码80080005-服务器运行失败"的错误.咋办啊. 一、 开始运行msdtc -resetlog ,问题解决,能打开了。 二、再看看 Distributed Transaction Coordinator 服务有没有打开 三、重装IIS (2) 回到“ “COM+应用程序” ”中, 有一个“IIS Out-Of-Process Pooled”鼠标右键“属性”--“标识”--把“此用户”调整为“交互式用户--目前已登录的用户”。然后“确定”,再鼠标右键“属性”--“启动”。 (3) 设下IIS的 “ 目录安全性选项卡 ”---- “ 匿名访问与控制 ” , 在“集成Windows身份验证”打勾

2009-03-27 0comments 91hotness 0likes mikebai Read all
dev

创建一个Bean实例并指定它的名字和作用范围.

"  <jsp:useBean>   创建一个Bean实例并指定它的名字和作用范围.               JSP   语法         <jsp:useBean           id=""beanInstanceName""           scope=""page   |   request   |   session   |   application""           {           class=""package.class""   |           type=""package.class""   |           class=""package.class""   type=""package.class""   |           beanName=""{package.class   |   <%=   expression   %>}""   type=""package.class""           }           {           />   |           >   other   elements   </jsp:useBean>           }                   例子         <jsp:useBean   id=""cart""   scope=""session""   class=""session.Carts""   />           <jsp:setProperty   name=""cart""   property=""*""   />               <jsp:useBean   id=""checking""   scope=""session""   class=""bank.Checking""   >           <jsp:setProperty   name=""checking""   property=""balance""   value=""0.0""   />           </jsp:useBean>               描述         <jsp:useBean>用于定位或示例一个JavaBeans组件。<jsp:useBean>首先会试图定位一个Bean实例,如果这个Bean不存在,那么<jsp:useBean>就会从一个class或模版中进行示例。           为了定位或示例一个Bean,<jsp:useBean>会进行以下步聚,顺序如下:                   通过给定名字和范围试图定位一个Bean.       对这个Bean对象引用变量以你指定的名字命名.       如果发现了这个Bean,将会在这个变量中储存这个引用。如果你也指定了类型,那么这个Bean也设置为相应的类型.       如果没有发现这个Bean,将会从你指定的class中示例,并将此引用储存到一个新的变量中去。如果这个class的名字代表的是一个模版,那么这个Bean被java.beans.Beans.instantiate示例.       如果<jsp:useBean>已经示例(不是定位)了Bean,同时<jsp:useBean>和</jsp:useBean>中有元素,那么将会执行其中的代码.           <jsp:useBean>元素的主体通常包含有<jsp:setProp

2008-04-25 0comments 100hotness 0likes mikebai Read all
dev

Windows环境下Apache/Mysql/PHP的配置

1、首先安装 Apache 服务 apache_2.0.59-win32-x86-no_ssl.msi 安装完毕后会提示因为80口被占用导致无法安装 Apache 服务 将windows iis默认站点的端口改成别的即可,比如 8000 ,把 80 口让给 Apache 使用 然后在 C:\Program Files\Apache Group\Apache2\bin 中创建并运行下面的批处理文件安装和配置 apache -k install apache -k start 配置apache里的httpd.conf 打开 C:\Program Files\Apache Group\Apache2\conf\httpd.conf 这个文件进行更改: 找到 LoadModule 在下面增加:注意如果文件夹中有空格要用引号将全路径引起来 LoadModule php5_module "D:/Area Private/PHP/php/php5apache2.dll" DocumentRoot "D:/php/Apache2/htdocs" DocumentRoot "D:/Area Private/PHP/www" # # This should be changed to whatever you set DocumentRoot to. # <Directory "D:/Area Private/PHP/www"> DirectoryIndex index.html index.html.var DirectoryIndex index.html index.html.var index.htm index.php 找到 AddType AddType application/x-compress .Z AddType application/x-gzip .gz .tgz 在下面增加 AddType application/x-httpd-php .php .phtml .php3 .php4 AddType application/x-httpd-php-source .phps 保存 httpd.conf 文件后重起 Apache 服务器 2、安装 MySql5 时 将程序安装到 D:\Area Private\PHP\mysql 中 然后配置数据库时使用默认的下一步即可 语言编码使用 gb2312 然后创建管理帐户密码 808043 使用 3306 端口 这里要把 windows 防火墙中的高级/本地连接中增加一个名为 MySql 的 3306 端口 D:\Area Private\PHP\mysql\MySQL Server 5.0\bin\MySQLInstanceConfig.exe 这个就是配置文件 安装后还可继续运行该文件更改配置 3、安装和配置 PHP5(这个是最麻烦的!) 将 php-5.1.6-Win32.zip 里内容解压到 D:\Area Private\php 里 将 pecl-5.1.6-Win32.zip 里内容解压到 D:\Area Private\php\ext 里 找到 php目录里的 php.ini-recommended重命名为 php.ini 并拷到 C:\windows 下 打开 php.ini 找到 extension_dir = "./" 将该行替换为 extension_dir = "D:/Area Private/PHP/php/ext" 再将php目录里的以下文件拷贝到目的地: D:\Area Private\PHP\php\php5ts.dll C:\windows\ D:\Area Private\PHP\php\fdftk.dll C:\windows\system32\ D:\Area Private\PHP\php\fribidi.dll C:\windows\system32\ D:\Area Private\PHP\php\gds32.dll C:\windows\system32\ D:\Area Private\PHP\php\libeay32.dll C:\windows\system32\ D:\Area Private\PHP\php\libmhash.dll C:\windows\system32\ D:\Area Private\PHP\php\libmysql.dll C:\windows\system32\ D:\Area Private\PHP\php\ntwdblib.dll C:\windows\system32\ D:\Area Private\PHP\php\yaz.dll C:\windows\system32\ 最后写一个测试文件测试是否配置成功 <?php phpinfo(); ?>

2008-04-21 0comments 108hotness 0likes mikebai Read all
dev

图像捕获[转载]

视频截图也不是一个什么新概念,早期的播放器如金山影霸就支持视频截图。视频截图有其应用的需求,影片播放过程中有些精彩的画面,用户可能想保留下来。普通的print screen按钮不一定有用,因为启用DX加速,使用printf screen捕捉不到屏幕信息。   DShow里头有三种类型的filter:source filter | trasform filter | render filter。三种filter贯穿了整个播放过程。多个filter连接在一起,构成一个filter graph。创建graph,然后通过graph来查询一些接口,获取到视频流每一帧数据,保存成一帧帧图片。借助于DShow,实现视频截图应该说非常容易,而且DShow可以截获视频的方法还不少呢。下面就简单介绍一两个方法。   方法一:利用IBasicVideo接口获取视频帧数据   IBasicVideo接口提供了一个方法GetCurrentImage()获取视频帧的数据。使用此方法不是特别可靠。在Render是Video Render的时候,如果采取的DirectDraw,就会失败。另外,使用GetCurrentImage()方法获取视频帧数据,需要确定媒体类型,不同的媒体类型,获取的数据结构和内容都不尽相同,这也是保存图片的一个麻烦所在。下面说说如何使用IBasicVideo来获取视频帧。   (1) 创建FilterGraph [CoCreateInstance]   (2) 调用IGraphBuilder::RenderFile()打开文件   (3) 通过IGraphBuilder查询出接口IBasicVideo   (4) 通过调用IBasicVideo::GetCurrentImage()获取图片信息捕获图片       方法二:利用IMediaDet接口获取视频帧数据   优点:相对于IBasicVideo接口捕获视频图像而言,使用IMediaDet更加专业也更加方便。举个例子:调用IBasicVideo获取视频数据的时机?如果我想捕获某一时刻的某一帧图像,用IBasicVideo能做得到吗?用IMediaDet就不一样了,调用GetBitmapBits可以获取指定时间的帧数据。而且,用IMediaDet获取数据的格式是固定的RGB24。这样一来,获取到的数据,保存到图像就方便多了,不用担心不同的杂乱格式带来的烦恼。   使用IMediaDet接口获取视频数据方法如下:   (1) 创建MediaDet对象 [CoCreateInstance(CLSID_MediaDet...)]   (2) 调用IMediaDet::put_Filename() 指定要打开的源文件的名称   (3) 调用IMediaDet::GetBitmapBits获取视频帧数据 ///////////////////////////////////////////////////////////// // Sample Code: long size; hr = pDet->GetBitmapBits(0, &size, 0, width, height); if (SUCCEEDED(hr)) {     char *pBuffer = new char[size];     if (!pBuffer)         return E_OUTOFMEMORY;     try {         hr = pDet->GetBitmapBits(0, 0, pBuffer, width, height);     }     catch (...) {         delete [] pBuffer;         throw;     }     if (SUCCEEDED(hr))     {         BITMAPINFOHEADER *bmih = (BITMAPINFOHEADER*)pBuffer;         HDC hdcDest = GetDC(0);                 // Find the address of the start of the image data.         void *pData = pBuffer + sizeof(BITMAPINFOHEADER);                 // Note: In general a BITMAPINFOHEADER can include extra color         // information at the end, so calculating the offset to the image         // data is not generally correct. However, the IMediaDet interface         // always returns an RGB-24 image with no extra color information.                 BITMAPINFO bmi;         ZeroMemory(&bmi, sizeof(BITMAPINFO));         CopyMemory(&(bmi.bmiHeader), bmih, sizeof(BITMAPINFOHEADER));         HBITMAP hBitmap = CreateDIBitmap(hdcDest, bmih, CBM_INIT,             pData, &bmi, DIB_RGB_COLORS);     }     delete[] pBuffer; } ////////////////////////////////////////

2008-01-17 0comments 137hotness 0likes mikebai Read all
dev

Div+CSS网站设计的优点

Div+CSS网站设计的优点          业界越来越关注DIV+CSS的标准化设计,大到各大门户网站,小到不计其数的个人网站,在Div+CSS标准化的影响下,网页设计人员已经把这一要求作为行业标准。那么什么是Div+CSS标准?Div+CSS的标准化设计到底有什么好处?      Div 全称 division 意为“区分”使用 DIV 的方法跟使用其他 tag 的方法一样。      <DIV>Weclcom to www.mikebai.com </DIV>      如果单独使用 DIV 而不加任何 CSS, 那么它在网页中的效果和使用 <P></P> 是一样的。      DIV本身就是容器性质的,你不但可以内嵌table还可以内嵌文本和其它的HTML代码      CSS是Cascading style Sheets的简称,中文译作“层叠样式表单”,在主页制作时采用CSS技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式。网上冲浪无论你用Internet Explorer还是Netscape Navigator,几乎随时都在与CSS打交道,在网上没有使用过CSS的网页可能不好找。不管你用什么工具软件制作网页,都有在有意无意地使用CSS。用好CSS能使你的网页更加简炼,同样内容的网页,有的人做出来有几十KB,而高手做出来只有十几KB。     Div+CSS标准的优点:     1.大大缩减页面代码,提高页面浏览速度,缩减带宽成本;     2.结构清晰,容易被搜索引擎搜索到,天生优化了seo     3.缩短改版时间。只要简单的修改几个CSS文件就可以重新设计一个有成百上千页面的站点。     4.强大的字体控制和排版能力。CSS控制字体的能力比糟糕的FONT标签好多了,有了CSS,我们不再需要用FONT标签或者透明的1 px GIF图片来控制标题,改变字体颜色,字体样式等等。     5.CSS非常容易编写。你可以象写html代码一样轻松地编写CSS。     6.提高易用性。使用CSS可以结构化HTML,例如:<p>标签只用来控制段落,heading标签只用来控制标题,table标签只用来表现格式化的数据等等。你可以增加更多的用户而不需要建立独立的版本。     7.可以一次设计,随处发布。你的设计不仅仅用于web浏览器,也可以发布在其他设备上,比如PowerPoint。     8.更好的控制页面布局。不用多说。     9.表现和内容相分离。将设计部分剥离出来放在一个独立样式文件中,你可以减少未来网页无效的可能。     10.更方便搜索引擎的搜索。用只包含结构化内容的HTML代替嵌套的标签,搜索引擎将更有效地搜索到你的内容,并可能给你一个较高的评价(ranking)。     11.Table 布局灵活性不大,你只能遵循 table tr td 的格式。而div 你可以 div ul li 也可以 ol li 还可以 ul li ……但标准语法最好有序的写。     12.另外如果你不是javascrput的高手,你可以不必去写ID,只用class就可以。当客户端程序员写完程序,需要调整时候,你可以在利用他的ID进行控制。     13.Table 中布局中,垃圾代码会很多,一些修饰的样式及布局的代码混合一起,很不利于直观。而Div 更能体现样式和结构相分离,结构的重构性强。     14.在几乎所有的浏览器上都可以使用。     15.以前一些非得通过图片转换实现的功能,现在只要用CSS就可以轻松实现,从而更快地下载页面。     16.使页面的字体变得更漂亮,更容易编排,使页面真正赏心悦目。     17.你可以轻松地控制页面的布局 。     18.你可以将许多网页的风格格式同时更新,不用再一页一页地更新了。你可以将站点上所有的网页风格都使用一个CSS文件进行控制,只要修改这个CSS文件中相应的行,那么整个站点的所有页面都会随之发生变动

2007-01-02 0comments 93hotness 0likes mikebai Read all
dev

document.execCommand() 解析

2D-Position 允许通过拖曳移动绝对定位的对象。 AbsolutePosition 设定元素的 position 属性为“absolute”(绝对)。 BackColor 设置或获取当前选中区的背景颜色。 BlockDirLTR 目前尚未支持。 BlockDirRTL 目前尚未支持。 Bold 切换当前选中区的粗体显示与否。 BrowseMode 目前尚未支持。 Copy 将当前选中区复制到剪贴板。 CreateBookmark 创建一个书签锚或获取当前选中区或插入点的书签锚的名称。 CreateLink 在当前选中区上插入超级链接,或显示一个对话框允许用户指定要为当前选中区插入的超级链接的 URL。 Cut 将当前选中区复制到剪贴板并删除之。 Delete 删除当前选中区。 DirLTR 目前尚未支持。 DirRTL 目前尚未支持。 EditMode 目前尚未支持。 FontName 设置或获取当前选中区的字体。 FontSize 设置或获取当前选中区的字体大小。 ForeColor 设置或获取当前选中区的前景(文本)颜色。 FormatBlock 设置当前块格式化标签。 Indent 增加选中文本的缩进。 InlineDirLTR 目前尚未支持。 InlineDirRTL 目前尚未支持。 InsertButton 用按钮控件覆盖当前选中区。 InsertFieldset 用方框覆盖当前选中区。 InsertHorizontalRule 用水平线覆盖当前选中区。 InsertIFrame 用内嵌框架覆盖当前选中区。 InsertImage 用图像覆盖当前选中区。 InsertInputButton 用按钮控件覆盖当前选中区。 InsertInputCheckbox 用复选框控件覆盖当前选中区。 InsertInputFileUpload 用文件上载控件覆盖当前选中区。 InsertInputHidden 插入隐藏控件覆盖当前选中区。 InsertInputImage 用图像控件覆盖当前选中区。 InsertInputPassword 用密码控件覆盖当前选中区。 InsertInputRadio 用单选钮控件覆盖当前选中区。 InsertInputReset 用重置控件覆盖当前选中区。 InsertInputSubmit 用提交控件覆盖当前选中区。 InsertInputText 用文本控件覆盖当前选中区。 InsertMarquee 用空字幕覆盖当前选中区。 InsertOrderedList 切换当前选中区是编号列表还是常规格式化块。 InsertParagraph 用换行覆盖当前选中区。 InsertSelectDropdown 用下拉框控件覆盖当前选中区。 InsertSelectListbox 用列表框控件覆盖当前选中区。 InsertTextArea 用多行文本输入控件覆盖当前选中区。 InsertUnorderedList 切换当前选中区是项目符号列表还是常规格式化块。 Italic 切换当前选中区斜体显示与否。 JustifyCenter 将当前选中区在所在格式化块置中。 JustifyFull 目前尚未支持。 JustifyLeft 将当前选中区所在格式化块左对齐。 JustifyNone 目前尚未支持。 JustifyRight 将当前选中区所在格式化块右对齐。 LiveResize 迫使 MSHTML 编辑器在缩放或移动过程中持续更新元素外观,而不是只在移动或缩放完成后更新。 MultipleSelection 允许当用户按住 Shift 或 Ctrl 键时一次选中多于一个站点可选元素。 Open 打开。 Outdent 减少选中区所在格式化块的缩进。 OverWrite 切换文本状态的插入和覆盖。 Paste 用剪贴板内容覆盖当前选中区。 PlayImage 目前尚未支持。 Print 打开打印对话框以便用户可以打印当前页。 Redo 重做。 Refresh 刷新当前文档。 RemoveFormat 从当前选中区中删除格式化标签。 RemoveParaFormat 目前尚未支持。 SaveAs 将当前 Web 页面保存为文件。 SelectAll 选中整个文档。 SizeToControl 目前尚未支持。 SizeToControlHeight 目前尚未支持。 SizeToControlWidth 目前尚未支持。 Stop 停止。 StopImage 目前尚未支持。 StrikeThrough 目前尚未支持。 Subscript 目前尚未支持。 Superscript 目前尚未支持。 UnBookmark 从当前选中区中删除全部书签。 Underline 切换当前选中区的下划线显示与否。 Undo 撤消。 Unlink 从当前选中区中删除全部超级链接。 Unselect 清除当前选中区的选中状态。

2006-12-28 0comments 93hotness 0likes mikebai Read all
1…2122232425

Recent Posts

  • c# winform适配高dpi
  • com.microsoft.sqlserver.jdbc.SQLServerException “trustServerCertificate”属性设置为“false”,但驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server建立安全连接
  • java -cp 用法介绍
  • HTML 容器元素
  • MVC的cshtml的介绍

Recent Comments

No comments to show.

COPYRIGHT © 2025 mikebai.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang