找回密码  加入

AUTOIT CN

搜索
查看: 38096|回复: 128

[原创] Window 7 的封装研究

[复制链接]
发表于 2009-11-19 12:07:12 | 显示全部楼层 |阅读模式
购买主题 已有 69 人购买  本主题需向作者支付 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首次运行会出现向导,即时封装前已经关闭向导.
解决:封装好的系统在第一次进入桌面时运行.
  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

查看全部评分

 楼主| 发表于 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备15028933号-3 )谷歌 百度

GMT+8, 2018-10-17 11:30 , Processed in 0.102895 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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