[经验] 系统封装常见问题大总结(非官方)

时间:2024-02-22 08:04:45

[经验] 系统封装常见问题大总结(非官方)

玩看 发表于 2013-6-21 20:25:22 

https://www.itsk.com/thread-277947-1-1.html

 哈哈,好久没来天空了,没办法,忙着应付高考,现在有空了,上来论坛瞧瞧,唬唬,原先的 XP系统封装视频教程大放送 居然因为7天内无回复而被锁帖,哎,都怪115网盘,都怪这破电信,上传速度那么慢,不然的话我就重传了。废话不多说,旧的不去新的不来,现在发布一篇新帖,当初因为看到经常有朋友问些低级问题,而这些问题天空又没有一篇较为完善的总结,为此咬咬牙,从论坛上搜集好几百篇帖子汇聚了平常经常问的问题,其中不乏网友的原话,其中有些疏忽我也进行了订正,希望能到大家的支持,大家有好的经验也不妨写下来,以便帮助更多的人。

【1】问~在老的机子上装虚拟机~~封装出来的系统能装新机上吗?
还有我的老机子 是单核的 ~在这种机子上装虚拟机 封装出来的系统能用在双核或者4核的机子上吗?
skyfree:
1、虚拟机硬件和你本机硬件无关联,至多是CPU与你本机的相同
2、理论上将,在任何机器上封装的系统均可部署到任何机器,但为了减少驱动残留、SRS驱动冲突等问题,也是为了方便,绝大多数时候使用的是最小化硬件的虚拟机
3、虚拟机建议使用完整版的VMware


【2】关于封装前安装驱动问题:
      我们大家都知道封装系统前必须卸载驱动,我的问题是比喻显卡、声卡、网卡等,在使用安装版时不一定安装上了驱动(即显卡、声卡、网卡等驱动不上,在设备管理器里出现问号),这时直接进行封装。不为他们安装驱动是否可以(也就是说需要特意把驱动给安装上吗)?

    可以。。封装不需要安装。。
    目的是卸载,并不是安装,所以没有装上的就不要装了。一个人有病才去就医,如果没有病就没有必要特意去感染一些病来医吧。
    不用安装,就算安装了,使用ES封装时也会自动卸载他们(因为封装系统不止是在一台机器上使用,如果不卸载所有驱动而直接封装出来,那么这个系统部署到其他电脑上只有蓝屏),等部署系统时候会自动安装好驱动的。

【3】关于内存不能为read
用YlmF 系统 DIY Y1.6 给XP系统减肥
(1)这个建议不要使用,以前使用过了也出现内存不能为read  现在没使用了一次也没出现过了
(2)用了YMLF1.6的精简工具,后来封装的系统小了,但是用一段后会出现内存不能为READ的现象。
(3)截止目前为止,这个问题算是暂时解决了,最后一次封装的版本,已经测试了10天左右,在7-8台不同配置,不同环境的机器中测试,还没有发现问题。总结如下,ylmf的那个精简工具不能用,迅雷某个版本的不能用,就基本顺利了。
(4)YlmF 系统 DIY Y1.6 给系统减肥会替换system32下的一个DLL 以前我也是这样老出现内存不能为read,不用这个工具就没事 最好不要用

【4】关于DX9C安装问题:
1、问:比喻 Office、WinRAR等都是先安装好再封装系统,为什么DX9C一般是在系统恢复才安装,它与显卡有关吗?
   答:完全没有关系,就是为了节约空间。如果你不在乎封装系统的大小,完全可以在封装前把所有软件全部安装好,也就省去在部署过程中安装一些程序了。
   小结可以封装前安装,部署时安装一般都是为了节省体积

2、问:DX9安装会不会根据不同的显卡进行安装?
   答:DX是微软提供的多媒体编程接口和显卡型号没有关系

3、问:WIN7自带了了directX11,还用另安装directX9吗?这两天正在学封装WIN7,突然发现个问题,就是看到系统自带了directX11,那还用在部署的时候安装directX9么?看网上有的说11包含9了,有的说各是各的,知道的来说说吧
   答:需要安装directX9,D9是D9 ,D11是D11,D11不包含D9,说D11包含D9的是不懂装懂。现在很多大型游戏都要装这个directX9(大部分游戏还是D9的),如果你玩游戏的话那DX9是必须的,所以必须装。

4、DirectX9.0C和VBVC静默版的调用时间
问:DirectX9.0C和VBVC静默版是要封装前安装,部署时调用,还是部署完进系统后调用?如果是部署时调用,那应该是部署前,部署中,还是部署后呢?
答:
一般是在署时调用,目的是为了控制体积
需要控制体积的话,部署时装;不需要控制体积的话,封装前装。
部署中 部署后 都可以,我一般是在部署中注册组件时调用。 

【5】Adobe Flash Player
Adobe Flash Player 静默安装参数是 -install
例子:FlashPlayer.exe -install

【6】关于 封装工具默认参数设置~~ 
问:一直没用过这个功能,就是一个软件调用静默安装,比如ABC.exe 默认参数是/q  那在参数里写/q还是 ABC.EXE /q 
Skyfree回复: /q   

【7】java VM虚拟机
1、问:封装时需要安装JAVA虚拟机吗?母盘没有集成,请问各位 封装时JAVA虚拟机这个东西还需要装吗?怎么感觉装和不装没啥区别。
   答:我认为应该装,因为现在很多网页有JAVA内容,需要这个虚拟机打开。

2、问:MS-JAVA和SUN-JAVA有什么区别?封装应该装哪个?封装的时候应该装哪个软件啊?还是都的装啊?
   答:MSjava N年没更新过了..  Sunjava比MSJAVA强. 使用SUN-JAVA即可。

3、推荐使用sun java vm 而不用ms java vm 的原因:
(1)用原版XPSP3安装,安装微软Java虚拟机(Microsoft Java Virtual Machine) ,在IE8中经常会出现内存错误
(2)我的也是,装了微软的Java后 IE8老是出错,后来装了SUN的Java就没有问题
(3)MS java VM 那个东西不好啊,和ie8.0冲突,当弹出要安装activex时就崩溃,不信原版安装完后更新ie8,去微软网站更新就会出错了
(4)ms java vm 已经很久没更新了! sun java vm 倒是比较常用&常更新!!
(5)MS java VM与IE8明显不兼容,为什么大家还要集成呢?
   前天用实体机封装时发现的,但急于封装,就用了IE7。
   封完了不满意,不过也不急了,用虚拟机准备重封时测试了下,目前看,MS java VM严重与IE8不兼容,同时安装这2个,然后打开MSN官网或在线更新网站都报错,3个全是微软自家的。很是奇怪论坛居然没有醒目提示,反反复复测试了几小时,目前看sun java和IE8暂时不存在问题,不过在HP最著名的灌水D版发贴几十分钟内收到的回复来看,貌似没必要集成java,还是比较少的。我现在偏向不集成java,或再测试sun java的兼容性。

4、请问如果不安装java vm对电脑的使用有什么影响。 看了许多教程,封装系统的时候都把这个加里面了
最佳答案
1,什么是Java虚拟机 
Java虚拟机(JVM)是Java Virtual Machine的缩写,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能模拟来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。 
2,为什么使用Java虚拟机?
Java语言最重要的特点就是可以在任何操作系统中运行。使用Java虚拟机就是为了支持与操作系统无关,在任何系统中都可以运行。 
3,Java虚拟机的基本原理
Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。
        我们上网时,有些网页是用java语言写的,以及一些java程序脚本等等都需要系统中有Java虚拟机时才能打开察看。不过,有些恶意网页有带病毒的java脚本程序,使电脑中毒。但毕竟是少数。如果不装的话可能中的毒就少一些,但这个虚拟机还是很实用的,很多地方都要用到,建议安装

【8】保存输入法
XP的话:控制面板-区域与语言-高级-将所有设置应用与当前用户帐户和默认用户配置文件-将其打勾-应用-确定。
win7的话控制面板—区域和语言—管理—复制设置,然后勾选“欢迎屏幕和系统帐号”和“新建用户帐户”,最后单击“确定”保存设置退出。
(注:由于使用sysprep重新封装系统后,在恢复安装时系统将把输入法的相关设置还原到系统默认状态,封装前新安装的输入法将不在语言栏的列表里显示,需手动再次添加)意思是说,或者比如说:在你装了系统后,我是说的原版的,里面是没有五笔字型输入法的,需要你自己动手去安装;如果你不做这一步的话,系统被你重新封装后再还原,你之前装的“五笔字型输入法”就找不到了。

【9】请问如何彻底删除示例图片?
问:在封装前我是清空了我的文档和共享文档类图片收藏夹里的图片的,为什么封装完后进如系统那些原来的示例图片又出现了?求解答
答:封装完成后,需要到PE下删除公用文件夹下面的示例图片。如果你是在封装前删除的话。那么封装后会自动又生成。封装完成后再删除就没了。

【10】在系统部署安装网络组件时出现 svchost.exe - 应用程序错误  XXX该内存不能为“read”的解决方法
(1) 精简掉“桌面清理向导”造成的
    桌面清理向导,很多人认为这是个无用的功能,很多时候还会打乱我们对桌面布局的排布。在系统精简时很多时候都会将 “桌面清理向导”直接精简掉。但是在系统部署时注册组件时需要这个组件, 没有“桌面清理向导”组件时就会报错。 所以如果系统已经精简掉了“桌面清理向导” ,那么请到完整版的系统中搜索“fldrclnr.dll”并放置于 System32 文件夹下。
(2)优化注册表时我们一般都是彻底关闭DR.WATSON:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
"Auto"="0"
就是它带来内存不能读,其实你把"Auto"="0"改为"Auto"="1"就可以了。
其实这是我们优化注册表的一个重大错误!
不相信吗,试试就知道了。

PS:这个帖子 http://bbs.itiankong.com/thread-280327-1-1.html  里的楼主采用第(2)种方法解决了问题。

【11】关闭系统休眠:
      打开控制面板,双击“电源选项”,选择“休眠”,把“启用休眠”前的勾去掉,然后点“确定”。这时在系统分区C盘根目录下的页面文件hiberfil.sys就会自动删除。
      Windows的休眠功能和系统还原一样,都占用了很大的磁盘空间,休眠功能占用系统分区的大小和物理内存的空间相当。

【12】关于转移虚拟内存页面文件的问题
问  :
新装的系统,默认虚拟内存在C盘的,现把虚拟内存放到D盘上再封装系统,这样有没影响的?
因为虚拟内存放到D盘上可以省出几百M。

答:
(1)设置不设置都无所谓,GHOST 8.3 以上版本在备份时会自动忽略虚拟内存文件!所以不用在意,我一般喜欢设成c盘自动,让系统自己去调整
(2)没影响、转移到D盘是为了便于估算封装的系统的大小
(3)没有影响的  LZ 不用担心  一般没有必要移 放到其他盘还不是要占空间~~
(4)如果使用v8.0以上版本的Ghost进行克隆系统的话,转移虚拟内存页面文件这一项其实可以不做,因为使用v8.0以上版本的Ghost在制作镜像文件时能够自动删除虚拟内存页面文件pagefile.sys。

【13】部署中已经可以识别USB键鼠了吗?还需要加载USB键鼠驱动吗?
问:
xp系统部署中调用万能驱动,为了方便手动选择驱动,需要支持USB键鼠,这个时候在部署前是否还需要加载USB键鼠驱动?
Skyfree:
部署中调用E驱动,部署前无需再加载USB鼠标键盘U盘驱动,USB类设备驱动是最小化安装时自动安装上的。

【14】解决计算机共享要密码才能访问
解决方法:
1、当两台计算机的当前登陆名都是一样的(在你这里看来是administrator了),并且此用户名的密码不一样时,就会出现你这种情况,让你输入密码。
2、要保证登陆时不输入密码,必须要满足以下几点:(1)、开启计算机的 guest 用户,并且此用户不设置密码。(2)、各计算机登陆时的用户名必须不一样(所以我公司在做系统时,每台电脑的用户名都不一样, 一般我是以计算机名的简称为用户名,因计算机名在局域网里是唯一的,所以这样此用户名也会是局域网里唯一的)。(3)、必须开启server服务,不然不能共享。(4)、必须在安装“网络的文件和打印机共享”协议,不然不能共享。

问:你的意思是只要使用guest用户进行访问或者换一个用户名时就不会出现这样的问题了是吗?
回复:不是让你直接使用guest用户进行访问。而是开启guest用户之后,所有只要是不一样的用户名,在登陆对方的计算机时,此用户名都会被认为是guest用户,只要本地guest用户没有设置密码,则就不需要密码就可以访问。

【15】我封装后的系统,为什么每次登录ftp都需要重复输入用户名和密码呢?
       我已经登录了ftp,但是当我选择ftp里的任何一个文件夹时又提示我要输入用户名和密码登录,请高手指点这是什么原因嗯?用别的系统就不会出现这种问题,只需要登录一次就行了,不需要重复输入用户名和密码。
解决方法:
XP的话:文件夹-工具-查看   去掉“在单独进程打开文件夹” 的勾 ,单击确定保存退出即可。
win7的话:文件夹—组织—文件夹和搜索选项—查看     去掉“在单独进程打开文件夹”的勾 ,单击确定保存退出即可。

或者  下面注册表:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"SeparateProcess"=dword:000000006

【16】通过注册表修改注册ID(慎用!!!

在 HKEY_Local_Machine\Software\Microsoft\Windows NT\Current Version下的ProductId,自己随意更改啦!
干脆帮你写一个注册表导入好啦

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"ProductId"="修改自己喜欢的ID啦"

复制上面的东东,另存reg双击导入即可
ps:修改后封装系统的话会导致系统无法激活,因此如果真的要修改ID的话建议在系统部署后首次进桌面才调用注册表修改ID。

【17】如何在做好的gho镜像里,添加注册表信息?
这是一个例子:
使用ghost explorer把“WINXPSP3.GHO”中在“\WINDOWS\system32\config”里的文件“software”,提取出来,在主机电脑里打开注册表,选中项目“HKEY_LOCAL_MACHINE”,单击工具栏的“文件”→“加载配置单元”选中刚才提取来的文件“software”,随便取个名称,比如:liming然后点击“HKEY_LOCAL_MACHINE\liming相应的你想修改的键值修改过来。最后,点中“liming”,单击工具栏的“文件”→“卸载配置单元”,确定后修改完毕在使用ghost explorer替换到回到“WINXPSP3.GHO”中。


【18】WIN7
1封装 WIN7 可以在部署前调用,也可以在部署中调用e驱动。但是根据我的经验,在部署中调用e驱动为好,部署时间很快。而如果在部署前调用e驱动,部署时间很慢,而且CPU使用率还好几次是百分之百。
2、WIN7 安装版整合IE9的参数
WIN7 安装版整合IE9,只要加一些参数就可以
IE9.exe /update-no /passive /norestart  
以上参数
/update-no ——不查找和下载更新。查找和下载更新的时间很长,甚至于下载失败,造成安装失败。
/passive ——自动安装;
/norestart ——不重启动
也可以 /forcerestart ——安装完成后自动重新启动计算机,无需用户选择或操作
3、win 7 快速启动栏保存的一点注意事项
       最近发现加在WIN7快速启动栏里的工具栏老是保存不了,用着用着,不知道什么时候就没有了。经过将近两个月的使用,发现不仅跟语言栏冲突有可能,也有添加方法不正确也会这样。
       我们在添加工具栏到任务栏之前,最好先解除锁定任务栏,再把想要加的程序图标,工具栏等加入任务栏里。最好是重启下,再锁定任务栏。WIN7是一个非常完整的,也是非常呆板的系统,如果我们的操作有不正规,违反操作步骤的情况,可能会出现一些意想不到的问题。比如在锁定的任务栏里,再添加工具栏,就会经常加不入注册表里,或者经常恢复还原回来。
4、WIN7系统里用户配置比较重要的几个文件夹 
C:\Users\Public\Desktop                             
公用桌面,桌面图标最好都放在公用桌面里
C:\Users\Default\Desktop                                     
默认桌面
C:\Users\Default\AppData                         
这个文件夹比较重要,一般软件把用户的配置文件都放在这里的
C:\Users\Default\AppData\Roaming                 
漫游文件夹,这个名字取得真好,里面的配置都是可以在多个用户之间漫游的,对里面的数据进行修改,都会应用到所有新建的用户(系统装部署后新建的Administrator用户也得到应用),效果就像360浏览器的网络漫游收藏夹,呵呵
C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu             
默认新建用户的开始菜单
C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs                 
开始菜单里的程序栏
C:\Users\Default\AppData\Roaming\Microsoft\Windows\SendTo                  
发送到菜单
C:\Users\Default\AppData\Roaming\Microsoft\Windows\Themes                 
桌面壁纸缓存,只要用Administrator下面的文件替换掉这个文件夹,包括里面的slideshow文件,就可以实现个性化桌面的保留,包括主题跟桌面壁纸的选择
C:\Users\Default\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu              
开始菜单,就是开始菜单最顶上的菜单,一般都是放IE,outlook什么的
C:\Users\Default\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar           
任务栏
C:\Users\Default\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch                    
快速启动栏
5、如果把我的文档,收藏夹,桌面移动到D盘,系统部署好了之后,会还原这些文件回C:\Users\Administrator,但是系统注册表里我的文档,收藏夹,桌面的路径指向还是在D盘的,可以在ES3/4设置删除目录任务,首次进入桌面依次删除如下文件夹:
C:\Users\Administrator\Contacts
C:\Users\Administrator\Desktop
C:\Users\Administrator\Links
C:\Users\Administrator\Downloads
C:\Users\Administrator\Music
C:\Users\Administrator\Pictures
C:\Users\Administrator\Saved Games
C:\Users\Administrator\Searches
C:\Users\Administrator\Videos
C:\Users\Administrator\Favorites


【19】*/解除*IE浏览器

Windows Registry Editor Version 5.00
;*IE浏览器
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel]
"HomePage"=dword:00000001
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions]
"NoBrowserOptions"=dword:00000001
----------------------------------------------------------------------------------------------------
Windows Registry Editor Version 5.00
;解除*IE浏览器
[-HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel]
[-HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions]


【20】Easy Sysprep加入还原桌面图标顺序的功能(附AU3源码)
       封装前,桌面有许多应用程序的快捷方式图标,我们按照一定的类型进行排序(如网络浏览类的浏览器、QQ、迅雷等;影音娱乐类的千千静听、PPS影音、QQ影音、酷狗音乐...等),便捷日常操作和使用习惯。
       封装后,这些快捷方式排序会发生变化,还需要我们手动进行调整,是否可以让Easy Sysprep封装后自动记忆桌面图标位置然后在部署完成后自行还原呢?!于是便有了这样的想法。

附:AU3源码

#NoTrayIcon 
#AutoIt3Wrapper_icon=D:\autoit3\Aut2Exe\Icons\FOLDER.ico 
;~ #AutoIt3Wrapper_Compression=4 
#AutoIt3Wrapper_UseAnsi=y 
#AutoIt3Wrapper_Res_Comment=2008-04-19, 23:31 
#AutoIt3Wrapper_Res_Description=桌面图标同步程序 
#AutoIt3Wrapper_Res_Fileversion=1.0.0.1 
#AutoIt3Wrapper_Res_LegalCopyright=Amu 

#include <GuiListView.au3> 
Opt("MustDeclareVars", 1) 
Global $hWndManager = WinGetHandle("Program Manager") 
Global $hWndDesktop = ControlGetHandle("Program Manager","",1) 
If Not IsDeclared("GWL_STYLE") Then Global Const $GWL_STYLE = -16 
Global $LVS_Style = _WinAPI_GetWindowLong($hWndDesktop, $GWL_STYLE) 
Global $inifile, $iSet, $iRefresh, $SNAPTOGRID 

If $CmdLine[0] Then 
     For $i = 1 To $CmdLine[0] 
         Select 
             Case StringRegExp($CmdLine[$i], \'^[/-](?i)load[=:].+$|^[/-](?i)l[=:].+$\') And Not $inifile         
                 $iSet = 1 
                 $inifile = StringRegExpReplace($CmdLine[$i], \'^[/-](?i)load[=:]?|^[/-](?i)l[=:]?\', "") 
                 
             Case StringRegExp($CmdLine[$i], \'^[/-](?i)save[=:].+$|^[/-](?i)s[=:].+$\') And Not $inifile 
                 $iSet = 0 
                 $inifile = StringRegExpReplace($CmdLine[$i], \'^[/-](?i)save[=:]?|^[/-](?i)s[=:]?\', "") 
                 
             Case StringRegExp($CmdLine[$i], \'^[/-](?i)SnapToGrid[=:]\d+$|^[/-](?i)g[=:]\d+$\') And $inifile         
                 $SNAPTOGRID = Number (StringRegExpReplace($CmdLine[$i], \'^[/-](?i)SnapToGrid[=:]?|^[/-](?i)g[=:]?\', "") ) 
                 
             Case StringRegExp($CmdLine[$i], \'^[/-](?i)Refresh$|^[/-](?i)r$\') 
                 $iRefresh = 1 
                 
             Case StringRegExp($CmdLine[$i], \'^[/-](?i)Help$|^[/-](?i)[?h]$\') 
                 MsgBox(64,"参数帮助!","AutoIcon.exe [</load|/save>=<file>] [/G=<0|1>] [/R]" & @CRLF & "" & @CRLF & _ 
                     "/load=file 要加载的配置文件。" & @CRLF & "/save=file 要保存的配置文件。" & @CRLF & _ 
                         "/G=<0|1>   为“0”取消图标对齐到网格,为“1”图标对齐到网格,默认不作更改。" & @CRLF & "/R         相当于桌面右键“刷新”") 
                 Exit 
             Case Not $inifile 
                 $inifile = $CmdLine[$i] 
                 If FileExists($inifile) Then $iSet = 1 
         EndSelect     
     Next 
Else 
         $inifile = @ScriptDir &"\icoSpace.ini"
         If FileExists ($inifile) Then
                $iSet = 1 
        Else
                $iSet = 0 
        EndIf
EndIf 

If $iSet Then 
     If $SNAPTOGRID Then $SNAPTOGRID = $LVS_EX_SNAPTOGRID 
     If IsNumber ($SNAPTOGRID) Then _SendMessage($hWndDesktop, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_SNAPTOGRID, $SNAPTOGRID) 
     If BitAND($LVS_Style, $LVS_AUTOARRANGE) Then _WinAPI_SetWindowLong($hWndDesktop, $GWL_STYLE, $LVS_Style - $LVS_AUTOARRANGE );取消自动排列 
     
     If $iRefresh Then DllCall("shell32.dll", "none", "SHChangeNotify", "long", 0x8000000, "int", 0, "ptr", 0, "ptr", 0);刷新图标 
     _SaveAndLoadIconPos($inifile, 1) 
     ;Run("RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters");刷新桌面(通过复制文件的方式替换壁纸文件适用) 
Else 
     _SaveAndLoadIconPos($inifile) 
EndIf 

Func _SaveAndLoadIconPos($iFile, $iLoad = 0) 
     Local $iCount, $iIndex, $sName, $xy     
     If Not IsHWnd($hWndManager) Then $hWndManager = WinGetHandle("Program Manager") 
     If Not IsHWnd($hWndDesktop) Then $hWndDesktop = ControlGetHandle("Program Manager","",1) 
     $iCount = ControlListView($hWndManager, "", $hWndDesktop, "GetItemCount") 
     If @error Then 
         SetError(1) 
         Return 0 
     EndIf 
     If Not $iLoad And FileExists($iFile) Then IniDelete($iFile, "图标位置") 
     For $iIndex = 0 to $iCount - 1 
         $sName = ControlListView($hWndManager, "", $hWndDesktop,"GetText", $iIndex) 
         If $iLoad Then 
             $xy = StringSplit (IniRead ($iFile, "图标位置", $sName, ""), ",") 
             If $xy[0] = 2 Then _ 
             _SendMessage($hWndDesktop, $LVM_SETITEMPOSITION, $iIndex, BitOR(BitShift($xy[2], -16), BitAND($xy[1], 0xffff) ) ) 
         Else;保存图标信息 
             $xy = _GUICtrlListView_GetItemPosition($hWndDesktop, $iIndex) 
             IniWrite($iFile, "图标位置", $sName, $xy[0] & "," & $xy[1] ) 
         EndIf     
     Next 
     Return 1 
EndFunc


1、第一次运行,会自动按图标生成配置文件“icoSpace.ini",第二次运行,如果检测到有”icoSpace.ini"文件存在,则自动还原桌面图标位置
2、运行程序加参数:xxx.exe /load=icoSpace.ini 会自动读取icoSpace.ini还原桌面图标位置,如果ini文件不存在,则自动创建icoSpace.ini
  运行程序加参数:xxx.exe /save=icoSpace.ini 生成图标位置配置文件icoSpace.ini




----------------------------------------------------------------分割线----------------7月1日--------------------------------------------------------------
                                                                          一些常见的优化误区

前言:
       常常能看到一些 “绝招”在网络上多次转载。然而,一些错误的“绝招”也同样在多个地方多次出现,不但许多初学者照着做,许多老鸟也用这些招数来教别人,甚至一些系统“优化”软件也采用了这些错误的“绝招”。究其原因,归根结底是由于学习这些“招数”的人并没有搞清这些招数的内在原理就照葫芦画瓢,只学动作,不学内功,才导致以讹传讹,一错再错。
       以下列举几条常见的、多次重复刊登的错误“绝招”,简要介绍它的原理并指出其错误之处,然后给出正确的设置方法。通过这几个例子,希望能引起大家的重视,遇到别人给出的“绝招”时能自己再动动脑筋思考思考,知其然更要知其所以然,避免“走火入魔”。 

(1)自动释放不用的 Dll (即不加载多余的DLL文件)

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
"AlwaysUnloadDLL"=dword:00000001

       很多优化软件都有关于该项功能的优化,即在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer下增加“AlwaysUnloadDLL”为\'1\'的键值。     
       这是一个经常用的优化技巧,但经过查证和测试,证明该选项对于Windows 2000以后的操作系统无效。
       首先,Microsoft仅在一处官方文档有以下说明:“For operating systems Prior To Windows 2000, you can shorten the inactive period by adding the following information to the registry. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer AlwaysUnloadDLL”。从Microsoft的官方文档我们可以得知该选项仅对Windows2000以前的系统有效。 
       其次,通过分析Windows2000/XP/2003以后操作系统的内存管理模式验证了该选项无效,简述如下:Windows2000/XP/2003采用了一种较以前Windows 9x更为复杂而有效的手段来管理内存,从而实现了动态链接库加载与卸载的智能化管理。
       例如:当用户关闭了需调用动态链接库B的应用程序A时,Windows并不会立即释放动态链接库B,因此当用户再次启动应用程序A时将获得较第一次更快的启动速度。那么Windows何时释放该动态链接库呢?答案是当其它应用程序向Windows申请内存空间时,若Windows无法在现有空闲空间分配足够的内存给该请求,就会自动释放这类已未被引用的动态链接库(Dll)了。
       而且对于日常办公的朋友来说,经常打开一些 OFFICE 程序、看图程序等,如果每次退出程序都清理 DLL 文件的话,重新运行该程序则会比不优化多花上太多的时间。
       综上,Windows2000/XP/2003/Vista后内存管理已经非常有效了,我们不应该再主动去设置是否强制卸载暂时尚未使用的动态链接库,即便该选项是有效的,也只会降低系统的整体性能。

(2)加快显示速度
◆加快窗口显示速度
    打开注册表编辑器,找到HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics,右边窗口找到MinAniMate键值,把它改为0。
◆加快开始菜单的显示
    打开注册表编辑器,找"HKEY_CURRENT_USER\Control Panel\Desktop\MenuShowDelay"主键,适当调小该键值,最低可设为“0”。如果此方法无效,请从“控制面板”-“显示属性”-“显示效果”-“高级”,将"show menu shadow"项的选择取消,便可加快开始菜单的显示。
       这两点优化,呵呵,其实算不上是优化,因为它并没有给系统带来任何的性能上的提升,所改变的只是菜单的显示延时没了,换句话说,只是改变了显示效果而已。看个人习惯的,我喜欢看到菜单慢慢出来再慢慢消失的过程,一般设置为 100。

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、

哎 帖子太长了,被限制字数了,都怪当初没有占楼编辑。   对于接下来的部分大家请看“回帖推荐”!

不好意思哦,搞了隐藏回复,没办法了,不这样做的话这篇帖子不仅很快就沉了下去,而且还会被锁帖,为了不想让悲剧重演,只好麻烦大家了。各位走过路过如果觉得这篇帖子有用的话就帮忙顶下帖,以便迅速解决新手的问题,当然这些还不够,以后如果有空的话我会继续更新的。

呵呵 多谢S大了   帮我设置高亮和置顶操作  谨遵S大建议,取消回复可见及相关内容。
PS:有问题的话欢迎大家指出以便我进行修改

本帖最后由 玩看 于 2013-11-6 21:21 编辑

---------------------------------------------------------------------------7月1日更新-----------------------------------------------------------------------

         一些常见的优化误区


前言:
       常常能看到一些 “绝招”在网络上多次转载。然而,一些错误的“绝招”也同样在多个地方多次出现,不但许多初学者照着做,许多老鸟也用这些招数来教别人,甚至一些系统“优化”软件也采用了这些错误的“绝招”。究其原因,归根结底是由于学习这些“招数”的人并没有搞清这些招数的内在原理就照葫芦画瓢,只学动作,不学内功,才导致以讹传讹,一错再错。
       以下列举几条常见的、多次重复刊登的错误“绝招”,简要介绍它的原理并指出其错误之处,然后给出正确的设置方法。通过这几个例子,希望能引起大家的重视,遇到别人给出的“绝招”时能自己再动动脑筋思考思考,知其然更要知其所以然,避免“走火入魔”。 

(1)自动释放不用的 Dll (即不加载多余的DLL文件)

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
"AlwaysUnloadDLL"=dword:00000001

       很多优化软件都有关于该项功能的优化,即在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer下增加“AlwaysUnloadDLL”为\'1\'的键值。     
       这是一个经常用的优化技巧,但经过查证和测试,证明该选项对于Windows 2000以后的操作系统无效。
       首先,Microsoft仅在一处官方文档有以下说明:“For operating systems Prior To Windows 2000, you can shorten the inactive period by adding the following information to the registry. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer AlwaysUnloadDLL”。从Microsoft的官方文档我们可以得知该选项仅对Windows2000以前的系统有效。 
       其次,通过分析Windows2000/XP/2003以后操作系统的内存管理模式验证了该选项无效,简述如下:Windows2000/XP/2003采用了一种较以前Windows 9x更为复杂而有效的手段来管理内存,从而实现了动态链接库加载与卸载的智能化管理。
       例如:当用户关闭了需调用动态链接库B的应用程序A时,Windows并不会立即释放动态链接库B,因此当用户再次启动应用程序A时将获得较第一次更快的启动速度。那么Windows何时释放该动态链接库呢?答案是当其它应用程序向Windows申请内存空间时,若Windows无法在现有空闲空间分配足够的内存给该请求,就会自动释放这类已未被引用的动态链接库(Dll)了。
       而且对于日常办公的朋友来说,经常打开一些 OFFICE 程序、看图程序等,如果每次退出程序都清理 DLL 文件的话,重新运行该程序则会比不优化多花上太多的时间。
       综上,Windows2000/XP/2003/Vista后内存管理已经非常有效了,我们不应该再主动去设置是否强制卸载暂时尚未使用的动态链接库,即便该选项是有效的,也只会降低系统的整体性能。

(2)加快显示速度
◆加快窗口显示速度
    打开注册表编辑器,找到HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics,右边窗口找到MinAniMate键值,把它改为0。
◆加快开始菜单的显示
    打开注册表编辑器,找"HKEY_CURRENT_USER\Control Panel\Desktop\MenuShowDelay"主键,适当调小该键值,最低可设为“0”。如果此方法无效,请从“控制面板”-“显示属性”-“显示效果”-“高级”,将"show menu shadow"项的选择取消,便可加快开始菜单的显示。
       这两点优化,呵呵,其实算不上是优化,因为它并没有给系统带来任何的性能上的提升,所改变的只是菜单的显示延时没了,换句话说,只是改变了显示效果而已。看个人习惯的,我喜欢看到菜单慢慢出来再慢慢消失的过程,一般设置为 100。

(3)禁用闲置的IDE通道可以提速   
       不错,说得很有道理,这一条技巧是很实用的,确实可以加速系统的启动。但不是万用的,大家有条件找不同时期配置的几台机器验证就很容易知道,尤其对于像ICH5/6 南桥芯片这是很好的提速办法。(至于像VIA的8327或者nForce芯片组的南桥限于条件本人尚未亲自验证)因为他们支持SATA和RAID的缘故。会在启动时花费更多时间检测,所以利用这个方法可以达到很好的效果。 但是对于像2001年前的ICH2/3 南桥大多数的情况下效果是很有限的。 
  正确的做法应该是在BIOS中把闲置的IDE通道有默认的“AUTO”改为:“NONE”,然后进入系统在“设备管理器”中在此设置为“无”,确定保存即可。 

(4)打开Qos数据闲置的带宽提高网速

 

  在各种的Windows XP优化文章中有一篇关于QoS的文章可谓是历史悠久,从Windows XP刚开始发布时就开始流传,一直到现在还出现在频频出现在各种Windows XP的优化文章中,就连win7/8也不放过,被许多人大量转载。去掉QoS20%网速真的会快吗??? 

 

1.错误的解决方法描述  

 

  运行"Gpedit.msc"命令打开Windows XP组策略管理窗口,依次定位到"计算机配置→管理模板→网络→QoS数据包调度程序"一项,双击"限制可保留带宽",选中"已启用"按钮,并将其值设置为"0%" 就可以让带宽得用率达到最高。  

 

2.方案由来及后果   

 

  这个网络优化技巧纯粹是"独撰"的。QoS(联网服务质量),是指在整个网络连接上应用的各种通信或程序类型优先技术。微软的专家指出:"Windows 2000一样,在 Windows XP 中,程序也可以通过QoS应用程序编程接口 (API)来利用QoS。所有程序可以共享百分之百的网络带宽,特别要求带宽优先权的程序除外。其他程序也可以使用这种"保留"的带宽,正在发送数据的请求程序除外。默认情况下,程序保留的带宽累计可达终端计算机每个接口的基本链接速度的百分之二十。如果保留带宽的程序发送的数据量没有完全用完带宽,保留带宽的未用部分可用于同一主机上的其他数据流。"微软的KB316666中明确表示许多发表的技术文章和新闻组文章多次提到 Windows XP 通常为QoS 保留百分之二十的可用带宽的说法是错误的。也就是说,如果我们不需手动禁用这部分保留带宽,系统会自动分配剩余的带宽给相应的程序访问网络。所以这个所谓的优化技巧可以说是一个误导。  

 

3.正确的解决办法   

 

  其实网络速度的快慢主要还是由ISP提供的带宽决定的,很多软件打着"让你的网速倍增"的旗号,大可不必相信。



(5)虚拟内存这么设最"科学"!       

 

1.错误的解决方法描述  

 

  (1)"我的电脑""属性"窗口,切换到"高级→性能→虚拟内存"窗口,将虚拟内存的初始值和最大值设置为同一值可以减少磁盘碎片,提高系统运行效率。

 

  (2)分别在硬盘的每个分区上都设置一部分虚拟内存,可以提高系统的性能。  

 

2.方案由来及后果  

 

  Windows采用动态的方法对虚拟内存进行管理,也就是说当在执行耗费内存比较大的程序(如PhotoshopMS Office等)时,系统会自动扩大虚拟内存的页面文件的体积,以获得更多的可用资源,反之,如果物理内存还有较多的空闲空间,系统则会自动缩小页面文件的体积。这就是我们在察看系统中的pageflie.sysWindows 2000/XP)文件时,该文件有时候大有时候小的原因所在。   

 

  理论上来讲,如果将虚拟内存的初始值和最大值设置为同一值,这样可以让磁头连续读取,不容易出现磁盘碎片,从而提高系统的运行效率。但在实际使用的过程中,我们会发现,当我们读取某个大文件的时候,常常遇到"内存溢出"错误,系统反而运行不稳定。   

 

  而对于所谓"将硬盘的每个分区都设置虚拟内存"的处理办法,由于各个分区上文件分布的不确定性,导致磁盘碎片的不可避免,虽然Windows会优先选择使用不常进行文件读写操作的分区中的页面文件,不过这样会加重系统内存管理的负担,尽管算不上很多的谬误,但至少不是最好的方案。


  小知识:  

 

  所谓"虚拟内存",通俗的讲,就是当我们的物理内存不够用的时候,系统将硬盘上的部分空间模拟成内存使用,将暂时不用的程序或数据存放到这部分空间中,等需要的时候方便及时调用。虚拟内存在Windows XP/win7 中对应的数据临时存放文件为Pagefile.sys(我们称为页面文件)。页面文件保存在硬盘分区的根目录中,文件属性为"隐藏",我们需要在"文件夹选项"中选中"显示所有文件"才能看到它。

 

  小提示:  

 

    允许设置的虚拟内存最小值为2MB,最大值不能超过当前硬盘的剩余空间值,同时也不能超过32位操作系统的内存寻址范围——4GB。     

 

       很不推荐这样做。我们知道,虚拟内存是程序执行时,硬盘与内存之间的桥梁。虚拟内存交换文件的读写执行效率将极大地影响系统的性能。如果稍微懂一点点硬盘的常识,我们就会知道,硬盘最外圈的数据读写性能最好。而将虚拟内存设置到 盘(一般情况下,盘位于硬盘最外边的),对提高系统的数据读写速度是有很大帮助的。但是,我们又如何避免这个虚拟内存文件本身出现较多的碎片而成了系统性能提高的绊脚石呢?很简单,可以先将虚拟内存设置到 盘以外的其他分区,然后重启计算机,将 盘整理磁盘碎片,再将虚拟内存设置到 盘。



(6)IE这样操作就"安全"了!     

 

1.错误的解决方法描述  

 

  在使用IE浏览网页后,为了防止本地的用户窃取我们的隐私信息,只需做以下操作即可:在IE中运行"工具→Internet 选项"打开"Internet属性"窗口,在其中清除掉IE的脱机文件、历史记录、Cookies,清除表单,再重新启动电脑。   

 

2.方案由来及后果 

 

  也许你会认为上面的隐私保护方案完美无缺。其实不然,你的浏览记录还乖乖的躺在电脑里呢!问题就出在一个名为index.dat的文件上!这个index.dat(该文件为属性为隐藏)在你的Temporary Internet FileshistoryCookies文件夹里都存在,文件大小从几十KB到几十MB不等,它记录了你所访问过的网址URL、访问时间,并将其指向浏览器缓存文件夹的几个子文件夹,以提高IE的浏览速度。我们在IE中执行"删除脱机文件""清除历史记录""清除表单"命令时,系统中的index.dat文件并不会被删除,而且比较恼火的是当我们试图删除它的时候,系统会提示该文件正在使用,不能执行删除操作。其安全隐患在于,一些有不明目的的偷窥者可以通过特殊的工具查看它包含的内容进而得知我们的浏览记录。


(7)修改默认安装路径  

 

        由于系统空间比较宝贵,很多朋友将软件安装在其它分区,但每次安装软件时提示的默认安装路径都是C:\Program Files,我们可以打开注册表,定位到"[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]",将右边窗口中的ProgramFilesDir 字符串值修改为我们想要的路径。  

 

  点评:这样设置确实让我们方便不少。但它带来很多弊端,比如打开Outlook Express时,会报告C盘磁盘已满或者内存不足的错误,并提示"MSOE.dll无法初始化",另外还可以引起Media Player等系统程序的运行故障。


(8)去掉快捷方式左下角的箭头

 

        众所周知,快捷方式左下脚有一个小箭头。许多朋友很讨厌那个东西,千方百计要将它去掉,于是,有的高手们便琢磨出了一条招数,并广为传播,一时间,地球人都知道了。

 

       错误招数:使用注册表编辑器,删去“HKEY_CLASSES_ROOT\lnkfile\IsShortcut”和“HKEY_CLASSES_ROOT\piffile\IsShortcut”,并重新启动计算机。

 

       原理: IsShortcut 键值的意思是,表明这种文件为快捷方式。当Windows在注册表中发现lnkfile、piffile主键下存在IsShortcut键值,便会在原有图标上再合成一个箭头图标。删去那两个键值后,Windows不认为它是快捷方式,箭头自然就消失了。

 

       错误:虽然这样处理后,箭头没有了,可是,Windows也不承认它是快捷方式了。可以做一个实验:找一张BMP图片,创建快捷方式,然后在“画图”中点“文件→打开”,选择那个快捷方式。如果没有删除“IsShortcut”键值,“画图”能正确打开它指向的图片文件。如果删了的话,“画图”将直接打开lnk文件本身,于是会提示说“无法识别文件格式”。同理,如果你删了“IsShortcut”,在给朋友发邮件的时候又直接从桌面快捷方式中选择文件,朋友将得不到真正的文件,而是一堆毫无用处的快捷方式(没准儿你还会奇怪怎么发送速度这么快呢)。

 

       正确招数:准备一张全透明的图标,可以用一张全黑的BMP图片代替。修改注册表,在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\

 

CurrentVersion\explorer\Shell Icons”下增加字符键值“29”,内容为图标完整路径后加“,0”。修改完毕后刷新系统图标缓存即可。

 

       原理:在合成快捷方式图标的时候,Windows先到注册表中上述位置查找名为“29”的字符串键值,然后在原有图标上覆盖那个键值指定的图片。如果找不到那个键值的话,则使用默认值“C:\Windows\System\Shell32.dll,29”,那就是讨厌的箭头的来历。由于新招数完全使用正当途径实现去掉箭头,因此不会出现任何兼容性问题。



(9)关于系统预读的设置

 

        关闭预读或删除预读文件不好!很多伪技巧中说XPWin7可以通过修改注册表达到减少滚动条次数,从而提升加速开机速度,一些软件甚至还把预读文件删除来释放硬盘空间....这实际上是一个著名的伪优化技巧。

 

这个伪技巧是这么说的:

 

第一步、打开注册表编辑器regedit

 

第二步、依次打开SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

 

第三步、把EnablePreretcher改为0,如果是Win7,还要把EnableSuperfetch改为0


       根据测试,这确实能一定程度提高系统的启动速度,那是为什么是伪技巧呢?

 

       其实里面的EnablePrefetcher就是系统文件预读设置,默认是3代表系统将预读Windows系统文件和应用程序。所有系统预读文件都存放在C:\Windows\prefetch文件夹内,扩展名为pf,包含了载入文件的详细信息和载入顺序,每个应用程序都会在Prefetch目录中留下相应的预读取文件,预读取文件描述了应用程序或系统启动时各个模块的装载顺序。

 

设置为"1",系统将只预读应用程序;

 

设置为"2",系统将只预读Windows系统文件;

 

设置为"3",系统将预读Windows系统文件和应用程序(默认值)

 

而伪技巧中改为0代表完全不预读,即为取消预读功能!


       不预读Windows系统文件、应用程序将是什么情况?

 

       禁用了预读文件实际上仅仅在滚动条处跑的快点,对进入系统后是百害而无一利!

 

不预读导致登录桌面时软件启动明显变慢,启动声音变卡、启动声音听完后34秒才进入桌面等等一大堆负面问题,知道为什么吗?

 

Windows定期会自动进行预读优化,如果清空了预读文件,或者关闭预读功能,那系统就必须为所有运行的程序重新建立预读文件,创建文件的过程反而会增加系统负担,降低启动速度!这就是预读和不预读的区别,不预读,开机是能快个几秒,但是进入系统后所有程序都会启动很慢,而进行预读则正好相反,说白了,就像做一件事,等人催着做和自己自觉提前做一样。

 

看下我们自己做的试验:

 

   机器配置:Intel865GL P4 3.0GHZ DDRII 1G 9550GT 新装XP Pro系统

 

   设为1开机:开机滚动7圈半左右缓缓转入系统登录。

 

   设为2重启,6圈半左右缓缓转入系统登录。

 

   设为3重启,3圈半左右即使进入系统登录,进如桌面反应及时,迅时响应鼠标点击。

 

   设为4重启,2圈左右,启动声音2秒后才进入桌面,鼠标处于繁忙状态数十秒,不能立即运行程序和上网。

 

   设为5重启,滚动次数少,同上面改为4的效果差不多,进如桌面反应慢,不能立即运行程序和上网。

 

   设为0重启,4圈左右,启动声音听完后12秒才进入桌面,鼠标会处于繁忙状态一会,不能立即运行程序和上网。

 

       从上面的试验,大家看出了什么?

 

       一般我们将该值默认设置为"3"即可,当然,如果你的计算机属于高档配置,可尝试将数值资料更改为“4”或“5”,这样可以加快系统运行速度,为什么呢,因为是我们要找到“滚动一闪而过”、“快速进入桌面”2者之间的均衡点,不可能两全其美,优化来优化去发现还是微软默认值3最科学,启动总时间、进入桌面时间都比较均衡,我们拥护职能说根据自己的机器配置选择适合自己需要的,但绝对不是取消预读功能。 WindowsXPWin7的启动过程其实就是载入内存的过程,因为操作系统内核比较大,自然要耗费一定的时间(运行3DmaxPS的过程你没见过?),这个总时间相对每个机器来说是一定的,预读(即开机滚动次数)少了,进桌面就要慢,你是习惯看滚动一闪而过呢,还是喜欢进入桌面后立即可以投入操作使用呢?不可能两全其美,我们就是要找到一个均衡点。至于修改成其他,治标不治本!就为了进入欢迎界面那里5秒快点,而丢开电脑跑马拉松的整体性能?清空prefetch内的预读文件、关闭系统预读功能,能真正加速启动?荒谬的理论!荒谬至极,不信?自己试下!

 

       因此,建议用户不要修改操作系统的启动预读方式。
小结
      由于SuperFetch是为机械盘优化的,对于传统的机械硬盘不推荐关闭预读。不过对于固态硬盘就另当别论了,对于SSD建议关闭预读,限于帖子长度,具体细节请自行百度。——在这里感谢357楼 silveryc 指出。 


结 语

 

        通过上面这几个例子,希望大家再看到“绝招”的时候,能够自己也动一动脑筋,想一想来龙去脉,避免被一些不成熟的招数害了。