月度归档:2011年01月

xp默认管理员账户隐藏问题

很多用户在新装winxp之后没有去创建系统账户,而是使用最高权限的默认管理员账户。

(特别是不想敲密码而是用直接自动登录的用户)

当某一天用户需要使用多用户的时候,才会去创建账户。

 

xp里面有两种账户类型,一种是管理员账户,权限很高。另外一种是受限的用户。

你会发现受限的用户真的很受限,有时连安装一个程序都不允许。

于是你选择创建一个管理员账户,这样过后,你会发现在登陆界面你的原来的管理员账号好像不见了。

其实,这个默认管理员账户只是隐藏了,当系统出现了其他的的管理员用户时,系统默认会隐藏原有的管理员账户。

而且这个账户只是隐藏了,文件设置等并没有被删除,使用传统的登陆界面用户名敲入administrator还是可以登录的。

但是在欢迎界面会看不到,要想让这个默认管理员账户重现,有两种方法。

一、进入安全模式,你会发现欢迎界面上又有了那个默认管理员账户,你使用这个账户进入系统,到控制面板的用户账户里面去把其他的管理员账户给删除了就可以了,下次使用一般的模式进入系统默认管理员账户就会重现。

 

二、如果我们真的要用多个管理员账户,可以使用如下方法让隐藏的默认管理员账户重现:

 

“开始”菜单–>运行–>输入“regedit”(不含引号),回车打开注册表编辑器–> 展开注册表定位到:
HKEY_LOCAL_MACHINE / SOFTWARE/Microsoft / Windows NT / CurrentVersion / Winlogon / SpecialAccounts / UserList

看下右边有没有Administrator这个DWORD值,没有就新建一个,把值设为“1” 就可以显示了,设为“0”为隐藏。

[转]屏幕录制,远程桌面传输,基于Windows图形驱动的屏幕截图技术

计算机屏幕图像的截取在屏幕的录制、计算机远程控制以及多媒体教学软件中都是关键术,基于Windows操作系统有多种截屏方法,研究的重点集中在如何快速有效的截取DBI(Device-Independent Bitmap)格式的屏幕图形数据。现在商业软件流行的截屏技术主要采取的Api Hook技术,但这种技术一次截屏仍有较大的时间消耗,这样就对运行软件的硬件仍有较多的限制,而且是一种非标准的技术,不为微软公司所推荐。

1截屏技术

1.1使用api hook技术

使用api hook技术截屏基于一下的原理;多数屏幕图形的绘制都是通过调用用户态gdi32.dll中的绘图函数实现的,如果利用api hook技术拦截系统中所有对这些函数的调用,就可以得到屏幕图形刷新或变化的区域坐标;然后使用api函数bitblt将刷新或者变化后的屏幕区域的ddb格式的位图拷贝到内存中,接着使用函数getbits将ddb位图转换为dbi位图,最后压缩、存储或者传输。

这种方案只有捕捉到变化,才进行截屏。这样每次截屏都是有效的操作。每次(第一次除外)仅截取了栓新或变化部分,从根本上解决了数据量大的问题。但是这种技术仍然有一下缺点:1实际截屏采用的api函数,截取的是ddb位图,要经过一次格式转换,耗时较大。2如果屏幕变化区域矩形的坐标r1、r2、……rn相继到达,为了不是屏幕变化的信息丢失,通常不是逐个截取,而是将矩形坐标合并,这样就可以截取并未变化的区域,不经增加截屏的时间消耗,而且产生冗余数据。3该技术不支持directdraw技术,由于应用程序可能使用directdraw驱动程序进行直接操纵显示内存、硬件位块转移,硬件重叠和交换表面等图形操作,而不必进行gdi调用,所以此时api hook技术将失去效用,不能捕捉屏幕变化。4api hook技术在屏幕取词,远程控制和多媒体教学中都有实际的应用,但是这种技术是一种非标准的技术,微软公司并不推荐使用。

1.2 使用图形驱动技术

该技术的原理:应用程序调用win32 gdi 函数进行图形输出请求,这个请求通过核心模式gdi发送。核心模式gdi把这些请求发送到相应的图形驱动程序。如,显示器驱动程序,通信流如图。现将该技术详细解释如下:

(1)显示器驱动输出一系列设备驱动程序接口DDI(Device Driver Interface)函数供GDI调用。信息通过这些入口点的输入/输出参数在GDI和驱动程序之间传递。

(2) 在显示器驱动加载时,GDI调用显示器驱动程序函数DrvEnableDriver,在这里我们向GDI提供显示器驱动支持的,可供GDI调用的DDI函数入口点,其中部分时将要Hook的图形输出函数。

(3) 在GDI调用函数DrvEnableDriver成功返回后,GDI调用显示器驱动的DrvEnablePDEV函数,在这里可以设置显示器的显示模式,然后创建一个PDEV结构,PDEV结构是物理显示器的逻辑表示。

(4) 在成功创建PDEV结构之后,显示驱动为视频硬件创建一个表面,该表面可以是标准的DIB位图管理表面,然后驱动程序使该表面与一个PDEV结构相关联,这样显示驱动支持的所有绘画操作都将在该DIB位图表面上进行。

(5) 当应用程序调用用户态GDI32.DLL中的绘图函数发出图形请求时,该请求将图形引擎通过相应的DDI函数发送到显示驱动,显示驱动程序将这次图形变化事件通知应用程序。

(6) 应用程序接受到通知后,调用函数ExtEscape发出一个请求,并通过参数传递一个缓冲区Buffer,图形引擎调用DDI函数DrvEscape处理应用层的ExtEscape调用,将变化部分的图形数据从其创建的表面拷贝Buffer,这样数据就从核心层图形驱动传到应用层。

(7) 应用程序接收到的图形数据已是DIB标准格式,所以可以直接进行压缩传输或储存。

1.3图形驱动技术的特点

上面叙述了采用图形驱动实现屏幕实现截屏的原理和过程,可以看出这种技术涉及核心图形驱动的编写,实现上较为复杂,而其具备的优点主要为:

(1) 驱动技术只截取变化的屏幕区域,这一点与API Hook技术相当;但驱动技术是一种标注技术,为微软公司所推荐。

(2) API Hook技术在实际截屏时,采用API函数实现,截取DDB位图,必须经过一次DDB到DIB的转换;而驱动技术直接从其管理的DIB位图(表面)中将截取区域的图形数据拷贝到应用程序,显著的降低了一次截屏的时间消耗。
(3) 如果屏幕图形小区域范围变化较快,屏幕变化区域矩形坐标R1、R2、R3……、Rn相继到达,由于一次截屏时间消耗降低,区域矩形坐标叠加的概率变小,这样屏幕变化区域及时的得到了处理,不仅增加了连续性,而且截屏时间消耗和产生的数据量一般不会出现峰值,这也是这种技术的优越之处。

经过以上对比,无论是做远程桌面还是屏幕录制,基于MirrorDriver的屏幕截取将会是一个不错的选择,无论从性能占用资源的大小(主要是cpu),取得的数据量来说都要优于Hook。
最近在做远程桌面的传输,所以有必要研究一下Mirror,这项技术在很多软件中都有应用。但是开源的driver我还没有看见过,因为没有精力去编写。所以才用网上的免费的driver同时也提供了api文档。
driver内部实现的原理大致就是把显示输出拷贝到一个缓冲区当中,并且记录每次屏幕更新的矩形区域。根据这些输出,应用程序就很容易得到缓冲区中的数据了。

小姜杂谈:屏幕分辨率一次讲清楚

< ![CDATA[

转帖自瘾科技,确实好文章 http://cn.engadget.com/2008/06/18/screen-resolution-explained/

今天要处理屏幕分块等问题,要对不同分辨率的屏幕做不同的处理,于是查到了这篇文章。

可怜的我本本屏幕分辨率1366*768 按照这篇文章属于16:10 但是本本上面的标贴却说是16:9影院享受。

重点是1366/2以后得683是一个质数,这就造成屏幕宽无法平均分割多等分!

 

================================原文开始的分割线======================================

 

总觉得每次都被各式各样的分辨率名称搞得一团糨糊吗?让小姜带你五十分钟搞懂所有的分辨率吧!常见的屏幕比例其实只有三种:4:3、16:9 和 16:10,再加上一个特殊的(但也很常见的)5:4。准备好了吗?开始啰!

[图片来源:Wikipedia]

4:3 家族

4:3 是最常见屏幕比例,从电视时代流传下来的古老(?)标准。在近代宽屏幕兴起前,绝大部份的屏幕分辨率都是照着这个比例的。不过最近逛逛电脑商场,好像要买个 4:3 比例的屏幕非常困难了啊 @@a
VGA (640×480) – 「VGA」 其实本来不是个分辨率的规格,而是 IBM 计算机的一种显示标准。在规范里有 320×200 / 256 色、320×200 / 16 色、640×350 / 16 色、640×480 / 16 色等多种模式,甚至还有 80×25 和 40×25 等文字模式。只是最后因为官方支持的最高分辨率是 640×480,所以 VGA 就成为了 640×480 的代名词。VGA 的重要地位在于它是所有显卡都接受的基准分辨率,Windows 在加载显卡驱动程序之前(BIOS 之后)有个蓝棒子跑跑跑的画面,那个画面就是在 VGA 分辨率下的。
SVGA (800×600) – SVGA 的情况和 VGA 有点像,也是以一种「规格」的身份起家的,只是最后好像变成无论规格如何,所有比 VGA 强的显示器都自称自已是 Super VGA,或 SVGA。在分辨率上,SVGA 专指 800×600 的分辨率 — 即使当年标榜自已是 SVGA 的屏幕其实常常可到达 1024×768,或更高。
XGA (1024×768) – 到了 SVGA 的年代,IBM 已经失去了市场的独占性,PC 界也正式进入了百家争鸣的时代。IBM 虽然定义出了XGA 的规格,但实际上它只是当年多种 Super VGA 规格中的一种。XGA 最后成为 1024×768 这个分辨率的代名词。
SXGA+ (1400×1050) – 咦?跳过了 SXGA?等会儿再回来 XD。SXGA+ 是大约 2003 年~2007 年间偶尔会在笔电上看到的分辨率。不过近年来随着宽屏幕笔电大行其道,这个分辨率很难看到了。小姜的两台笔电都是这个分辨率的,算是工作需求吧 orz。
UXGA (1600×1200) – UXGA 又称为 UGA,分辨率刚好是 VGA 的四倍。UXGA 是许多 4:3 的 20″ 和 21″ 屏幕的析度,不过随着 4:3 屏幕愈来愈少见,要买到这个分辨率的屏幕是愈来愈困难了。小姜桌上有一颗 20″ UXGA 的 Dell 屏幕转直的用,还蛮方便的 :p。
QXGA (2048×1536) – QXGA 的分辨率是 XGA 的四倍,也是大部份 4:3 屏幕支持的极限。小姜以前有一台 Viewsonic 的 p90f CRT 屏幕可以硬撑到这个数字,不过像素已经小于遮栅开孔的大小了,所以其实只是名义上有到而已,显示器根本显示不了。
更高 – 更高的 4:3 分辨率存在,像是 QUXGA,但这只是个理论上的名字。在真实世界没有采用这个分辨率的产品存在。

16:10 家族

16:10 就是常见的「宽屏幕」比例,近几年来突然间变得很常见,差不多把市场给独占了。取决于你看事情的角度,你可以说 16:10 有各种好处,例如可以并排两个窗口同时观看、人眼横向移动比较不吃力、笔电可以做得比较小台等。或者你也可以阴谋论一点,说在同样的对角线长度下,16:10 的面板其实面积比较小。总之,16:10 看来已经是所有屏幕的共同标准(除了 16:9 之外)了,喜欢、不喜欢,都认命吧~
WVGA (800×480) – VGA 的加宽版,大部份的 MID 和小号的 Netbook 采用的分辨率。第一代的 7″ Eee PC 就是这个分辨率的。
WSVGA (1024×600) – 好吧,老实说这个比例并不是 16:10(960×600 才是),不过这是个愈来愈常见的宽屏幕分辨率,所以就列在一起了。8.9″ 的 Netbook 大多是这个分辨率,部份的 10″ Netbook(Wind NB)也是。
WXGA (1280×800、1366×768) – WXGA 最早是指 1366×768(1024×768 的加宽版),是 LCD TV 面板最常见的分辨率。但到了电脑上 WXGA 通常是指 1280×800 这个分辨率,通常出现在 13~15″ 的笔电上。
WXGA+ (1440×900) – 也是宽屏幕笔电常见的分辨率,但更常出现在 19″ 的宽屏幕 LCD 上。
WSXGA+ (1680×1050) – 20″ 和 22″ 宽屏幕 LCD 和部份 15.4″ 笔电爱用的分辨率。
WUXGA (1920×1200) – UXGA 的宽屏幕版。必须要到达这个分辨率才能在屏幕上无损地显示 1080p 的影片。桌电上 1920×1200 大致上是 24″~27″ LCD 的领域,而笔电则是 17″ 以上才比较看得到。
WQXGA (2560×1600) – 主要是 30″ LCD 屏幕在用的分辨率,著名的 Apple Cinema Display、Dell UltraSharp 3007WFP / 3008 WFP 都是这个分辨率。

16:9 家族

16:9 主要是 HD 电视在用的比例。常听到的 720p、1080p 都是这个比例。
720p (1280×720) – 与其这是一种分辨率,还不如说它是一种信号?没听说有电脑屏幕是这个分辨率的,电视面板好像也都是做 1366×768 的多?
1080p (1920×1080) – 1080p 就是俗称的 Full HD(Sony 超拼的),以前只有在电视上看得到(电脑用 1920×1200 的多),不过最近开始出现采用 1080p 面板的笔电,像第二代的 Acer 宝石机,标榜可以「让画面塞满屏幕,不留黑边」。

5:4 家族

说是说家族,其实只有 SXGA 这一个成员而已。怎么,从来没注意到自已的屏幕比较方?其实 1280×1024 除下来比例是 5:4 才对,不是 4:3。
SXGA (1280×1024) – 后期的 17″ 屏幕和绝大部份非宽屏幕的 19″ 屏幕都是这个分辨率。为什么 SXGA 要采用 5:4 的比例到现在还是个谜,但总之它是成了办公室中几乎无所不在的存在。5:4 因为很接近正方形,其实旋转起来意义不大 XD。

呼,终于把这篇文章写完了 orz。其实把一堆奇奇怪怪的缩写文字和代表的数字连结在一起是小姜想做很久的事,只是愈研究下去,愈发现情况比想象中要混乱。像是 WXGA 小姜在上面列了两种分辨率,但实际上有五种分辨率(1280×720 / 16:9、1280×768 / 5:3、1280×800 / 16:10、1360×760、1366×768)都可以挂 WXGA 这个名字。所以绕到最后,结论似乎是以后还是写数字比较安全 orz。不过希望大家以后看到 WSXGA+ 的时候,能够稍微有点概念,小姜的文章就值得了 ^^。