2009年12月21日星期一
今天收到微软寄送的三件奖品啦
2009年11月25日星期三
zz被忽悠了,影片2012是在辱华!愤怒
第一个 就是主角们在雪上 碰到解放军了
没想到解放军第一句话就是有绿卡的人才能上船获救
然后剩下的都被抛弃了
........
2009年11月23日星期一
让Windows 7正常显示天气预报
在网上搜了个修改过的zh-CN,把它释放到C:\Program Files\Windows Sidebar\Gadgets\Weather.Gadget文件夹里(我的系统盘是F盘),也就是替换原有的zh-CN文件夹,然后打开找到里面js文件夹中的weather.js文件,右键点“编辑”会发现仅有几个城市,但我们可以 case ("地名拼音, CHN"):
retLocation = "中文地名";
break;
//按照以上格式添加其他城市即可,
里面有个***的txt说明,名字是weather.txt别弄错了地方.
以上仅是理论,但实际操作起来还是有一定麻烦,我因为在这里面修改不动,我是把文件拖到桌面上修改后又放进去的,我还用到了一个右键添加“管理员取得所有权”的注册表文件,我平时为了减少权限的麻烦,在修改某些东西前总先取得所有权,可能对你也有帮助。
右键添加管理员取得所有权的注册表导入文件下载地址:
添加管理员取得所有权右键菜单.rar
修改的zh-CN文件夹下载地址:
zh-CN(天气小工具).rar
转载请注明来自 云在天边
本文章永久链接 http://blogyoume.appspot.com/2009/10/5/windows-7-weather-gadget.html
2009年11月20日星期五
2009年11月12日星期四
2009年9月13日星期日
用Google Appengine建立了新博客
2009年9月2日星期三
惊闻学校出现H1N1甲流感病例
刚从校内上同学得知,我校出现H1N1病例,过了不久,学校主页上出现了这则新闻: 我校发现一例甲型H1N1流感患者学校紧急采取措施 今天(9月2日)上午。。。更多
转载自: http://blogyoume.appspot.com 或 http://blog.wer.pp.ru
2009年8月28日星期五
使用杀毒软件的十大误区
误区一:好的杀毒软件可以查杀所有的病毒
2009年8月26日星期三
如何将Bing的每日桌面图像变成我的Windows 7桌面
2009年8月25日星期二
CPU-Z 1.52.2
- 最新版本 1.52.2
- 官方网站 Cpu-Z
- 软件评级 ★★★
- 软件大小 674 K
- 整理日期2009-08-25软件授权 免费
- 软件平台Win9X WinNT Win2000 汉化包 WinXP
- 关 键 字Cpu-Z 硬件工具
CPU
# Name and number.
# Core stepping and process.
Package.
# Core voltage.
# Internal and external clocks, clock multiplier.
# Supported instructions sets.
# Cache information.
Mainboard
# Vendor, model and revision.
# BIOS model and date.
# Chipset (northbridge and southbridge) and sensor.
# Graphic interface.
Memory
# Frequency and timings.
# Module(s) specification using SPD (Serial Presence Detect) : vendor, serial number, timings table.
2009年8月24日星期一
如何拒绝木马读取你的硬盘
很多时候当一台计算机中毒以后,我们的远控软件就会查看到你硬盘的重要数据,从而将之盗取。我们怎么防止这种情况出现呢?其实您可以把硬盘加密码。但是如果入侵者用远控软件访问就不需要输入密码,直接就能访问到你的硬盘。
今天为大家讲解如何将自己的硬盘隐藏起来,让别人不能访问你的硬盘。
##CONTINUE##
我们以一个WindowsXP用户为例进行说明,假如我的重要文件在E盘。
方法一:
进入HKEY_CURRENT_USER\SoftWare\Microsoft\Windows\CurrentVersion\Policies\Explorer
分支中。在右窗口中新建一个二进值的键值名为“NoDrives”,磁盘驱动器所一一对应的键值如下:
A驱为“01000000”;B驱为“02000000”;C驱为“04000000”;D驱为“08000000”;E驱为“10000000”;F驱为“20000000”。
依此类推!
方法二:
开始→“运行”里输gpedit.msc并点确定→用户配置→管理摸板→Windows组件→WINDOWS资源管理器→阻止打开硬盘。
方法三:
我的电脑-管理-磁盘管理-更改驱动器路径-删除-确定。
前边两者可以防止别人在电脑控制台上看到你硬盘里的文件,后者呢可以防止远控软件的盗窃。
个人推荐使用第三者,这样释放驱动器和隐藏驱动器的时候也很方便
2009年8月17日星期一
Windows 7安装高手之硬盘安装
拷贝文件,位置很重要
##CONTINUE##
要用NT6 HDD Installer安装Windows 7,首先我们需要用虚拟光驱软件装载Windows 7安装光盘镜像(虚拟光驱软件推荐使用MagicISO,或者干脆使用WinRAR解压缩也可以),将光盘上所有的文件按照原来的目录结构拷贝到任意一个分区的根目录下。拷贝完毕后,该分区根目录的目录结构应该是这样的。
安装启动器,模式有选择
将Windows 7的安装文件拷贝到任意分区的根目录下后,我们就可以下载NT6 HDD Installer并进行安装了。从它的安装界面我们可以看出,NT6 HDD Installer主要支持两种模式的Windows 7安装向导启动。
模式一是采用Grub4Dos方式,该模式功能强大,但对于某些机器的支持不是很好(有可能出现不能启动。)
模式二是采用微软自家的引导方式,兼容性好,只不过功能不够强大。
大家在选择的时候也不要被软件的提醒所局限,一般选择模式一,电脑不支持Grub4Dos的再去选择模式二;另外,如果你安装有Vista Loader之类的已经采用Grub4Dos引导的程序,最好也选择模式二。
安装完毕后,重新启动计算机,引导菜单中就可以看到NT6 HDD Installer的身影了。
接下来的步骤,与我们使用光盘、使用USB盘启动来安装系统没有什么两样,在选择系统安装到分区窗口,我们甚至可以格式化掉C盘,进行全新的系统安装。
通过NT6 HDD Installer安装Windows 7的速度很快,尤其是第一步复制文件,几乎都是一身而过,在解压缩文件的时候,也比光盘和USB盘安装速度快了不少。
如果你想全新安装Windows 7,又无法刻盘,也不能制作USB启动盘,或者你想安装一个x64的Windows 7,都可以通过NT6 HDD Installer来完成。
2009年8月6日星期四
免费领取ubuntu9.04光盘
下面是具体的方法:
首先来到 shipit.ubuntu.com 点击上面的 Log In / Register 来注册个账号,如下图
填上你的邮箱(QQ就行)用来收激活邮件,再选择No, i want to create an account now. 点continue.
##CONTINUE##
接下来就会受到激活信 ,到邮箱点击激活地址 ,完成注册后.
再次来到 shipit.ubuntu.com 点击 Request a CD of Ubuntu Desktop Edition
就会来到了填写 姓名 住址 电话的 页面
用英文拼音 填写 姓名 ,住址起google翻译一下 然后填进去.电话最好用手机号 因为是用快递寄过来.
都填完了 点击提交 会提示成功.
等上4~6周就会寄到,因为是从美国寄来的,所以慢了点.
最后说明一下,这个光盘是不用任何费用的,邮费也不用,完全免费.哈哈
2009年8月2日星期日
百度和谷歌两大搜索引擎收录网站的特点
搜索引擎优化公司netconcepts首席执行官曲成透露,百度很重视收录网站页面的更新频率,尤其重视原创内容,“如果一个网站某单一页面 能做到及时的更新和有大量原创内容,那么即便它的网站整体表现并不太好,也能被百度及时抓取。”而谷歌则会更喜欢抓取那些网站整体效果以及综合表现 (PageRank的体现)好的网站。
在对待网站的内、外部链接上,谷歌尤其重视外链。如果一个网站外链的数量、质量和链接相关性都做得好,那么谷歌会优先抓取。百度则没有那么重视外链。百度更重视网站内部链接之间的相关性,而谷歌重视的却是网站内部链接之间的PageRank传递。有意思的是,百度只抓取125K以下大小的网站页 面,谷歌却能达到175K。
百度喜欢抓取标题在52个字符(约26个汉字)左右,而Meta Description在210个字符左右的网页。谷歌则喜欢抓取标题在65个字符左右,Meta Description在160个字符左右的网页。
2009年7月30日星期四
(ChinaSat-6B)中星6B中数节目昨晨解密
2009年7月23日星期四
测试一下,用Gmail来更新Blogger
...
2009年7月16日星期四
人生哲理格言
刚柔并济:只知道刚的人,难免会被折断;只有柔的人,到头来终是懦夫。
沟通定律:少说话会更有威严,不揽权会更有权,无亲属会更亲密,勤交心会更同心。
理想的人生:人若有100岁的境界,80岁的胸怀,60岁的智慧,40岁的意志,20岁的激情,加上两三岁的孩童心,该有多好啊!
##CONTINUE##
时间的魔力:任何吃不下的东西都可以让垃圾桶去吃,同样,任何解决不了的问题都可以让时间去解决。
思考的角度不同:智者受到赞美时,字字反思;愚者受到批评时,句句反驳。
成就智慧的方法:用中庸拒绝极端;用务实发挥影响;用冷静选择决策;用自觉端正态度;用勇气抛弃包袱;用真心追随智慧。
典型的庸人自扰:忙的时候,想要休息;度假的时候,惦念着公务;穷的时候,渴望富有;生活安逸了,担心生活不能长久。
别把小人当回事:对付小人,就像对付没有烧透的煤:碰碰,才会燃烧;晾着,自然就灭了。
关键在于是否有慧心:鼓励自己最好的手段,是欣赏自己;欺骗自己最好的手段,也是欣赏自己。
初涉职场者最欣赏的四句话:放弃了该放弃的是无奈;放弃了不该放弃的是无能;不放弃该放弃的是无知;不放弃不该放弃的是无悔。
会赚钱的人都是懂得投资的人:赚钱的最大障碍是不懂。我们中很多人不选择投资就是因为不了解投资。
人际关系中看似不起眼的六个用语:我承认我犯了一个错误,你的工作做得很好,你的意见是什么,请,非常感谢,咱们。
突破自己 改变人生
根据专家的估计,77%的人不满意目前的工作,既然如此,我曾经问一些学员,为什么不去改变?为什么还重复着同样的生活?难道不知道“重复旧的行为只能导致旧的结果吗?”但是他们都会告诉我:“没有办法”、“不可能”。难道是真的是“没有办法”或者“不可能”吗?
##CONTINUE##
问你一个问题:我们“已经知道的范围”比较大?还是“不知道的范围”比较大?答案当然是“未知的范围”比较大。既然是这样,那么当你说“没有办法、不可能”时,又代表什么呢?
它只是代表在你“已知范围”内的方法都已经试过没有效而已,对吗?
其实突破是完全有可能的,只要你能不断地突破“已知的范围”,进入到未知的领域,不达目的誓不罢休,不断地去寻找新的解决方法。
有人不禁要问:“那么到底要如何才能有效地突破呢?”其实答案很简单,就是要让自己开始去做一些你过去没有做过的事情、你过去不敢做的事情,这才叫突破!如果你还在你已知的范围内、你熟悉的领域里打转的话,又怎么能够产生新的结果呢?别忘了:重复旧的行为只能得到旧的结果!还记得“精神病人”的定义吧。
在人生中的其他事也一样,没有办法只是说我们已知范围内的方法已经用尽,只要我们能够不断地去尝试新的事物、新的机会、新的方法,不断地去突破自我、改变自我,永远都没有“没有办法,不可能”这句话!
你现在是否可以真的明白,面对你自己的幸福快乐永远都不说这三个字——“不可能”!就像五百年前,你如果跟别人说,你坐上一个银灰色东西就可以飞上天;你拿出一个黑色的小盒子就能够跟远在千里之外的朋友说话;打开一个“方柜子”就能看到世界各地发生的事情……,他们也同样会告诉你“不可能”,对吗?如今不是都已变成了现实吗?
我始终坚信:每个人都是可以成功的,而关键在于能否驱除这些限制性的信念!人生当中没有什么可以限制得了自己,如果你能朝着目标不断尝试,永不放弃!
让“不可能”安息吧!
最后,我与大家分享一件有趣的故事:有一位老师名叫汤娜,她是美国密西根小学的资深老师,再过两年便要退休了。她志愿参加了一个全市教职员的在职训练。这个训练主要是借着一些表达的方式来鼓励学生,坚强信心,进而爱惜自己的生命。汤娜的工作则是借着参与训练进而将这些理念实现。
那一天,汤娜在课堂上叫所有的同学在纸上写下自己认为“做不到”的所有事情。每个学生都乖乖地坐在位子上,绞尽脑汁在纸上写着。
班上的每个人都在纸上写下了他们所不能做到的事。诸如:
“我没法做30次的仰卧起坐。”
“我发球无法超过前边的球网。”
“我不能只吃一块饼干就停止。”
整个活动令人好奇,汤娜在讲台边坐下来,写道:“我无法让约翰的母亲来参加家长会”、“我无法不用体罚好好管教亚伦”。
我相信,很多人都会反对老师让学生如此专注于消极的一面,而不去看积极的那一面,诸如:“我能做”这一类的。但是我们不妨先忍耐一下,看看她们到底是在干什么?
同学们大约又写了10分钟。大部分写满了一整张纸,甚至有人开始写下页。
汤娜告诉学生,完成现在写的这一张,并提示学生将纸对折,交到前面来。学生依次来到老师的桌子前,把纸张投入一个空的鞋盒内。
把所有学生的纸张收齐之后,汤娜把自己的也投进去。她把盘子盖上,塞在腋下,带头走出教室,沿着走廊。学生跟着老师走了出去。
走到一半,整个行列停了下来。汤娜进入门卫室,找铁铲、铁锹。她一手拿着盒子,另一手拿着铁锹,带领大家到运动场最远的角落,大家开始挖了起来。
原来,他们打算埋葬“我不能”。整个挖掘过程历时20分钟,因为每个孩子要轮流挖。直到洞有三尺深的时候,他们将盒子放进去,并用泥土把盒子完全埋葬。
31个十多岁的小孩,围绕着这刚刚埋好的“墓地”,里面埋着所有每一个“力不能胜”的事情,这些都深深地埋藏在三尺的泥土下。
此时汤娜开口了:“同学们,现在手牵手,低头默哀。”同学们很快地手牵手围绕墓地成了一个圆圈,低下头来等待,汤娜则念出一段悼词。
“各位同学,今天很荣幸能邀请各位来参加‘我不能’先生的葬礼。他在世的时候,参与我们的生命,甚至比任何人影响我们还深。他的名字,我们几乎天天挂在嘴边,出现在各种场合:如工厂、学校、市政府、议会、甚至白宫。”
“现在,希望‘我不能’先生能平静安息,并为他立下墓碑,上面刻着墓志铭。死者已矣、来者可追,希望您的弟兄姊妹:‘我可以’和‘我愿意’能继承您的事业。虽然他们不如您来得有名、有影响力。如果您地下有知,请帮助他们,让他们对世界更有影响力。
“愿‘我不能’先生安息,也希望他的死能鼓励更多人站起来,向前迈进。阿门!”
听完这段悼词之后,我想同学们是永远不会忘记这一天的。这个活动是这样具有象征性,这样意义深远。
这个特别的正面鼓励将深刻在每个孩子的心灵上。
写上“我不能”,埋葬它、聆听悼词。老师完成了大部分的活动,但现在还没结束。她带领学生回到教室。大家一齐吃饼干、爆米花、果汁,庆祝他们越过了“我不能”的心结。汤娜则用纸剪下墓碑形状,上面写着“我不能”,中间加上“安息吧!”再把日期填上。
这个纸墓碑挂在汤娜的教室里。每当有学生无意说出:“我不能……”这句话的时候,汤娜只要指着这个象征死亡的标志。孩子们便会想起“我不能”已经死了,进而想出积极的解决方法。
这个事件对你有什么启发吗?
当你或你身边的朋友无意中又说起“我不能……的时候,请别忘了提醒一下:“我不能先生”已经死了!
恭喜你,又上了一个台阶。
展现在你眼前的是一个可能性的世界!
再一次祝福你!
2009年7月15日星期三
史诗搞笑体育片《中药足球》
史诗搞笑体育片又名中药足球,由杜天一担任女主角,为网友恶搞国足电影,有点意思。网友戏称其大作为史诗搞笑体育片,很有史诗电影的风格特点,画面做得很唯美细腻,故事情节搞笑不可思议。
网友恶搞国足大作史诗搞笑体育片闪亮登场:中药足球
网友最新恶搞国足史诗搞笑体育片:《中药足球》闪亮登场,故事背景设定为宋朝,一次蹴鞠比赛中,宋朝2-3不敌高丽国,延续了宋朝逢高丽30场比赛不胜的尴尬歷史 (“恐韩症”塬来是歷史遗留问题……)。宋徽宗闻讯龙颜大怒,召见当时的蹴鞠协会主席兼国蹴教练-高俅(中国特色古已有之……)。高俅万般无奈之下,只能飞鸽传书给住在白云山的爱妾舒氏求其出谋划策以解丢官之灾。没想到舒氏早有妙计——给“国足”吃中药!同时配合“斗鸡术”,并派丫鬟翠平潜伏到高丽窃取情报。如此这般之后,“国足”果然实力大涨,宋朝国蹴队30-0横扫高丽。宋徽宗龙颜大悦,赐封舒氏为宋朝国师,将她炼製的丹药赐名为“舒氏健腰丸”,并将蹴鞠列为国球。此后,传说就这样延续下去……
##CONTINUE##
史诗搞笑体育片创作缘由
中国身为运动大国,在北京奥运上狂摘五十一金,成绩傲视全球,但是做为民族运动足球项目却是中国人的痛,只在京奥拿了倒数第叁名。河特了解到更可怕的是中国足球队更患有「恐韩症」,过去卅年国际赛总是输给南韩队,战绩二十五负。网友说,国足队就算找到美女来练神丹,也是一败再败。又因中国国家足球队近来战绩极差,遭大陆网友讥为国际「大肉脚」,屡战屡败。为振兴国足,广药集团日前唿吁透过中药药疗与足球,帮球员强身健体,治标亦治本。结果网友以此为笑柄,製作一部性感又梦幻的「史诗搞笑体育片」。
另外广药董事长李楚源日前高唿要用中药拯救中国足球,他认为二○○二年世界盃韩国队能打入四强,全归功于因为高丽参、「青蛙补药」等中药补品,大幅提高球员的体力与耐力。部分媒体认为这是个创举,但也有网友大骂,认为两者根本毫不相关。因此创作这部史诗搞笑体育片借片叙事。
史诗搞笑体育片《中药足球》剧情介绍
在这支由网友将众多广告改编的史诗搞笑体育片中,宋朝蹴鞠队输给了高丽队,累积卅连败(暗讽大陆国足球连败给韩国队卅年),这让宋徽宗暴跳如雷。他命令蹴鞠协会主席兼国蹴教练高俅,不然就把他革职。高俅实在无计可施,便送出飞鸽传书,向白云山上的爆乳爱妾舒氏求救。舒氏献出奇策,先炼出「补肝肾、强筋骨」的神效药丸,更代夫操练球队,传授「斗鸡术」。神丹异术,加上舒氏上半身两颗半球,让宋朝队士气大振,果然功力大增,再战高丽队时大获全胜。宋徽宗乐不可支,赐封舒氏为国师,将这药丸丹药赐名为「舒氏健腰丸」,并把蹴鞠封为国球。片中扮演舒氏的杜天一长相甜美、身材火爆,在网络上引起热烈讨论。
新西兰地震了,这几天地球很活跃啊!
对于震级的说法各个检测部门有所不同,其中一家位于夏威夷的海啸预警中心称,震级达到里氏8.2级。新西兰南岛的皇后镇是著名的旅游景点。感受到地震的游客从饭店里冲了出来,饭店内的照明和电话已经停用。
中国科学家将在日全食期间开展多项科学研究
中国科学院和国家自然科学基金委员会组织了系列日全食科学观测课题。在日全食期间,中国科学家将分赴各地日全食观测现场,进行日冕光谱和成像观测、白光观测、太阳耀斑偏振光谱的空间分布、水内星搜索、日全食的电离层效应、日全食期间重力异常观测、闪光谱观测、日全食射电宽带动态频谱观测等研究。
据介绍,届时国际天文学联合会及有关国家的科学家也将到中国杭州及周边地区开展观测研究工作。
我校IPV6又要加速建设了
2009年7月14日星期二
唉,鑫诺三号卫星故障致部分地区节目中断
据公开信息显示,鑫诺三号卫星承担中央电视台部分内容、广东卫视、广西卫视、深圳卫视、吉林卫视、黑龙江卫视等节目的传输任务。
##CONTINUE##
据中国直播卫星公司内部知情人士表示,卫星的确出现了一些技术问题,目前正在修复中,预计在今天之内可以修复。
目前官方并未公布具体故障原因及受影响范围。
7月13日晚间9点50分左右,有媒体报道称,鑫诺三号卫星转发器发生故障,国内部分区域的有线电视用户出现黑屏与错误讯息。
2009年2月9日10时59分,中星6B卫星曾发生故障,导致在该卫星上传输的中央电视台、中国教育电视台以及23个省的卫视等150套电视节目全部中断,卫星故障时间共47分钟。
资料显示,鑫诺三号卫星于2007年6月1日在西昌卫星发射中心由长征三号甲运载火箭发射,定点于东经125度赤道上空,是基于我国东方红三号卫星平台的鑫诺三号卫星是一颗C频段广播专用通信卫星。
中国直播卫星有限公司成立于2006年12月,是中国卫星通信集团公司和鑫诺卫星通信有限公司投资设立的国有股份制卫星公司。(文元)
附鑫诺三号卫星简介
鑫诺三号”卫星是鑫诺卫星公司采购的专用广播电视卫星,由中国航天科技集团公司所属中国空间技术研究院为主研制,是基于我国成熟的“东方红三号”卫星平台生产的第10颗卫星,主要为通信、广播和数据传输提供服务,计划7月份投入运行,在轨寿命8年。
“鑫诺三号”和“鑫诺二号”都是广播通信卫星,但两者性质不同:“鑫诺二号”是直播卫星,“鑫诺三号”是中继卫星。直播卫星直接向终端用户传送 信号,接收者只需要使用小型卫星接收天线就可以收到来自卫星的电视或广播节目。中继卫星则负责为有线电视台站中继信号、转播广播电视,用户再从有线电视台 接收节目。
作为我国首颗直播卫星,“鑫诺二号”2006年10月发射升空后原计划直接服务于国家广播电视 “村村通”工程和卫星直播领域,让光缆、光纤无法到达的偏远山区只用支起一口“天线锅”就可以接收直播电视或广播信号,但由于定点过程中出现技术故障,太 阳帆板二次展开和通信天线展开未能完成,卫星无法提供服务。
“鑫诺三号”容量较小,只有10个转发器,但具备先进的防止地面上行信号恶意干扰功能,可以确保节目的安全、优质传送。“鑫诺三号”投入使用后,我国目前的部分卫视节目将从“亚太6A”等卫星上转到“鑫诺三号”上,卫视信号将更加安全可靠。
VC基础学习:初学者指针指南
何为指针?
指针基本上和其它的变量一样,唯一的一点不同就是指针并不包含实际的数据,而是包含了一个指向内存位置的地址,你可以在这个地址找到某些信息。这是一个很重要的概念,并且许多程序或者思想都是将指针作为它们的设计基础,例如链表。
开始
如何定义一个指针?呃,就像定义其它的变量一样,不过你还需要在变量名之前添加一个星号。例如,下面的代码创建了两个指向整数的指针:
int* pNumberOne;
int* pNumberTwo;
注意到变量名的前缀“p”了吗?这是编写代码的一个习惯,用来表示这个变量是一个指针。
##CONTINUE##
现在,让我们把这些指针指向一些实际的值吧:
pNumberOne = &some_number;
pNumberTwo = &some_other_number;
“&”标志应该读作“the address of(……的地址)”,它的作用是返回一个变量的内存地址,而不是这个变量本身。那么在这个例子中,pNumberOne就是some_number的地址,亦称作pNumberOne指向some_number。
现在,如果我们想使用some_number的地址的话,那么我们就可以使用pNumberOne了。如果我们希望经由pNumberOne而使用some_number的值的话,我们可以用*pNumberOne。“*”应该读作“the memory location pointed to by(由……指向的内存位置)”,它用来取得指针所指向的值。不过指针声明的情况例外,如“int *pNumber”。
到现在都学到什么了(一个例子):
咻!要理解的东西太多了,所以在此我建议,如果你还是不理解以上的概念的话,那么最好再通读一遍;指针是一个复杂的主题,要掌握它是要花些时间的。
这里有一个示例,解说了上面讨论的那些概念。它是由C编写成,并不带有C++的那些扩展。
#include
void main()
{
// 声明变量:
int nNumber;
int *pPointer;
// 现在,给它们赋值:
nNumber = 15;
pPointer = &nNumber;
// 打印nNumber的值:
printf("nNumber is equal to : %d\n", nNumber);
// 现在,通过pPointer来控制nNumber:
*pPointer = 25;
// 证明经过上面的代码之后,nNumber的值已经改变了:
printf("nNumber is equal to : %d\n", nNumber);
}
请通读并编译以上代码,并确信你已经弄懂了它是如何工作的。然后,当你准备好了以后,就往下读吧!
陷阱!
看看你是否能指出以下程序的缺陷:
#include
int *pPointer;
void SomeFunction()
{
int nNumber;
nNumber = 25;
// 使pPointer指向nNumber:
pPointer = &nNumber;
}
void main()
{
SomeFunction(); // 让pPointer指向某些东西
// 为什么这样会失败?
printf("Value of *pPointer: %d\n", *pPointer);
}
这个程序首先调用SomeFunction函数,在其中创建了一个名为nNumber的变量,并且使pPointer指向这个变量。那么,这就是问题之所在了。当函数结束的时候,由于nNumber是一个本地变量,那么它就会被销毁。这是因为当语句块结束的时候,块中定义的本地变量都会被销毁。这就意味着当SomeFunction返回到main()的时候,那个变量就已经被销毁了,所以pPointer将会指向一个不再属于本程序的内存位置。如果你不懂这一点,那么你应该去读一读有关本地变量、全局变量以及作用域的东西,这些概念非常重要。
那么,如何解决这个问题呢?答案是使用一种名为动态分配的技术。请注意:在这一点上,C和C++是不同的。既然大多数开发者正在使用C++,那么下面的代码就使用C++来编写。
动态分配
动态分配也许可以算是指针的关键技术了。它被用于在没有定义变量的情况下分配内存,然后由一个指针指向这段内存。虽然这个概念好像很让人糊涂,其实它很简单。以下的代码解说了如何为一个整数分配内存空间:
int *pNumber;
pNumber = new int;
第一行代码声明了一个指针pNumber,第二行代码分配了一个整数的空间,并使pNumber指向这一段新分配的内存。下面是另外一个例子,这一次使用了一个double:
double *pDouble;
pDouble = new double;
这些规则是相同的T,所以你应该可以很容易地掌握。
动态分配和本地变量的不同点是:你分配的内存在函数返回和语句块结束的时候不会被释放,所以,如果你用动态分配来重新编写上面的代码,那么它就会正常工作了:
#include
int *pPointer;
void SomeFunction()
{
// 使pPointer指向一个new的整数
pPointer = new int;
*pPointer = 25;
}
void main()
{
SomeFunction(); // 让pPointer指向某些东西
printf("Value of *pPointer: %d\n", *pPointer);
}
请通读并编译以上的示例代码,并确信你已经弄懂了它为何如此工作。当调用SomeFunction的时候,它分配了一段内存,并使pPointer指向这段内存。这一次当函数返回的时候,这段new的内存就会完好保留,所以pPointer仍然指向某些有用的内容。这就是动态分配了!请确信你已经搞懂了这一点,然后继续阅读关于这段代码中的一个严重错误。
来得明白,去得明白
还有一个复杂的因素,并且是十分严重的——虽然它很好补救。问题是你分配的内存在离开的时候虽然仍然完好,但是这段内存永远也不会自动销毁。这就是说,如果你不通知电脑结束使用的话,这段内存就会一直存在下去,这样做的结果就是内存的浪费。最终,系统就会因为内存耗尽而崩溃。所以,这是相当重要的一个问题。当你使用完内存之后,释放它的代码非常简单:
delete pPointer;
这一切就这么简单。不管怎样,在你传递一个有效的指针——亦即一个指向一段你已经分配好的内存指针,而不是那些老旧的垃圾内存——的时候,你都需要无比细心。尝试delete一段已经释放的内存是十分危险的,这可能会导致你的程序崩溃。
好了,下面又是那个例子,这一次它就不会浪费内存了:
#include
int *pPointer;
void SomeFunction()
{
// 使pPointer指向一个new的整数
pPointer = new int;
*pPointer = 25;
}
void main()
{
SomeFunction(); // 让pPointer指向某些东西
printf("Value of *pPointer: %d\n", *pPointer);
delete pPointer;
}
唯一的一行不同也就是最本质的一点。如果你不将内存delete掉,你的程序就会得到一个“内存泄漏”。如果出现了内存泄漏,那么除非你关闭应用程序,否则你将无法重新使用这段泄漏的内存。
向函数传递指针
向函数传递指针的技术非常有用,但是它很容易掌握(译注:这里存在必然的转折关系吗?呃,我看不出来,但是既然作者这么写了,我又无法找出一个合适的关联词,只好按字面翻译了)。如果我们要编写一段程序,在其中要把一个数增加5,我们可能会像这么写:
#include
void AddFive(int Number)
{
Number = Number + 5;
}
void main()
{
int nMyNumber = 18;
printf("My original number is %d\n", nMyNumber);
AddFive(nMyNumber);
printf("My new number is %d\n", nMyNumber);
}
可是,这段程序AddFive中的Number是传递到这个函数中的nMyNumber的一份拷贝,而不是nMyNumber本身。因此,“Number = Number + 5”这一行则是向这份拷贝加上了5,而main()中的原始变量并没有任何变化。你可以运行这个程序试着证明这一点。
对于这个程序,我们可以向函数传递这个数字内存地址的指针。这样,我们就需要修改这个函数,使之能接收一个指向整数的指针。于是,我们可以添加一个星号,即把“void AddFive(int Number)”改为“void AddFive(int* Number)”。下面是这个修改过了的程序,注意到我们已经将nMyNumber的地址(而不是它本身)传递过去了吗?此处改动是添加了一个“&”符号,它读作(你应该回忆起来了)“the address of(……的地址)”。
#include
void AddFive(int* Number)
{
*Number = *Number + 5;
}
void main()
{
int nMyNumber = 18;
printf("My original number is %d\n", nMyNumber);
AddFive(&nMyNumber);
printf("My new number is %d\n", nMyNumber);
}
你可以试着自己编写一个程序来证明这一点。注意到AddFive函数中Number之前的“*”的重要性了吗?这就是告知编译器我们要在指针Number指向的数字上加5,而不是向指针本身加5。
最后要注意的一点是,你亦可以在函数中返回指针,像下面这个样子:
int * MyFunction();
在这个例子中,MyFunction返回了一个指向整数的指针。
指向类的指针
关于指针,我还有还有两点需要提醒你。其中之一是指向结构或类的指针。你可以像这样定义一个类:
class MyClass
{
public:
int m_Number;
char m_Character;
};
然后,你可以定义一个MyClass的变量:
MyClass thing;
你应该已经知道这些了,如果还没有的话,你需要阅读一下这方面的资料。你可以这样定义一个指向MyClass的指针:
MyClass *thing;
就像你期望的一样。然后,你可以为这个指针分配一些内存:
thing = new MyClass;
这就是问题之所在了——你将如何使用这个指针?呃,通常你会这么写:“thing.m_Number”,但是对于这个例子不行,因为thing并非一个MyClass,而是一个指向MyClass的指针,所以它本身并不包含一个名为“m_Number”的变量;它指向的结构才包含这个m_Number。因此,我们必须使用一种不同的转换方式。这就是将“.”(点)替换为一个“->”(横线和一个大于号)。请看下面这个例子:
class MyClass
{
public:
int m_Number;
char m_Character;
};
void main()
{
MyClass *pPointer;
pPointer = new MyClass;
pPointer->m_Number = 10;
pPointer->m_Character = 's';
delete pPointer;
}
指向数组的指针
你也可以使指针指向数组,如下:
int *pArray;
pArray = new int[6];
这将创建一个指针pArray,它会指向一个6个元素的数组。另一种不使用动态分配的方法如下:
int *pArray;
int MyArray[6];
pArray = &MyArray[0];
请注意,你可以只写MyArray来代替&MyArray[0]。当然,这种方法只适用于数组,是C/C++语言的实现使然(译注:你也可以把函数名赋值给一个相应的函数指针)。通常出现的错误是写成了“pArray = &MyArray;”,这是不正确的。如果你这么写了,你会获得一个指向数组指针的指针(可能有些绕嘴吧?),这当然不是你想要的。
使用指向数组的指针
如果你有一个指向数组的指针,你将如何使用它?呃,假如说,你有一个指向整数数组的指针吧。这个指针最初将会指向数组的第一个值,看下面这个例子:
#include
void main()
{
int Array[3];
Array[0] = 10;
Array[1] = 20;
Array[2] = 30;
int *pArray;
pArray = &Array[0];
printf("pArray points to the value %d\n", *pArray);
}
要想使指针移到数组的下一个值,我们可以使用pArray++。我们也可以——当然你们有些人可能也猜到了——使用pArray + 2,这将使这个数组指针移动两个元素。要注意的一点是,你必须清楚数组的上界是多少(在本例中是3),因为在你使用指针的时候,编译器不能检查出来你是否已经移出了数组的末尾。所以,你可能很容易地使系统崩溃。下面仍然是这个例子,显示了我们所设置的三个值:
#include
void main()
{
int Array[3];
Array[0] = 10;
Array[1] = 20;
Array[2] = 30;
int *pArray;
pArray = &Array[0];
printf("pArray points to the value %d\n", *pArray);
pArray++;
printf("pArray points to the value %d\n", *pArray);
pArray++;
printf("pArray points to the value %d\n", *pArray);
}
同样,你也可以减去值,所以pArray - 2就是pArray当前位置的前两个元素。不过,请确定你是在操作指针,而不是操作它指向的值。这种使用指针的操作在循环的时候非常有用,例如for或while循环。
请注意,如果你有了一个指针(例如int* pNumberSet),你也可以把它看作一个数组。比如pNumberSet[0]相当于*pNumberSet,pNumberSet[1]相当于*(pNumberSet + 1)。
关于数组,我还有最后一句警告。如果你用new为一个数组分配空间的话,就像下面这个样子:
int *pArray;
pArray = new int[6];
那么必须这样释放它:
delete[] pArray;
请注意delete之后的[]。这告知编译器它正在删除一个整个的数组,而不是单独的一个项目。你必须在使用数组的时候使用这种方法,否则可能会获得一个内存泄漏。
最后的话
最后要注意的是:你不能delete掉那些没有用new分配的内存,像下面这个样子:
void main()
{
int number;
int *pNumber = number;
delete pNumber; // 错误:*pNumber不是用new分配的
}
常见问题及FAQ
Q:为什么在使用new和delete的时候会得到“symbol undefined”错误?
A:这很可能是由于你的源文件被编译器解释成了一个C文件,因为new和delete操作符是C++的新特性。通常的改正方法是使用.cpp作为你的源文件扩展名。
Q:new和malloc的区别是什么?
A:new是C++特有的关键词,并且是标准的分配内存方法(除了Windows程序的内存分配方法之外)。你绝不能在一个C C++程序中使用malloc,除非绝对必要。由于malloc并不是为C++面向对象的特色设计的,所以使用它为类对象分配内存就不会调用类的构造函数,这样就会出现问题。由于这些原因,本文并不对它们进行讨论,并且只要有可能,我亦会避免使用它们。
Q:我能一并使用free和delete吗?
A:你应该使用和分配内存相配套的方法来释放内存。例如,使用free来释放由malloc分配的内存,用delete来释放由new分配的内存。
引用
从某种角度上来说,引用已经超过了本文的范围。但是,既然很多读者问过我这方面的问题,那么我在此对其进行一个简要的讨论。引用和指针十分相似,在很多情况下用哪一个都可以。如果你能够回忆起来上文的内容——我提到的“&”读作“the address of(……的地址)”,在声明的时候例外。在声明的这种情况下,它应该读作“a reference to(……的引用)”,如下:
int& Number = myOtherNumber;
Number = 25;
引用就像是myOtherNumber的指针一样,只不过它是自动解析地址的,所以它的行为就像是指针指向的实际值一样。与其等价的指针代码如下:
int* pNumber = &myOtherNumber;
*pNumber = 25;
指针和引用的另一个不同就是你不能更换引用的内容,也就是说你在声明之后就不能更换引用指向的内容了。例如,下面的代码会输出20:
int myFirstNumber = 25;
int mySecondNumber = 20;
int &myReference = myFirstNumber;
myReference = mySecondNumber;
printf("%d", myFristNumber);
当在类中的时候,引用的值必须由构造函数设置,像下面这种方法一样:
CMyClass::CMyClass(int &variable) : m_MyReferenceInCMyClass(variable)
{
// 这里是构造代码
}
总结
这一主题最初是十分难以掌握的,所以你最好读上它个至少两遍——因为大多数人不能立即弄懂。下面我再为你列出本文的重点:
1、指针是一种指向内存中某个位置的变量,你可以通过在变量名前添加星号(*)来定义一个指针(也就是int *number)。
2、你可以通过在变量名前添加“&”来获得它的内存地址(也就是pNumber = &my_number)。
3、除了在声明中以外(例如int *number),星号应该读作“the memory location pointed to by(由……指向的内存位置)”。
4、除了在声明中以外(例如int &number),“&”应该读作“the address of(……的地址)”。
5、你可以使用“new”关键字来分配内存。
6、指针必须和它所指向的变量类型相配套,所以int *number不应该指向一个MyClass。
7、你可以向函数传递指针。
8、你必须使用“delete”关键字来释放你分配的内存。
9、你可以使用&array[0]来获得一个数组的指针。
10、你必须使用delete[]来释放动态分配的数组,而不是简单的delete。
这并非一个完全的指针指南,其中有一点我能够涉及到的其它细节,例如指针的指针;还有一些我一点也未涉及到的东西,例如函数指针——我认为作为初学者的文章,这个有些复杂了;还有一些很少使用的东西,在此我亦没有提到,省得让这些不实用的细节使大家感到混乱。
就这样了!你可以试着运行本文中的程序,并自己编写一些示例来弄懂关于指针的问题吧。
刚发现,西安首份高考录取通知书昨日送达
时间可过的真快啊,马上高中毕业的同学们就会踏入大学的大门了!祝福他们!
《变形金刚2》终破《泰坦尼克号》,本周末票房过4亿
当年《泰坦尼克号》的3.6亿票房是放映了70多天的总成绩,而《变形金刚2》仅用了4天就破亿,放映第一周就以1.6亿的成绩跻身全球市场前5名,放映12天后,打破了由《泰坦尼克号》保持了12年的在国内放映的3.6亿票房的纪录。
##CONTINUE##
在该片上映的第二周,全国观影人群仅减少15%,票房仅回落17%。“影院人流几乎没有减少,其中九成以上的人还是看《变形金刚2》的”。院线负责人接受采访时对这个比率表示惊讶,按照目前的票房速度,《变形金刚2》将成为中国电影市场上第一部突破4亿票房的影片。
虽然《变形金刚2》上映后恶评如潮,但丝毫没有阻挡该片的夺金之路。星美院线的袁经理分析说:“首先是《变形金刚1》造成的巨大轰动效应以及 良好的口碑,为续集上映积攒了极高的期待值和人气,另外在同档期内很难有同规格的大片与之匹敌,许多影片都采取了避让的措施,所以这个时间段完全是《变形 金刚2》的,全国一线影院90%以上的影厅都放映这部电影,在这种情况下,《变形金刚2》想不火都难。”
当然影市在《变形金刚2》的带动下,也进入了最火爆的消费热潮期,本周3D电影《冰川时代3》周三上映,仅仅3天票房已经顺利突破1500 万,大大超越了去年国庆档的3D制作《地心历险记》。7月15日即将上映的《哈利波特与混血王子》将会再次掀起影院新一轮的票房高潮。
2009年7月13日星期一
用gmail写blogger
Windows 7 RTM X64种子已出现
种子名为: 7600.16384.090710-1945_x64fre_client_en-us_Retail_Ultimate-GRMCULXFRER_EN_DVD.iso
各版本hash值参考:
##CONTINUE##
x86 zh-cn
2,604,361,728
7600.16384.090710-1945_x86fre_client_zh-cn_Retail_Ultimate-GRMCULFRER_CN_DVD.iso
SHA1 E43BC56AE77A4AB4006A93BB392B150D8A73CCF8
x64 zh-cn
3,341,467,648
7600.16384.090710-1945_x64fre_client_zh-cn_Retail_Ultimate-GRMCULXFRER_CN_DVD.iso
SHA1 A5D467B9B5244C53FEA7B7BED7550AB35F34AB4E
x86 en-us
2,501,750,784
7600.16384.090710-1945_x86fre_client_en-us_Retail_Ultimate-GRMCULFRER_EN_DVD.iso
SHA1 66588F282A88D71A4A1E11BE7C093F02FBFFDDF9
x64 en-us
3,224,717,312
7600.16384.090710-1945_x64fre_client_en-us_Retail_Ultimate-GRMCULXFRER_EN_DVD.iso
SHA1 31849B315290EFABFD81F967ED3C553D82925E4C
Windows 7 RTM版本号确定为7600 64位已泄露
7月13日消息,据国外媒体报道,Windows 7 RTM版本号已基本确定为7600,目前该版本的64位Windows 7 RTM已经在互联网上泄露。
##CONTINUE##
目前,版本号为“Windows 7. 7.7600.16384.090710-1945”的64位系统已经在互联网上泄露,build 7600是最新的Windows 7版本,并有可能成为最终的RTM版本号。
在美国时间本周一召开的全球合作伙伴大会上,预计微软将宣布该消息。如果属实,build 7600意味着Windows 7已经彻底告别测试版。
今年1月,微软发布了Windows 7 Beta,版本号为build 7000。5月又发布了Windows 7 RC,版本号为build 7100。在此之前,业内一直认为Windows 7 RTM版本号将为build 7300。
2009年6月23日星期二
使桌面图标背景透明方法
1. 我的电脑属性--高级--性能--设置--让WIN选择最佳设置--确定(或者自定义--在桌面上为图标标签使用阴影勾选后确定)
2. 桌面右键--排列图标--去除勾选在桌面上锁定WEB项目
3. 桌面属性--桌面--自定义桌面--web--去除勾选锁定桌面项目(包括网站地址)--确定
4.桌面属性--外观--效果--在菜单下显示阴影
5.在“运行”窗口中输入命令:gpedit.msc,然后确定后即可进入组策略管理器,打开组策略,在“用户配置→管理模板→桌面→Active Desktop”中,点活动桌面属性选定“未被配置”,点禁用活动桌面属性选定“已禁用”
微软最新免费杀软MSE初体验
据国外媒体报道,微软最新免费杀软Microsoft Security Essentials(MSE)测试版已经提供下载。作为Windows Live OneCare替代者,MSE此前曾被称作Morro,微软也把MSE定位为一款基础性反病毒、反间谍软件。
MSE可以在Windows XP、Vista或Windows 7(Beta或RC版)环境下运行,并且具备任何一款优秀反恶意病毒软件的主要功能。MSE可以自动更新病毒和间谍软件特征库,提供实时扫描下载数据服务,检测可疑文件和程序,并且可以自动扫描运行程序。
MSE的用户界面简洁、整齐划一。对于新融入的rootkits拦截技术,用户可以通过MSE友好的用户界面顺利地使用。正如MSE主界面所示,绿色图标表示用户正在受到实时保护。
图(1)MSE主界面
当MSE显示橘红色图标时,这就意味着用户已经受到威胁,如MSE的实时保护功能已经被关闭。
图(2)MSE受威胁时界面
不过,这种视觉上的威胁报告在其他杀软中非常常见,微软所做的只是一种效仿。为了便于对照,下面是AVG免费版的主界面:
图(3)AVG主界面
MSE的设置选项充分地考虑到了用户的要求。例如MSE可以扫描USB闪存驱动器这类的移动存储设备(这项功能是默认关闭的)。当然,用户也可以安排MSE的扫描时间:
图(4)MSE选项
笔者今天早晨下载了MSE软件,并安装在自己的Windows XP上网本中。到目前为止,MSE都没有影响系统的运行速度,但这样的问题却经常在诺顿和麦咖啡这样的杀软身上发生(电脑内存为512MB,MSE在XP系统环境下最小内存要求为256MB)。
在MSE扫描时,微软Word 2007需要14秒的时间启动,这比平时要多出3秒。
一款杀软的真正价值是由其杀毒能力决定的。当然,MSE也需要一项综合的测试来证明它的价值所在。据悉,很多安全专家已经对微软的这款有所赞赏。
2009年6月18日星期四
30秒清除你电脑中的垃圾(使你电脑急速如飞)
要轻松流畅上网你是否注意到你的电脑系统磁盘的可用空间正在一天天在减少呢?速度一天比一天迟缓呢? 因为Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:*.tmp、*._mp)日志文件(*.log)、临时帮助文件(*.gid)、磁盘检查文件(*.chk)、临时备份文件(如:*.old、*.bak)以及其他临时文件。特别是如果一段时间不清理IE的临时文件夹 “Temporary Internet Files”,其中的缓存文件有时会占用上百MB的磁盘空间。这些垃圾文件不仅仅浪费了宝贵的磁盘空间,严重时还会使系统运行慢如蜗牛。所以应及时清理系统的LJ文件的淤塞,保持系统轻松流畅上网!现在就让我们一起来快速清除系统垃圾吧!!下面是步骤很简单就两步!
##CONTINUE##
在电脑屏幕的左下角按“开始→程序→附件→记事本”,把下面绿色的文字复制进去,点“另存为”,路径选“桌面”,保存类型为“所有文件”,文件名为“清除系统LJ.bat”,就完成了。记住后缀名一定要是.bat, ok!你的垃圾清除器就这样制作成功了! 双击它就能很快地清理垃圾文件,大约一分钟不到。
======就是下面紫色的文字(这行不用复制)=============================
@echo offecho 正在清除系统垃圾文件,请稍等......del /f /s /q %systemdrive%\*.tmpdel /f /s /q %systemdrive%\*._mpdel /f /s /q %systemdrive%\*.logdel /f /s /q %systemdrive%\*.giddel /f /s /q %systemdrive%\*.chkdel /f /s /q %systemdrive%\*.olddel /f /s /q %systemdrive%\recycled\*.*del /f /s /q %windir%\*.bakdel /f /s /q %windir%\prefetch\*.*rd /s /q %windir%\temp & md %windir%\tempdel /f /q %userprofile%\cookies\*.*del /f /q %userprofile%\recent\*.*del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"del /f /s /q "%userprofile%\Local Settings\Temp\*.*"del /f /s /q "%userprofile%\recent\*.*"echo 清除系统LJ完成!echo. & pause
2009年5月28日星期四
直观感受Windows7防毒技巧的改进
一、UAC变身
事实上,在Vista出现UAC功能时外界就争论不休,这种方式在安全性提高的同时却降低了用户体验。由此在Windows7中,微软开始让用户选择UAC的通知等级,另外还改进了用户界面以提升体验。Windows7中UAC最大的改进就是在控制面板中提供了更多的控制选项,用户能根据自己需要选择适当的UAC级别。
##CONTINUE##
在开始菜单搜索框中输入“Secpol.msc”后回车,打开本地安全策略编辑器,选择“本地策略”→“安全选项”,然后在右侧列表中找到“用户帐户控制:管理员批准模式中管理员的提升提示行为属性”,用户可以看到“本地安全设置”中的下拉列表中共有六种选择,分别是:不提示,直接提升;在安全桌面上提示凭据;在安全桌面上同意提示;提示凭据;同意提示;非Windows二进制文件的同意提示。这里有必要提一下“非Windows二进制文件的同意提示”,该选项可以很好的将Windows系统性文件过滤掉而直接对应用程序使用UAC功能,这是Windows7的亮点所在。
另外一种直观的修改方法为进入控制面板的用户账户更改界面,点击“更改用户账户控制设置”,Windows7下的UAC设置提供了一个滑块允许用户设置通知的等级,可以选择4种方式,但显然没有上面的方法灵活。
二、行为中心
Windows7去掉了最初随WindowsXPSP2推出的安全中心(SecurityCenter),改用行为中心(ActionCenter)。这里面包含安全中心;问题、报告与解决方;WindowsDefender;WindowsUpdate;Diagnostics;网络访问保护;备份与回复(BackupandRestore);复原(Recovery);以及上面提到的UAC。
在进入行为中心后,Windows7支持用WindowsDefender快速扫描本地电脑。我们在联想T61笔记本中扫描系统盘,耗时仅33秒,扫描资源达34931个,虽然不好界定WindowsDefender对于系统本身安全性保障有多高,但作为系统内置与系统契合度很高的软件来说,如此的扫描速度已经非常不错了。
其实,WindowsDefender在设置中心里的功能还可以让其表现的更加完美。实时保护功能可以对下载以及运行的程序进行扫描。对于特定的文件类型和路径也可以过滤,并且支持邮件以及移动存储的扫描等等。
在安全设置中,用户可以非常清晰的看到当前系统各项服务的启用情况,维护区域中也可以显示诸如检测问题报告或者备份方面的信息。
三、全新防火墙功能
Windows7下的防火墙最大特点就是内外兼防,通过Homeorworknetworks和Publicnetworks来对内外网进行防护。
高级设置项目也更加全面,通过入站与出战规则可以清晰勾勒出当前网络流通的情况,并且针对配置文件的操作和策略的导入都有较大的提升。相信以后的更新升级中,Windows7防火墙将有更大的用武之地。
四、安全部署细节问题&总结
和XP、Vista一样,Windows7的安全部署也需要借鉴Windows系列的安全流程。这种近乎通用的方式可以为Windows7的安全性提供更好的保证。
1.账户问题
绝大多数的黑客入侵,取得root权限后都将如入无人之境。账户的安全问题也就成为重中之重。大家都知道,Administrator级别账户可以有足够高的权限掌控Windows。所以为Administrator起一个不被注意的名字就显得十分必要,但请不要使用Admin之类的名字,因为很多黑客工具的字典里,Admin的猜解频繁度丝毫不比Administrator低。
另外在用户管理中把Guest账户停掉,任何时候都不允许其登录系统。当然这种方式对于个人PC比较适用,如果经常遇到多用户登录或者受限登录,最好为账户设置一个通用密码,以屏蔽外界网络的入侵。
2.共享问题
在CMD下输入“netshare”查看共享资源。这里有IPC通道、文档以及打印机的共享,当然默认的系统中可能还会包含硬盘的共享等。禁止方法如下:
netsharec$/delete(删除C盘共享,其它盘符类似)
netshareipc$/delete(删除IPC共享)
3.端口问题
系统中有一些端口是非常危险的,黑客们可以通过这些端口控制我们的计算机,比如3389端口,在关闭之前需要了解一下计算机中开放的端口,在CMD下输入“netstat-an”,看到开放了135、139等端口,需要将其禁止。这种方式最好通过专用防火墙来监听或者直接关闭,在管理上比系统过滤的方式更为方便快捷。
很明显,“Windows7不过是Vista加几款补丁而已”的说法稍显偏颇,但Windows也绝非是无懈可击的。我们可以理解外界以及竞争对手对微软的一些抱怨和质疑,但毋庸置疑的是:Windows7在安全方面的确有更好的表现。UAC漏洞也不过是被舆论放大的一个事件。
面对如此庞大的代码阵营,众多计算机专家搭建起来的Windows7势必还会存在瑕疵,就像Windows2000面对Windows98,WindowsXP面对Windows2000,WindowsVista面对WindowsXP一样,即便是仍有瑕疵,Windows7也注定成为操作系统发展史上的推动机
2009年5月16日星期六
电脑自动关机故障的排除方法
如果确定系统没问题自动关机故障的排除方法:
1、有可能是BIOS的设置问题,进入BIOS里恢复默认设置或把主板的电池拿出来,反扣放电,等5分钟在反装进去即可。目的:是BIOS的设置恢复默认值,排除BIOS的散热预设自动重启或关机现象。
2、如果电脑在使用某一个应用程序软件时发生自动关机,则自动关机故障可能是由此程序软件引起的,一般将程序软件卸载即可。
##CONTINUE##
3、接着检查电源,电源品质差,老化或功率过小,无法满足电脑各配件的供电需求,可更换大功率高质量的电源,如果故障排除,则是电源引起的自动关机故障。
4、接着使用排除法,检查内存、显卡、CPU、CPU风扇、主板等。
5、检查内存,内存质量不过关、散热不良、超频、不同品牌的内存混插及CAS值设置过低等都可引起电脑自动关机,可用测试内存,并将BIOS中对内存参数进行相应调整。
6、检查主板,主板老化、电容失效或爆浆、主板电源插针、主板与机箱背板发生短路等均可引起自动关机,可将主板从机箱取出检查或测试,接着检查CPU的风扇转动及CPU的温度是否正常,接着检查CPU风扇散热片的底部硅胶是否变干,如果变干,将CPU风扇上的硅胶清理干净,然后重新涂上好的硅胶即可。如果风扇不正常,更换CPU风扇。
7,可能是玩大型游戏导致CPU过热,而CPU风扇散热不好就会使电脑自动关机。如果是,而且经常发生自动关机故障,建议,更换一个高质量的转速高的 CPU散热风扇,风扇散热片的底部硅胶是否变干,如果变干,将CPU风扇上的硅胶清理干净,然后重新涂上好的硅胶即可。如果是游戏软件导致的自动关机,请卸载重装。
8、供电系统不稳定,也可造成自动关机故障的发生,可以考虑配置一台带稳压功能的UPS后备电源。
9、清洁法:是通过对电脑主机中部件的灰尘进行清洁来排除故障的方法。灰尘是也可造成电脑自动关机故障的因素之一,灰尘可以造成部件老化、引脚氧化、接触不良及短路等故障。对于灰尘造成的这些故障,一般使用清洁法比较有效。
2009年5月15日星期五
键盘上WIN键和它的使用
计算机应用中,WIN键总是配合其它键使用。
##CONTINUE##
用法如下:
WIN 显示或隐藏"开始"菜单。
WIN+ D 显示桌面;重复操作一遍即可返回原来的窗口
WIN+ E 打开"资源管理器"。
WIN+ F 搜索文件或文件夹。
WIN+ L 如果连接到网络域,则锁定您的计算机,或者如果没有连接到网络域,则切换用户。
WIN+ M 最小化所有窗口。
WIN+ R 打开"运行"对话框。
WIN+ U 打开"辅助工具管理器"。
CTRL+WIN+ F 搜索计算机。
WIN+ BREAK 显示"系统属性"对话框。
WIN+ Shift + M 还原最小化的窗口。
WIN+ F1 显示 Windows 帮助。
2009年5月10日星期日
如何清除电脑中的一些历史记录
以Windows XP为例,右键点击“开始”按钮,选择“属性”,在弹出的设置任务栏和开始菜单属性对话窗中点“自定义”按钮,在“自定义开始菜单”对话框中的“高级”标签下点“清除列表”。若要让系统永不自作多情记住使用文档的记录,请去掉“列出我最近打开的文档”前的钩。
小提示:XP会把最近访问文档的快捷方式放在C:\Documents and Settings\用户名\Recent中,手工删除它们也能让文档菜单“失去记忆”。
2.删除临时文件夹中的内容
##CONTINUE##
当执行过安装软件、打开文档等操作时,在临时文件夹中会留下相应文件,可以手工清除在下列位置中的内容:C:\Windows\Temp、C:\Documents And Settings\用户名\Local Settings\Temp。如在删除时提示有文件在使用,就需要关掉相关程序,最好重启一次再删除。
3.清除“运行”、“查找”等处的历史记录
在“运行”对话框中,单击“打开”输入栏后面的下拉按钮时,我们可以清楚地看到我们最近都执行了哪些命令(如图1)。为了防止他人偷窥到自己的“运行”隐私,我们按照如下方法来及时将运行框中的使用痕迹清理掉:
依次选择“开始→运行”命令,在弹出的“运行”对话框中运行“Regedit”命令,在打开的注册表编辑界面中找到HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer\RunMRU,在对应RunMRU分支的右边窗口中,你将看到最近的执行记录,依次选择每一个记录,并依次执行“编辑→删除”命令,将它们全部删除掉。最后再将计算机系统重新启动一下,你会发现运行框中的使用痕迹已经被清理掉了。
4.隐藏在IE中的行踪
上网后,会有大量信息反映你的所作所为,这还了得?
①清空Internet临时文件夹
别人查看“Internet临时文件夹”下的图片、Flash等文件便能大体知道你曾到过的网站。要清除它们,可依次单击IE菜单栏中的“工具”→“Internet选项”,打开“Internet选项”对话框,在“常规”标签中点击“删除文件”按钮,在弹出的“删除文件”窗口中勾选“删除所有脱机内容”,最后点击“确定”。
②我不要“小甜饼”(Cookie)
Cookie也可能是泄密的一个“罪魁祸首”,在“Internet选项”对话框的“常规”标签中单击“删除Cookies”按钮,待弹出窗口后单击“确定”按钮,可删除它们。
小提示:一种保险的办法是在上网后,进入Internet临时文件夹(该文件夹可在Internet选项对话框的“常规”选项下点“设置”来查看具体位置),删除其下所有内容,这样,临时文件及Cookie等都会被清除。
③消除访问网页的历史记录
IE会将最近三周的访问历史记下,要“踏网无痕”可得清除它们,只要删除“C:\Documents and Settings\用户名\Local Settings\History”文件夹中的所有内容即可。也可在Internet选项对话框的“常规”标签下点“清除历史纪录”按钮。
要让IE不记录访问历史,请在Internet选项对话框的“常规”选项下,将网页保存在历史纪录中的天数从默认的20改成0即可。
④清除IE记住的表单内容
当访问网站时,一些网页会提示输入,例如,搜索时会要求输入搜索内容、登录邮箱则要填用户名、密码——这些东西会被IE自动记录。要删除它们,可在“Internet选项”对话框的“内容”标签下点“自动完成”按钮,在弹出的“自动完成设置”对话框中将“表单”、“表单上的用户名和密码”和“提示我保存密码”前的钩去掉,再单击“清除表单”、“清除密码”按钮,当询问时点“确定”。
⑤删除地址栏列表中的网址
在IE地址栏中输入要访问站点的部分字母时会自动打开列表,其中有最近曾访问的相匹配的站点,这也得清除。
在“Internet选项”对话框的“内容”标签下单击“自动完成”按钮,打开“自动完成”对话框,去掉“Web地址”前的钩。
若安装了“中文网址”软件,采用上法不能将地址栏列表中的“网络实名”清除,此时要在“Internet选项”对话框的“高级”选项卡下,选中“网络实名”中的“清除地址栏下拉列表中显示的网络实名”项,单击“确定”。
小提示:当完成上述操作后,千万别忘清空回收站。若此处没有收拾干净,就将前功尽弃了。
二、清除你在应用程序中的“行踪”
一些软件会记录曾打开的文件等信息。因此在将系统中的痕迹打扫后,别忘了清除在应用程序中曾留下的踪影。
1.还系统一个干净的QQ
QQ会自动记录登录号码和聊天记录,如何才能“聊天不留痕”呢?很简单,只要在QQ登录对话框中点“清除记录”按钮,系统将提示是否删除对应的所有记录文件等,勾选该项,然后输入QQ登录密码,点击“确定”即可。
另外,在QQ2004中可选择登录模式,如不想在退出QQ后保存相关记录,可选择“网吧模式”。如果还不放心,最好在退出QQ后手工清除QQ文件夹下用你的号码命名的文件夹。
2.清除MSN Messenger中的登录帐户信息
当在MSN Messenger中登录后,下次再登录会自动出现上次的用户名,要去掉它可在控制面板中双击“用户帐户”,然后选当前登录帐户,再选“创建我的NET PASSPORT”项,点击左侧“相关任务”下“管理我的网络密码”,在“储存用户名和密码”对话框中,选中要删除的帐户,点击“删除”按钮。
3.消除Office系列软件中的使用痕迹
Office 系列软件会保存打开过文件的快捷方式,需进入C:\Documents and Settings\用户名\Application Data\Microsoft\Office\Recent文件夹,删除其中的文件。
另外,在Word中记录了最近使用的一些文件,点击 “工具”→“选项”菜单项,在“常规”标签下去掉“列出最近使用文件”项前的勾,可让其不显示出来。而在Excel、PowerPoint、Access等中都有相应的选项,可按照相同的方法去掉痕迹。
4.清除网际快车中的下载信息
网际快车会自动保存下载文件的信息,要清除可用下列方法:在网际快车中,将“正在下载”和“已下载”文件夹中的项目全部删除(被删除的项目会放入“已删除”文件夹),再将“已删除”文件夹下的内容完全删除。
5.清除“暴风影音”的记录
暴风影音会自动记录以往曾播放过的文件,点击“查看”/“选项”,在选项对话框右侧去掉“保留最近打开文件的历史记录”,确定后可去掉播放记录。
6.消除RealOne的播放记录
单击“工具”菜单中“参数设置”,在弹出对话框的“类别”中选“普通”项,点击“清除历史记录”。如不想自动记录播放记录,需要取消“允许在文件菜单中显示历史记录列表”选项。
7.清除Windows Media Player的历史记录
在WMP播放器中,依次点击“工具”→“选项”→“隐私”项,单击“清除历史记录”按钮,可将“文件”菜单中“打开”和“打开URL”对话框中存储的信息删除;单击“清除CD/VCD”则可删除存储的播放过的CD和DVD的所有媒体信息。为了让其不再记录,就要去掉“在播放机中保存文件和URL历史记录”前的钩选。
8.让输入法没“记性”
很多输入法会自动记忆曾输入过的内容。下面以一些输入法为例说明如何让它“失忆”。
①智能ABC:它虽不将记忆内容显示在提示行中,但会将常用到的词汇保存在c:\windows\system文件夹下的“tmmr.rem”文件中,将其删除。如要它“失忆”,可右击输入法图标打开“属性设置”,在对话框中去掉“词频调整”前的钩选即可。
②拼音加加:右击输入法图标,选择“设置”,然后在“设置”标签下选中“禁用词频调整”。要避免对单字也不调整频度,就要选择“单字频度调整方式”下的“禁用”。
③陈桥五笔:陈桥五笔会将输入过的内容自动记录到C:\chenhu2\cwbzlcz1.chh和cwbzlcz2.chh文件中,用写字板打开便可查看,这岂不是会泄密?因此在使用后务必将它们删除掉。
9 .用Maxthon清除上网记录
如果你使用Maxthon浏览器来上网,那要清除上网痕迹就非常简单了,你不需要逐项清除网页历史、搜索栏历史、cookie等,只要点击“工具”菜单中的“清除浏览记录”→“全部清除”,并在弹出中的对话框中点击“是”即可。
10.清除foxmail的邮件地址记录
使用Foxmail发送邮件后,在收件人栏中输入的地址将被记忆,只要输入这个地址的首字符便会自动补全,看来它也会泄密。
单击Foxmail中的“工具”→“系统设置”,在“常规”标签下单击“清除历史记录”按钮,在弹出的对话框中点击“是”。也可手工清除邮件地址记录:用记事本打开Foxmail安装文件夹下的foxmail.adc文件,删除其中的内容,再保存文件。
小提示:若将foxmail.adc文件设为“只读”属性,则以后输入的地址将不被记录。
经过以上的补救措施,在使用电脑时基本就不会留下蛛丝马迹了。为保证将使用电脑的痕迹擦除得干净、彻底,建议在清理结束时重启一次电脑后再关机。
2009年5月6日星期三
利用del.icio.us来显示随机文章
当然也感谢外国原作者Mario Brhemenz。
这个hack的作用就是利用del.icio.us的书签功能来给blogspot添加一个显示随机文章的按钮,按了按钮js脚本就会随机在del.icio.us的书签里取得一篇博客文章并直接把当前博客页跳转到该随机文章。
但是一个极大的缺陷就是,你必须把你博客文章一篇一篇的输入到del.icio.us里,才能起到随机跳转的作用,如果你只输入一篇文章,那么就只跳转到那篇文章……
安装方法,
你首先下载这个 js脚本:http://ggpi.008.net/random.js 把里面的“ggpi”替换成你要使用的del.icio.us的用户名。然后把该脚本上传到某个空间。
接着紧跟<head>下面某个地方加上
<script src='http://ggpi.008.net/random.js' type='text/javascript'/>
当然你要把http://ggpi.008.net/random.js换成你的刚刚上传好js的空间网址。
最后在你的模板页面元素项目加上一个HTML/JavaScript页面元素內容如下:
<form id="azform" action="javascript:azar();" method="get"> <input id="azbotonn" value="随机日志" onclick="azar(); return false;" type="button"/> </form>
<div style="display:none">
<script src="http://del.icio.us/feeds/js/tags/<span style=">你的del.icio.us 用户名</span>?
totals;flow=list;size=15-25;color=000099-000000;"
type="text/javascript"><script>
</div>
2009年4月29日星期三
在不改变修改过模板下增加打星评分功能
<div class='post-footer-line post-footer-line-1'>
在后面添加如下代码:
<b:if cond='data:blog.pageType == "item"'>
<span class='star-ratings'>
<b:if cond='data:top.showStars'>
<div expr:g:background-color='data:backgroundColor' expr:g:text-color='data:textColor' expr:g:url='data:post.absoluteUrl' g:height='42' g:type='RatingPanel' g:width='180'/>
</b:if>
</span>
</b:if>
接着往下面找到下列代码:
<!-- navigation -->
<b:include name='nextprev'/>
<!-- feed links -->
<b:include name='feedLinks'/>
最后跟在下面添加下列代码:
<b:if cond='data:top.showStars'>
<script src='http://www.google.com/jsapi' type='text/javascript'/>
<script type='text/javascript'>
google.load("annotations", "1");
function initialize() {
google.annotations.createAll();
google.annotations.fetch();
}
google.setOnLoadCallback(initialize);
</script>
</b:if>
就完工了!另外你注意到<script src='http://www.google.com/jsapi' type='text/javascript'/>这一行代码了吗?如果你已经加了<script src='http://www.google.com/jsapi' type='text/javascript'/>这行代码在博客开头的位置,那么可以把这行代码去掉,因为已经不需要了!
2009年4月18日星期六
给blogspot博客提供文章和评论总计功能
安装非常简单,只需要新建一个HTML/JavaScript,将如下代码复制进去就好了!
<div style="float: left;"><img style="width: 48px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwI22p_fTZTCvdlzyXY8YhHpmbPEXAr-DMIXOhY84ZbuQzf9t0dgB8u0U2FQSpb__I13B2OGSStJUPWww9rIkv1t2q5w2sB7_vBFnqURft8b1ioqdoM4RD3QjPze5JXYDn610IwvYrf4nt/s0/stats.png"/></div>
<div style=" float: left; text-align: left;">
<script style="text/javascript">
function showpostcount(json) {
document.write(parseInt(json.feed.openSearch$totalResults.$t,10));
}</script>
<script src="http://ggq.blogspot.com/feeds/posts/default?alt=json-in-script&callback=showpostcount"></script> 篇文章
<br/>
<script src="http://xuexiji.blogspot.com/feeds/comments/default?alt=json-in-script&callback=showpostcount"></script> 个评论</div>
<div style="clear: both;"></div>
当然注意要把红色的http://xuexiji.blogspot.com 改成你的博客地址了!
注意绿色的https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwI22p_fTZTCvdlzyXY8YhHpmbPEXAr-DMIXOhY84ZbuQzf9t0dgB8u0U2FQSpb__I13B2OGSStJUPWww9rIkv1t2q5w2sB7_vBFnqURft8b1ioqdoM4RD3QjPze5JXYDn610IwvYrf4nt/s0/stats.png部分网址是此统计的图片效果,你也可以改成你想要显示的图片。
2009年4月9日星期四
给Blogger添加相关文章功能
1、把下面代码放在<head></head>中。其中的"i < 12"是控制文章数量的,建议数值不要太大,以免影响浏览速递。
2、找到下面黑色的代码,在</b:if>与</b:loop>之间,插入如下红色的代码。注意:"max-results=12"是控制相关文章的显示数值。<script type="text/javascript">
//<![CDATA[
var relatedTitles = new Array();
var relatedTitlesNum = 0;
var relatedUrls = new Array();
function related_results_labels(json) {
for (var i = 0; i < json.feed.entry.length; i++) {
var entry = json.feed.entry[i];
relatedTitles[relatedTitlesNum] = entry.title.$t;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
relatedUrls[relatedTitlesNum] = entry.link [k].href;
relatedTitlesNum++;
break;
}
}
}
}
function removeRelatedDuplicates() {
var tmp = new Array(0);
var tmp2 = new Array(0);
for(var i = 0; i < relatedUrls.length; i++) {
if(!contains(tmp, relatedUrls[i])) {
tmp.length += 1;
tmp[tmp.length - 1] = relatedUrls[i];
tmp2.length += 1;
tmp2[tmp2.length - 1] = relatedTitles[i];
}
}
relatedTitles = tmp2;
relatedUrls = tmp;
}
function contains(a, e) {
for(var j = 0; j < a.length; j++) if (a[j]==e) return true;
return false;
}
function printRelatedLabels() {
var r = Math.floor((relatedTitles.length - 1) * Math.random());
var i = 0;
document.write('<ul>');
while (i < relatedTitles.length && i < 12) {
document.write('<li><a href="' + relatedUrls[r] + '">' + relatedTitles[r] + '</a></li>');
if (r < relatedTitles.length - 1) {
r++;
} else {
r = 0;
}
i++;
}
document.write('</ul>');
}
//]]>
</script>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != "true"'>,</b:if>
<b:if cond='data:blog.pageType == "item"'>
<script expr:src='"/feeds/posts/default/-/" + data:label.name + "?alt=json-in-script&callback=related_results_labels&max-results=12"' type='text/javascript'/>
</b:if>
</b:loop>
</b:if>
3、找到自己想要显示相关文章的位置,将下面红色代码放进去,保存就OK那了。本例就放在评论前,如下面黑色代码。
<b:if cond='data:blog.pageType == "item"'>
<script type="text/javascript"> removeRelatedDuplicates(); printRelatedLabels(); </script> </b:if>
<div id='comments'>
<a name='comments'/>
<h4>
<b:if cond='data: post.numComments == 1'>
1 条评论:
<b:else/>
<data:post.numComments/> 条评论:
</b:if>
</h4>
<dl id='comments-block'>
<b:loop values='data: post.comments' var='comment'>
<dt class='comment-author' expr:id='"comment-" + data:comment.id'>
<a expr:name='"comment-" + data: comment.id'/>
<b:if cond='data:comment.authorUrl'>
<a expr:href='data:comment.authorUrl' rel='nofollow'><data:comment.author />
4、完成,看看效果吧!
2009年3月28日星期六
一分钟修改页首图片
1.切换到Layout设置
2.在Layout底部 Add Page Element——>HTML/JavaScript
3.添加并根据实际情况修改代码
<div style="position:absolute; left:0; top:57px; text-align:center; width:100%">
<a href="博客地址" />
<img src="图片地址" />
</a>
</div>
4.这个设置适于minima这个模板,修改top的值以适应不同的模板。
2009年3月3日星期二
添加标签云
请于修改之前备份你的模板。
Step1:我们知道,Blogger beta的代码分为三部分:样式表、布局、Widget。第一步我们不需要展开代码,添加CSS代码。找到 ]]></b:skin> ,并将CSS添加在其之前。
/* Label Cloud Styles
----------------------------------------------- */
#labelCloud {text-align:center;font-family:arial,sans-serif;}
#labelCloud .label-cloud li{display:inline;background-image:none !important;padding:0 5px;margin:0;vertical-align:baseline !important;border:0 !important;}
#labelCloud ul{list-style-type:none;margin:0 auto;padding:0;}
#labelCloud a img{border:0;display:inline;margin:0 0 0 3px;padding:0}
#labelCloud a{text-decoration:none}
#labelCloud a:hover{text-decoration:underline}
#labelCloud li a{}
#labelCloud .label-cloud {}
#labelCloud .label-count {padding-left:0.2em;font-size:9px;color:#000}
#labelCloud .label-cloud li:before{content:"" !important}
Step2:添加布局部分代码。我们仍然要先找到 ]]></b:skin> ,但这一次我们要在它之后、Head之前添加以下代码:
<script type='text/javascript'>
// Label Cloud User Variables
var lcBlogURL = 'http://YOURBLOG.blogspot.com';
var maxFontSize = 20;
var maxColor = [0,0,255];
var minFontSize = 10;
var minColor = [0,0,0];
var lcShowCount = false;
</script>
修改YOURBLOG为你的名字,其中关于颜色,文字大小等值可以自定义,以跟你的Blog色调打配。
简单介绍一下,maxFontsize表示字体最大值,minFontSize表示字体最小值,minColor表示颜色最浅值,maxColor表示颜色最深值。
Step3:最后要修改的是Widget本身了。继续往下看就会找到Label的Widget
类似这一句:<b:widget id='Label1' locked='false' title='Labels' type='Label'/>
如果你没有展开代码,只需要用以下代码替换这一行;相反,你要替换整个Widget。
<b:widget id='Label1' locked='false' title='Label Cloud' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<div id='labelCloud'/>
<script type='text/javascript'>
// Don't change anything past this point -----------------
function s(a,b,i,x){
if(a>b){
var m=(a-b)/Math.log(x),v=a-Math.floor(Math.log(i)*m)
}
else{
var m=(b-a)/Math.log(x),v=Math.floor(Math.log(i)*m+a)
}
return v
}
var ta=0
var c=[];
var labelCount = new Array();
var ts = new Object;
<b:loop values='data:labels' var='label'>
var theName = "<data:label.name/>";
ts[theName] = <data:label.count/>;
</b:loop>
for (t in ts){
if (!labelCount[ts[t]]){
labelCount[ts[t]] = new Array(ts[t])
}
}
tz = labelCount.length-1;
lc2 = document.getElementById('labelCloud');
ul = document.createElement('ul');
ul.className = 'label-cloud';
for(var t in ts){
for (var i=0;3 > i;i++) {
c[i]=s(minColor[i],maxColor[i],ts[t]-ta,tz)
}
var fs = s(minFontSize,maxFontSize,ts[t]-ta,tz);
li = document.createElement('li');
li.style.fontSize = fs+'px';
li.style.lineHeight = '1';
a = document.createElement('a');
a.title = ts[t]+' Posts in '+t;
a.style.color = 'rgb('+c[0]+','+c[1]+','+c[2]+')';
a.href = lcBlogURL+'/search/label/'+encodeURIComponent(t);
if (lcShowCount){
span = document.createElement('span');
span.innerHTML = '('+ts[t]+') ';
span.className = 'label-count';
a.appendChild(document.createTextNode(t));
li.appendChild(a);
li.appendChild(span);
}
else {
a.appendChild(document.createTextNode(t));
li.appendChild(a);
}
ul.appendChild(li);
abnk = document.createTextNode(' ');
ul.appendChild(abnk);
}
lc2.appendChild(ul);
</script>
<noscript>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a expr:href='data:label.url'><data:label.name/></a>
</b:if>
(<data:label.count/>)
</li>
</b:loop>
</ul>
</noscript>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>
Step4:Game Over ^-^
2009年3月2日星期一
改变/隐藏Feed订阅地址
<b:widget id='FeedsWidget' locked='false' title='Feeds' type='Blog'>但我觉得,好像大多数人都用Feedburner或Feedsky烧制了RSS,那么我们可以把它隐藏起来。在CSS中加入这一句
<b:includable id='main'>
<h2 class='sidebar-title'>Syndication</h2>
<b:if cond='data:feedLinks'>
<ul class='xoxo'>
<b:loop values='data:feedLinks' var='f'>
<li><img src='http://photos1.blogger.com/blogger/6537/1341/1600/feed-icon-12x12.jpg' alt='' /> <a expr:href='data:f.url + "?alt=rss"' rel='alternate'><data:f.name/> Feed</a></li>
</b:loop>
</ul>
</b:if>
</b:includable>
</b:widget>
.feed-link { display: none }
2009年2月26日星期四
Favicon(已更新)
发现了一个非常Cool的网站但那个图标是静态的。在这个网站上你可以生成一个动态的图标,而且可以任意选择本地文件上传,自定义滚动的文字(好像不支持中文),动心了吗?
生成之后下载它提供的一个压缩文件,里面包含了一个.ico文件,一个 .gif文件。把它们上传到如Google pages(ICO文件必须更改名称,只要不是Favicon即可,比如鱼用的Sunricon.ico)得到地址。然后在Head之间添加下面代码:
1.如果是静态的Favicon(只需上传ICO文件)
<link rel="shortcut icon" href="favicon.ico文件地址" />2.如果是动态的Gif(上传两个文件)
<link rel="shortcut icon" href="favicon.ico文件地址" / >
<link rel="icon" href="animated_favicon1.gif文件地址" type="image/gif" />
2009年2月25日星期三
OneNote 2007简体中文官方单独安装版
与纸张式系统、字处理程序、电子邮件系统或其他生产效率程序不同的是,Office OneNote 2007 带来了灵活性,可以收集和组织文本、图片、数字手写内容、录音与录像等 — 全都在计算机上的一个数字笔记本中完成。Office OneNote 2007 可以帮助您将所需信息保留在指尖,并减少用于在电子邮件、纸张式笔记本、文件夹和打印资料中搜索信息所需的时间,帮助您提高工作效率。
Office OneNote 2007 是 2007 Microsoft Office system的一个集成部分,实现了轻松、高效地收集、组织、查找和共享笔记与信息。强大搜索功能可以帮助您搜索图片文本或录音录像中说的词中的信息。易 用协作工具可以帮助团队通过共享笔记本中的所有这些信息进行协同工作 — 无论联机或脱机。
通过将所有信息置于您的指尖,Office OneNote 2007 为您提供一个信息过载解决方案,让您更加高效地与其他人协同工作,并帮助您控制任务、计划和团队信息。Microsoft Office 系统的熟悉外观实现了立即轻松开始使用此程序,最大向度降低了浪费的时间和培训成本。
注册码:VT2V8-YXPDP-9PBMW-CVH36-MTMGG
OneNote 2007简体中文官方单独安装版
OneNote 2003(SP3)单独安装版
2009年2月15日星期日
随机显示页首图片(Banner)
1.首先要备份你的模板,这是很重要的。另外你要为你的Blogger制作几张适合你的Blog的图片,并上传到一些图片服务器上。下面的以“Rounder4”这个模板为示例,不同的模板可能不同,因为有一些模板并没有Banner,或者位置不同,请做相应的修改。
2.先来看一下在CSS里定义Header背景的部分。这一部分不同的模板可能不同。
#header {
background:url("http://www.blogblog.com/rounders4/bg_hdr_bot.jpg") no-repeat left bottom;
margin:0 0 0;
padding:0 0 8px;
color:#fff;
}
3.我们要做的就是用脚本重写background url,把下面的代码<body>之后。
<script type="text/javascript">
var banner= new Array()
banner[0]="图片地址1"
banner[1]="图片地址2"
banner[2]="图片地址3"
banner[3]="图片地址4"
banner[4]=“图片地址5”var random=Math.round(4*Math.random());
document.write("<style>");
document.write("#header {");
document.write(' background:url("' + banner[random] + '") no-repeat left TOP;');
document.write(" }");
document.write("</style>");
</script>
4.自定义部分。注意用红色标出的数字,如果你有N张图片,那么红色数字应该为N-1。比如这儿有5张图片,那么值为4。
5.一些补充。Blogger beta中头部CSS中以Header-wrapper来定义其样式,默认它有一个角,所以鱼把Header-wrapper去掉了,这样更和谐一些,如果你的图片比较大,可以用Height属性来定义头部的高度。如鱼用的:
#header{
background: #476 url("http://www.blogblog.com/rounders4/corners_cap_top.gif%22) no-repeat left bottom;
margin:0 0 0;
padding:0 0 8px;
color:#fff;
height:200px; }
最近好像Blogger服务器非常不稳定,经常不容易保存模板。
2009年1月26日星期一
2009年1月18日星期日
下拉菜单形式的标签
找到以下代码:
<b:widget id='Label1' locked='false' title='Labels' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a expr:href='data:label.url'><data:label.name/></a>
</b:if>
(<data:label.count/>)
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>
将红色部分替换成下面的代码:
<br />
<select onchange='location=this.options[this.selectedIndex].value;'>
<option>Select a label</option>
<b:loop values='data:labels' var='label'>
<option expr:value='data:label.url'><data:label.name/>
(<data:label.count/>)
</option>
</b:loop>
</select>
2009年1月17日星期六
首字下沉
这个功能似乎不太常用,而且用起来也比较麻烦。看到有人也用到这个小小的修饰,所以也写在这里。
1.在CSS里定义首字的形式。可以自定义font-size(字体大小),color(颜色),line-height(行高).
.dropcaps { float:left; color: $headerBgColor; font-size:100px; line-height:80px; padding-top:1px; padding-right:5px; }
2.用的时候把第一个字用<span>包围起来,如<span class="dropcaps">示例</span>