在 64 位元 Windows 系統上使用 InstallShield 打包安裝程式時,需特別注意目錄導向、系統資料夾重導向與登錄檔視圖三大議題,否則易導致檔案安裝錯位、DLL 註冊失敗或啟動項遺失。
C:\Program FilesC:\Program Files (x86)建置時正確設定 Template Summary 中的平台屬性,InstallShield 即會自動導向對應目錄。
System32:64 位元系統檔案與 64 位元應用程式執行環境SysWOW64:32 位元應用程式在 64 位元系統下的模擬環境關鍵問題:32 位元安裝腳本呼叫 WINSYSDIR 或 WINDIR^"System32" 時,系統會自動重導向至 SysWOW64,導致 64 位元 DLL 無法正確部署至 System32。
解決方案:在安裝腳本中暫時停用檔案系統重導向:
// 安裝開始前
Disable(WOW64FSREDIRECTION);
// 執行需寫入 System32 的操作 (複製 64-bit DLL、註冊 64-bit COM 等)
// 安裝結束後
Enable(WOW64FSREDIRECTION);
最佳實務:在 OnFirstUIBefore() 或 Installing() 事件中 Disable,在 Installed() 中 Enable;解除安裝同理於 Uninstalling()/Uninstalled() 處理。
64 位元系統將 32 位元應用程式的登錄寫入導向 HKLM\Software\Wow6432Node\...。若需讓 32 位元安裝程式直接寫入 64 位元視圖 (如服務啟動項):
REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY;
// 寫入 64-bit 登錄鍵值
REGDB_OPTIONS = REGDB_OPTIONS & ~REGDB_OPTION_WOW64_64KEY;
// 恢復預設行為
同理,元件 (Component) 需正確標記為 64-bit,確保檔案與登錄操作針對正確視圖。
System32/HKLM\Software 64-bit 視圖時,成對使用 Disable/Enable(WOW64FSREDIRECTION) 與 REGDB_OPTION_WOW64_64KEY。損壞軟碟/隨身碟資料搶救四大法:安全模式複製、複製軟碟功能、DEBUG 磁區編輯、ScanDisk/壞軌工具/壓縮檔修復
CentOS 安裝 Windows 字體 (微軟雅黑、Consolas、黑體) 讓桌面與終端機更好看
滑鼠右鍵突然失靈?四大成因分類排查:系統忙碌、硬體斷線、硬碟壞軌、網頁封鎖
內建管理員無法啟動此應用程式?本機群組原則啟用「內建管理員核准模式」解決
關閉 Windows 預設共享(C$、ADMIN$、IPC$)註冊表法
藍屏 0x0000007E (SYSTEM_THREAD_EXCEPTION_NOT_HANDLED)?HIDCLASS.SYS 驅動衝突,拔除 USB 裝置即可解