返回列表 发帖

[原创] Window 7 的封装研究

购买主题 已购买人数:69  记录 本主题需向作者支付 50 金钱 才能浏览
-------------------------------------------------------------


P●wer ◎f      
                   ┰ и   ∈ ∫∩ ⊙  ω
-------------------------------------------------------------

其实封装是简单的事情,问题出现在封装的系统小问题很多.
到时想起来再慢慢发布.
1.封装好的系统无桌面壁纸(黑色)
问题:default默认没有HKEY_CURRENT_USER\Control Panel\Desktop下的Wallpaper.但是封装时却有了(指向封装系统的当前用户).造成封装后的系统壁纸指向错误(+权限错误).
解决:封装前删除HKEY_CURRENT_USER\Control Panel\Desktop下的Wallpaper

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

评分人数

  • kn007

-------------------------------------------------------------


P●wer ◎f      
                   ┰ и   ∈ ∫∩ ⊙  ω
-------------------------------------------------------------

TOP

占个楼好了
-------------------------------------------------------------


P●wer ◎f      
                   ┰ и   ∈ ∫∩ ⊙  ω
-------------------------------------------------------------

TOP

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

TOP

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


P●wer ◎f      
                   ┰ и   ∈ ∫∩ ⊙  ω
-------------------------------------------------------------

TOP

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

TOP

回复 6# 卫和谐


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


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

TOP

回复 7# thesnow

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

TOP

花了30大洋,换来浏览器假死30秒。
自己知道的,尽量告诉别人,自己不知道的,虚心学习

TOP

想不到老萧居然搞起这个...

TOP

还得慢慢学学呀

TOP

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

TOP

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

TOP

强列支持。最好拉出去

TOP

支持楼主,买下看看

TOP

返回列表