office交流網--QQ交流群號

Access培訓群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

使用shell解壓縮zip文件出現自動化錯誤-2147024894 位置: ShellApp.Namespace(FileNameZip).CopyHere FileNames(i)

2017-09-17 08:00:00
zstmtony
原創
1585

正常windows xp 與windows 7都自帶 zip解壓縮功能

但最近在客戶某些電腦使用shell解壓縮zip文件 在代碼: ShellApp.Namespace(FileNameZip).CopyHere FileNames(i) 

出現自動化錯誤-2147024894  

-2147024894 

方法 'NameSpace' 作用于對象 'IShellDispatch4' 時失敗

這段代碼在win7下是非常正常的,但在XP下出現該錯誤

這是因為 zipfldr.dll不一定每個XP系統都存在,有的被優化掉了,有些克隆版的XP系統 為了節約資源,補刪除掉了,去掉的方法如下:



WindowsXP系統自帶解壓縮文件的功能,不用安裝壓縮軟件就可以解開ZIP格式的壓縮文件。但是這一切功能會耗費系統大量的資源,所以可以將這個功能關閉。可以單擊“開始”—“運行”命令,打開“運行”對話框,在輸入框中輸入“regsvr32 /u zipfldr.dll”(不含引號)命令輸入的“regsvr32 /u zipfldr.dll”命令中,在“32”和“/”中間有一個空格,在“u”和“zipfldr.dll”中間有一個空格。
按回車鍵,會彈出功能關閉成功的提示框,就說明這個功能被成功的關閉了。“zipfldr.dll中的DLLUnregisterServer成功” 如果要恢復對ZIP壓縮文件的支持,在“運行”對話框中輸入“regsvr32zipfldr.dll”不含引號即可。


但這樣就導致使用shell.application方法來調用windows自帶的解壓zip文件的功能就不能正常運行了。

出現這樣的錯誤提示


有這個文件,并且注冊過(注冊成功),也同樣自動化錯誤
位置: ShellApp.Namespace(FileNameZip).CopyHere FileNames(i)

提示:


EH的zhyzhsh 的解決辦法如下:


本機觀察并解決此問題的詳細步驟如下:

1、Excel里運行該代碼,提示以下錯誤:
 

2、Windows里運行命令“regsvr32 zipfldr.dll”,提示以下錯誤。意思是系統里找不到該文件。從http://www.zhaodll.com網站下載該文件,解壓放到C:\WINDOWS\system32目錄。
 

3、Windows里再次運行命令“regsvr32 zipfldr.dll”,提示成功。
 

4、退出并再次進入Excel,運行代碼成功。(若不退出直接運行則仍提示步驟1所示錯誤)

聲明:本方法僅供參考。如仍無法適用其他環境,請嘗試替代方案或聯系該代碼原作者


按這種方法注冊后,運行成功


但這樣無法確保所有的系統都能夠成功解壓,最好還是使用winrar的調用解壓方式,或調用zip.dll 或unzip.dll 這些方式

    分享
    北京十一选五基本走势