查看單個文章
舊 2004-10-28, 12:38 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 製作免安裝的Yahoo Messenger

製作免安裝的Yahoo Messenger

雅虎通(Yahoo Messenger)也算一個不錯的IM軟體,雖然已經有了Miranda IM,但我還是經常要用到它的,所以做了這個免安裝版本,方法如下:
1、用ART掃瞄註冊表,再安裝Yahoo Messenger,完成後再用ART掃瞄註冊表,匯出新增加的註冊表為.reg文件。
2、到Yahoo Messenger目錄,開啟INSTALL.LOG 文件,可以看到安裝程序到底做了些操作,寫了哪些東西進註冊表,註冊了哪些DLL庫,等等。很多軟體的綠化/免安裝化都可以這樣做的。其實所謂綠化/免安裝化,也就是部分地重複一下安裝程序所做的工作。這裡可以看到安裝程序註冊了一大堆Dll/EXE文件,把那部分內容複製下來,準備製作註冊DLL/EXE的批次處理文件。而卸載工作,也就是安裝工作的反程序,即移除相關註冊表以及反註冊DLL/EXE文件。
3、把Yahoo Messenger目錄複製到另外一個分區,並卸載Yahoo Messenger。
4、製作安裝用的批次處理。從INSTALL.LOG文件可以看到,安裝程序註冊了很多DLL/EXE,製作批次處理Setup.bat,內容如下:

====================

regsvr32 /s Messenger\pcre.dll
regsvr32 /s Messenger\ycrwin32.dll
regsvr32 /s Messenger\Yml.dll
regsvr32 /s Messenger\ypagerps.dll
regsvr32 /s Messenger\proxy.dll
regsvr32 /s Messenger\YSERVER.EXE
regsvr32 /s Messenger\asw.dll
regsvr32 /s Messenger\yacscom.dll
regsvr32 /s Messenger\yacsui.dll
regsvr32 /s Messenger\kdu_v32M.dll
regsvr32 /s Messenger\ywcupl.dll
regsvr32 /s Messenger\ywcvwr.dll
regsvr32 /s Messenger\ft60.dll
regsvr32 /s Messenger\MyYahoo.dll
regsvr32 /s Messenger\YahooBridgeLib.dll
regsvr32 /s Messenger\YPAGER.EXE
regsvr32 /s Messenger\AswRes.dll
regsvr32 /s Messenger\stock.dll
regsvr32 /s Shared\YbSkin2.dll
regsvr32 /s Shared\YbSkinSelect.dll
regsvr32 /s Shared\YbSkinSelectRes.dll
regsvr32 /s Shared\YAlertCenter.dll

=====================

5、到了第4步,Yahoo Messenger其實絕大部分功能已經用得起來了,但還有一點小毛病,就是雙按聯繫人名單,準備Chat的時候,會彈出框,說IE指令碼錯誤,令人很不爽。這時候在第1步製作的註冊表.reg文件就派上用場了。開啟那個.reg看看,可以看得出來有相當部 分的內容是用不上的,當然,這個要看個人的製作經驗和「蒙」的能力了,我「蒙」出來的註冊表文件內容如下所顯示,其中我的Yahoo Messenger目錄是 D:\NewProgram\Yahoo Messenger\,大家可以相應修改並加到註冊表。

========================
REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{475DAFB5-B05A-4E11-B466-00CF55C1628E}\1.0\0\win32]
@="D:\\NewProgram\\Yahoo Messenger\\Shared\\YAlertCenter.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{475DAFB5-B05A-4E11-B466-00CF55C1628E}\1.0\HELPDIR]
@="D:\\NewProgram\\Yahoo Messenger\\Shared\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{6F84EA6C-A074-482D-911D-7C92E59CB16F}\1.0]
@="YbSkin 1.0 Type Library"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{6F84EA6C-A074-482D-911D-7C92E59CB16F}\1.0\0\win32]
@="D:\\NewProgram\\Yahoo Messenger\\Shared\\YbSkin2.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{6F84EA6C-A074-482D-911D-7C92E59CB16F}\1.0\HELPDIR]
@="D:\\NewProgram\\Yahoo Messenger\\Shared\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{7D1E9C3C-BD6A-11D3-87A8-009027A35D73}\1.0]
@="yacsui 1.0 Type Library"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{7D1E9C3C-BD6A-11D3-87A8-009027A35D73}\1.0\0\win32]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\yacsui.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{7D1E9C3C-BD6A-11D3-87A8-009027A35D73}\1.0\HELPDIR]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{8E926E2D-BF6C-11D2-A33D-00A0C94B8D0E}\1.0]
@="Stock 1.0 Type Library"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{8E926E2D-BF6C-11D2-A33D-00A0C94B8D0E}\1.0\0\win32]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\stock.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{8E926E2D-BF6C-11D2-A33D-00A0C94B8D0E}\1.0\HELPDIR]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{9A5EC81C-23AD-4192-82C1-298B2058C444}\1.0]
@="ft60 1.0 Type Library"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{9A5EC81C-23AD-4192-82C1-298B2058C444}\1.0\0\win32]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\ft60.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{9A5EC81C-23AD-4192-82C1-298B2058C444}\1.0\HELPDIR]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{9D392231-AE8E-11D4-8FD3-00D0B7730277}\1.0]
@="Yahoo! Webcam Viewer 1.0 Type Library"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{9D392231-AE8E-11D4-8FD3-00D0B7730277}\1.0\0\win32]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\ywcvwr.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{9D392231-AE8E-11D4-8FD3-00D0B7730277}\1.0\HELPDIR]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{C652805E-0CD2-4AE7-A633-8300BAB8DAAC}\1.0]
@="YbSkinSelect 1.0 Type Library"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{C652805E-0CD2-4AE7-A633-8300BAB8DAAC}\1.0\0\win32]
@="D:\\NewProgram\\Yahoo Messenger\\Shared\\YbSkinSelect.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{C652805E-0CD2-4AE7-A633-8300BAB8DAAC}\1.0\HELPDIR]
@="D:\\NewProgram\\Yahoo Messenger\\Shared\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{DCE2F8A1-A520-11D4-8FD0-00D0B7730277}\1.0]
@="Yahoo! Webcam Upload 1.0 Type Library"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{DCE2F8A1-A520-11D4-8FD0-00D0B7730277}\1.0\0\win32]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\ywcupl.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{DCE2F8A1-A520-11D4-8FD0-00D0B7730277}\1.0\HELPDIR]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{E5D12C41-7B4F-11D3-B5C9-0050045C3C96}\1.0]
@="ypager 1.0 Type Library"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{E5D12C41-7B4F-11D3-B5C9-0050045C3C96}\1.0\0\win32]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\YPAGER.EXE"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{E5D12C41-7B4F-11D3-B5C9-0050045C3C96}\1.0\HELPDIR]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{F0012D80-989C-11D3-B7C5-0090271D5CA7}\4.0]
@="MyYahoo 4.0 Type Library"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{F0012D80-989C-11D3-B7C5-0090271D5CA7}\4.0\0\win32]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\MyYahoo.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{F0012D80-989C-11D3-B7C5-0090271D5CA7}\4.0\HELPDIR]
@="D:\\NewProgram\\Yahoo Messenger\\Messenger\\"

=======================

6、至此,執行第4步的批次處理文件和第5步的.reg文件後,免安裝的Yahoo Messenger已經製作完成了。

一些補充:
第5步的註冊表文件可以改寫成.inf文件,這樣的話,就沒有要修改安裝路徑的問題了,詳見lhy728老大的相關文章。至於卸載,移除相關註冊表項的話,在第一步可以用ART產生移除相關註冊表項的.reg文件,執行即可。反註冊DLL/EXE,在第4步的批次處理文件各行加 /u 參數即可。

附件是安裝指令碼,上面第5步的註冊表文件我已經改寫成了.inf文件,解壓縮後把這些文件COPY到Yahoo Messenger目錄,即與Messenger和Shared在同一目錄,install.bat是安裝,unstall.bat是卸載
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次