thesnow 发表于 2009-11-19 12:07:12

已有 70 人购买  本主题需向作者支付 50 块金钱 才能浏览 购买主题

thesnow 发表于 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)
EndFunc3.输入法信息丢失问题.
解决:
封装时: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)
        EndIf4.添加项目到任务栏和开始菜单锁定项目的问题.
解决:
目前网上没有好的解决方案...
我目前使用的: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
EndFunc5.封装前简单的垃圾清理
解决: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")
EndFunc6.免疫MRT(KB890830)问题
解决:Func _FakeMRT()
;免疫MRT补丁KB890830
        FileCopy(@SystemDir & "\notepad.exe",@SystemDir & "\mrt.exe",1)
EndFunc

thesnow 发表于 2009-11-19 12:42:02

占个楼好了

水木子 发表于 2009-11-19 13:03:17

听老大这么一说,感觉系统封装程序也不是那么神秘啦!

thesnow 发表于 2009-11-19 13:19:32

SciTE.sessio 、全局缩写.properties不需要去复制,这个是autoit的scite编辑器的配置文件,吐血,网上的教程都带这个...

卫和谐 发表于 2009-11-19 14:23:14

什么意思,没有明白,已经发了还是没发,1楼是什么东东?

thesnow 发表于 2009-11-19 14:27:12

回复 6# 卫和谐


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


估计是入不了你的眼,看了我的话还是认为我啥都没说.

卫和谐 发表于 2009-11-19 15:27:44

回复 7# thesnow

见笑了,只是没搞清1楼和2楼的关系!~—~

lpxx 发表于 2009-11-19 16:16:39

花了30大洋,换来浏览器假死30秒。

kodin 发表于 2009-11-19 23:02:31

:face (7):想不到老萧居然搞起这个...

hcd158 发表于 2009-11-20 13:57:27

还得慢慢学学呀

a9038889 发表于 2009-11-20 14:29:43

謝拉~感謝分享 我會慢慢學席

wangwen916 发表于 2009-11-22 01:34:19

50,估计我买了没必要...反过来先挣10块,以后能用了再看...

redapple2008 发表于 2009-11-22 11:51:54

强列支持。最好拉出去

seeking 发表于 2009-11-22 13:07:29

支持楼主,买下看看
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: Window 7 的封装研究