找回密码
 加入
搜索
查看: 54429|回复: 128

[原创] Window 7 的封装研究

[复制链接]
发表于 2009-11-19 12:07:12 | 显示全部楼层 |阅读模式
购买主题 已有 70 人购买  本主题需向作者支付 50 块金钱 才能浏览
 楼主| 发表于 2009-11-19 12:21:11 | 显示全部楼层
其实封装是简单的事情,问题出现在封装的系统小问题很多.
到时想起来再慢慢发布.
1.封装好的系统无桌面壁纸(黑色)
问题:default默认没有HKEY_CURRENT_USER\Control Panel\Desktop下的Wallpaper.但是封装时却有了(指向封装系统的当前用户).造成封装后的系统壁纸指向错误(+权限错误).
解决:封装前删除HKEY_CURRENT_USER\Control Panel\Desktop下的Wallpaper

2.IE8首次运行会出现向导,即时封装前已经关闭向导.
解决:封装好的系统在第一次进入桌面时运行.
Func _IE8NoFirst()
        RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main','IE8RunOnceLastShown_TIMESTAMP',"REG_BINARY",0x0)
        RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main','IE8RunOnceCompletionTime',"REG_BINARY",0x0)
        RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main','IE8RunOnceLastShown',"REG_DWORD",0x1)
        RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main','IE8RunOncePerInstallCompleted',"REG_DWORD",0x0)
        RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main','IE8TourShown',"REG_DWORD",0x1)
        RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main','IE8TourShownTime',"REG_BINARY",0x0)
EndFunc
3.输入法信息丢失问题.
解决:
封装时:
Func _BackupInputMethod()
        RunWait('reg.exe export "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts" HKLMKBD.KEY /Y',@SystemDir,@SW_HIDE)        
        RunWait('reg.exe export "HKCU\Keyboard Layout" HKCUKBDLAY.KEY /Y',@SystemDir,@SW_HIDE)
        RunWait('reg.exe export "HKCU\Software\Microsoft\CTF" HKCUKBDCTF.KEY /Y',@SystemDir,@SW_HIDE)
EndFunc
进入系统时:
        If FileExists(@SystemDir & '\HKLMKBD.KEY') Then
                RunWait('reg.exe import HKLMKBD.KEY',@SystemDir,@SW_HIDE)
                RunWait('reg.exe import HKCUKBDLAY.KEY',@SystemDir,@SW_HIDE)
                RunWait('reg.exe import HKCUKBDCTF.KEY',@SystemDir,@SW_HIDE)
        EndIf
4.添加项目到任务栏和开始菜单锁定项目的问题.
解决:
目前网上没有好的解决方案...
我目前使用的:
Func _FileVerb($sz_Dir,$sz_File,$Verb)
        Local $objShell = ObjCreate("Shell.Application") 
        Local $objFolder = $objShell.NameSpace($sz_Dir & "")
        If Not IsObj($objFolder) Then Return -1
        Local $objFolderItem = $objFolder.ParseName($sz_File)
        If Not IsObj($objFolderItem) Then Return -2
        Local $colVerbs = $objFolderItem.Verbs
        If Not IsObj($colVerbs) Then Return -3
        For $objVerb in $colVerbs 
                ;If StringReplace($objVerb.name, "&", "") = "锁定到任务栏(K)" Then 
                ;If StringReplace($objVerb.name, "&", "") = "附到「开始」菜单(U)" Then 
                                                                                                        ;'从任务栏脱离(&K)'
                If StringInStr($objVerb.name,$Verb) Then 
                        $objVerb.DoIt
                EndIf
        Next
        Return 1
EndFunc
5.封装前简单的垃圾清理
解决:
Func _CleanJunk()
        RunWait('cmd.exe /c del /f /a /s /q "'& @UserProfileDir & '\AppData\Local\Microsoft\Windows\History\*.*"',@UserProfileDir,@SW_HIDE)
        RunWait('cmd.exe /c del /f /a /s /q "'& @UserProfileDir & '\AppData\Local\Microsoft\Windows\Temporary Internet Files\*.*"',@UserProfileDir,@SW_HIDE)
        RunWait('cmd.exe /c del /f /a /s /q "'& @UserProfileDir & '\AppData\Local\Temp\*.*"',@UserProfileDir,@SW_HIDE)
;        RunWait('cmd.exe /c del /f /a /s /q "'& @UserProfileDir & '\AppData\LocalLow\Microsoft\CryptnetUrlCache\*.*"',@UserProfileDir,@SW_HIDE)
        RunWait('cmd.exe /c del /f /a /s /q "'& @UserProfileDir & '\AppData\Roaming\Microsoft\Windows\Cookies\*.*"',@UserProfileDir,@SW_HIDE)
        RunWait('cmd.exe /c del /f /a /s /q "'& @UserProfileDir & '\AppData\Roaming\Microsoft\Windows\Recent\*.*"',@UserProfileDir,@SW_HIDE)
;        RunWait('cmd.exe /c del /f /a /s /q "'& @WindowsDir & '\*.log"',@WindowsDir,@SW_HIDE)
        RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit")
        RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client")
        RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32")
        RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs")
        RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU")
;FTP账号密码...
        RegDelete("HKEY_CURRENT_USER\Software\Microsoft\FTP")
;输入的路径与URL
        RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths")
;兼容设置
        RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted")
;        RegDelete("HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell")
EndFunc
6.免疫MRT(KB890830)问题
解决:
Func _FakeMRT()
;免疫MRT补丁KB890830 
        FileCopy(@SystemDir & "\notepad.exe",@SystemDir & "\mrt.exe",1)
EndFunc

评分

参与人数 1威望 +10 金钱 +130 贡献 +59 收起 理由
kn007 + 10 + 130 + 59 不错,学习下 !一直想自己定制个精简xp,老 ...

查看全部评分

 楼主| 发表于 2009-11-19 12:42:02 | 显示全部楼层
占个楼好了
发表于 2009-11-19 13:03:17 | 显示全部楼层
听老大这么一说,感觉系统封装程序也不是那么神秘啦!
 楼主| 发表于 2009-11-19 13:19:32 | 显示全部楼层
SciTE.sessio 、全局缩写.properties  不需要去复制,这个是autoit的scite编辑器的配置文件,吐血,网上的教程都带这个...
发表于 2009-11-19 14:23:14 | 显示全部楼层
什么意思,没有明白,已经发了还是没发,1楼是什么东东?
 楼主| 发表于 2009-11-19 14:27:12 | 显示全部楼层
回复 6# 卫和谐


    一楼是转的两贴,前面有说明.
后面是心得(二楼开始)...


估计是入不了你的眼,看了我的话还是认为我啥都没说.
发表于 2009-11-19 15:27:44 | 显示全部楼层
回复 7# thesnow

见笑了,只是没搞清1楼和2楼的关系!~—~
发表于 2009-11-19 16:16:39 | 显示全部楼层
花了30大洋,换来浏览器假死30秒。
发表于 2009-11-19 23:02:31 | 显示全部楼层
想不到老萧居然搞起这个...
发表于 2009-11-20 13:57:27 | 显示全部楼层
还得慢慢学学呀
发表于 2009-11-20 14:29:43 | 显示全部楼层
謝拉~感謝分享 我會慢慢學席
发表于 2009-11-22 01:34:19 | 显示全部楼层
50,估计我买了没必要...反过来先挣10块,以后能用了再看...
发表于 2009-11-22 11:51:54 | 显示全部楼层
强列支持。最好拉出去
发表于 2009-11-22 13:07:29 | 显示全部楼层
支持楼主,买下看看
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-3-29 21:31 , Processed in 0.084462 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表