mikebai.com

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

SQL多级汇总统计

  DB数据: ID DEPT_ID ClassID M_YEAR M_Month M_SALARY M_SCORE 32 1 1 1 1 20 10 33 1 1 1 2 20 123 34 1 1 1 3 20 12 35 1 1 1 4 20 123 36 1 1 1 5 21 12 37 1 1 2 1 22 312 38 1 1 2 2 23 2 39 1 1 2 3 15 23 40 1 1 2 4 15 123 41 1 1 2 5 90 24 42 1 1 3 1 55 123 43 1 1 3 2 43 12 44 1 1 3 3 20 22 45 1 1 3 4 20 2 46 1 1 3 5 20 2 47 1 2 1 1 20 2 48 1 2 1 2 20 21 49 1 2 1 3 20 2

2009-05-10 0comments 223hotness 0likes mikebai Read all
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 233hotness 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 228hotness 0likes mikebai Read all
dev

uml发展过程及uml图

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

2009-03-27 0comments 235hotness 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 531hotness 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 240hotness 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 239hotness 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 254hotness 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 288hotness 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 220hotness 0likes mikebai Read all
1…2223242526

Recent Posts

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

Recent Comments

No comments to show.

COPYRIGHT © 2025 mikebai.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang