普通人不知道的XP秘密
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了普通人不知道的XP秘密相关的知识,希望对你有一定的参考价值。
普通人不知道的5个windows XP秘密时间过的真是很快,一转眼,Windows XP迎来了自己的五岁生日,而微软最新的操作系统Vista,也已经蓄势待发。Vista的出现,难道就真的意味着XP时代的彻底结束吗?其实,大家对于XP还没有完全了解,今天我们为大家献上:普通人不知道的20个windows XP 秘密!
1. systeminfo:让XP列出更多有用信息 Windows XP 总是在炫耀它可以给稳定工作多么长的时间!要想详细地了解这一信息,你可以接入 Windows 的“开始菜单”,再开启“附件菜单”中的“命令提示符”,然后在其中输入“systeminfo”这个命令。电脑就会给你显示出许多有用信息,其中包括了这个系统的初次安装时间,以及本次持续运行的时间。假如你想要保留这些信息,你可以输入“systeminfo > info.txt”,这将会创建一个名为“info.txt”文本文件,你可以稍后用Windows的记事本将其打开,进行查看。(仅限于 Windows XP 专业版本) 2.gpedit.msc:设置直接删除文件 你可以将 Windows XP 操作系统设置为直接删除文件,而不用先将这些文件转移到回收站当中。进入开始菜单,选择“运行...”,输入“gpedit.msc”;在弹出的对话框中,选择用户设置,管理模板,Windows 组件,Windows Explorer,找到“不要将删除的文件移送到回收站”的选项。开启这个选项。通过调整 gpedit 对话框中的相关设置,你可以对系统的运行方式和选项做出很多调整,但是请一定小心——你所作出的某些改变可能会系统运行出现问题,或造成系统的不稳定。(仅限于 Windows XP 专业版本) 3. rundll32.exe:用鼠标锁定计算机 你可以轻轻点击两下鼠标,就锁定自己的 Windows XP 系统。请先在桌面上点击鼠标右键,创建一个新的快捷方式,然后再填写项目位置的时候, 输入“rundll32.exe user32.dll,LockWorkStation”。然后再给这个快捷方式取一个你喜欢的名字,比如“锁定计算机”。就是这么简单——现在,你只需要用鼠标双击这个快捷方式,你的电脑就会马上被锁定。如果你觉得这还不够简单的话,同时按住键盘上的“Windows 键(有XP图标的那个)”和“L”键,将会有同样的效果。 4. sysoc.inf:把隐藏的文件揪出来 Windows XP 隐藏了一些你可能想要删除或卸载的系统软件,诸如 Windows Messenger,但是你可以让这些软件重新显示出来。使用 Windows 自带的记事本或写字板程序,编辑文本文件“/windows/inf/sysoc.inf”,搜索并删除掉关键词“hide”。然后你再进入“控制面板”的“添加/删除程序”,选择“添加或删除 Windows 组件”。你可以发现所有的系统软件都被显示出来了,现在就可以卸载它们了。 5. /?:命令行的诱惑 对于那些擅长于操作DOS批处理命令的用户来说,Windows XP 也为他们提供了许多有趣的新命令。其中包括用来创建和监视系统事件的“eventcreate”和“eventtriggers”命令,用来监控各种子系统的运行状态的“typeperf\'”,以及用来操作计划任务的“schtasks”。和以前一样,输入某个命令,并紧跟其后加上“/?”的后缀,将会为你提供一系列与这个命令相关的选项。 参考技术A 给你介绍个会说话的键盘吧:
朋友们在用键盘进行诸如文档输入、指法练习等、操作时,是不是早已厌倦了键盘按键起落的噼啪声,其实Windows 2000/XP内置了一个“讲述人”小程序,可以将文字转换成语音,快让我带你见识一下吧!
“讲述人”程序设计的初衷是帮助视力不佳的用户将文字转换成语音。它可与记事本、写字板、控制面板程序、Windows桌面和Windows安装程序一起协同工作,将显示在屏幕和活动窗口上的内容以及用户键入的文本用英语朗读出来。
在“开始”\“运行”中输入“narrator”即可弹出系统默认每次自动运行的程序简介。这时你的语音键盘已经启动了,敲击按键,系统就会用柔和的男声读出该按键的名称。
在读完“讲述人”简介后,选择“确定”弹出“讲述人”的功能设置菜单(如图),你可以在这里设置朗读的速度、音量和音调,也可以勾选“以最小化开始讲述人”以便使其在运行中自动隐藏于桌面的任务栏。 参考技术B 谢谢两位大哥的发表,我对电脑也很感兴趣的!!
希望可以成为朋友!
你可能不知道的字符比较中的“秘密”
原文:你可能不知道的字符比较中的“秘密”有时候,一个简单的字符比较,你可能也会被弄得晕头转向。为什么这样说呢?请看下面这个例子(代码就不贴了,因为后来发现页面不支持这两个字符的显示)。猜测一下,会是什么结果?是1还是0? 回答这个问题之前,请再继续向下看。先创建几个不同排序规则的数据库(见数据库名可知)。
Figure-1: 在SQL_Latin1_General_CP1_CI_AS排序规则下的比较
Figure-2: 在Chinese_PRC_CI_AS排序规则下的比较
在SQL_Latin1_General_CP1_CI_AS或是Chinese_PRC_CI_AS两不同的排序规则下,这两个字符竟然是相等的!!很明显看起来就是不相等嘛!使用了UNICODE函数转换也无效。怎么回事呢?!下面就是这个问题的解答。原文是英文,我已经翻译成中文(英语水平有限,错漏难免,最好还是看原文哈)。
附上原文地址:
http://blogs.msdn.com/b/sqlprogrammability/archive/2006/04/07/570397.aspx
未定义的字符在Unicode或Windows排序规则中的排序问题
当在非二进制排序规则中比较两个Unicode字符串时,SQL Server使用一个跟Windows API CompareStringW基本相同的库。这个库为每个已经辨识的字符定义了一个权重值(Weight),并以这个权重值进行字符的比较。然而,并不是所有代码点(code point)都已经在排序库中进行了定义。它们可能被未定义的原因是:
-
代码点在Unicode标准中未进行定义。
-
代码点在Unicode标准中已进行了定义,但在Windows中却未进行定义。这需要花费时间和精力为新的字符定义语言语义的排序。Windows团队通常需要与当时标准组织和/或地区项目经理合作,为新的字符定义排序规则。他们在每个版本中添加新字符的支持,并试图迎头赶上。有些字符也许已经具有字体的定义,因此可能会正常地显示,但仍然没有对比较进行定义。比如NCHAR(13144) - NCHAR(13174)。
-
代码点在Windows进行了定义,但未在SQL Server中定义。
Windows NLS团队已经决定,未定义的字符进行比较时将被忽略,部分原因是没有一个好的办法将未定义的字符和其他已经定义的字符进行比较。SQL Server继承了这一语义。这确实导致了一些令人感觉困惑的行为。看看下面的例子。
declare @undefined_char1 nvarchar(10), @undefined_char2 nvarchar(10) set @undefined_char1 = nchar(0x0000) set @undefined_char2 = nchar(13144) select ‘Undefine characters compare equal to empty string‘ where @undefined_char1 = ‘‘ select ‘All undefine characters compare equal‘ where @undefined_char1 = @undefined_char2 go
create table t (c nvarchar(10)) go create unique index it on t(c) go -- first insert succeeds, but second insert fails with duplicate key error. insert t values (nchar(0x0000)) insert t values (nchar(13144)) go
正如你所见,由于所有未定义的字符比较都为相等的,他们会导致重复键的错误。同理,如果你创建一张未定义字符为表名的表,然后尝试创建另一个未定义字符为表名的表,第二张表会因为表名重复而创建失败,即使这两个未定义字符的代码点是不同的。这也可能导致混淆的结果出现在如CHARINDEX, PATINDEX或LIKE等内置的字符串匹配(功能)中。
虽然这些结果似乎令人迷惑不解,但基本规则其实很简单。即未定义字符和字符串的比较将被忽略。一旦你明白并记住这个规则,这个行为就很容易理解了。
只要有未定义字符的参数将被忽略。由于这是在Windows平台上的行为,没有一个绝对的更好的方法对它们进行排序,并且向右兼容,我们要保持这种行为。
如果你的应用程序要使用到这些未定义的字符,并且把它们当成常规字符处理,你可以使用二进制的排序规则(binary collation)。在二进制排序规则中,比较完全是根据代码点,不是语言规则,因此也没有所谓的已定义和未定义的概念了。(完)
读完这篇博客,你应该明白怎么回事了吧。原因就是:跟未进行定义的字符作比较时,SQL Server视为相等的。如果实际应用中要视为常规字符,转为二进制比较即可。因为二进制的比较就单纯的按照字符的代码点比较了。所以解决最开始的问题不难,如下:
Figure-3: 在Latin1_General_BIN排序规则下的比较
不难推导出,在二进制排序规则下的数据库中,默认下,这两个字符是不相等的。
Figure-4: 在Latin1_General_BIN排序规则下的比较
Figure-5: 在SQL_Latin1_General_CP1_CI_AS排序规则下无法插入两行记录
Figure-6: 在Latin1_General_BIN排序规则下,成功插入这两行记录。
以上是关于普通人不知道的XP秘密的主要内容,如果未能解决你的问题,请参考以下文章