腳本,註冊表,屏幕保護程序,哦,我的!無法使用vbscript爲屏幕保護程序將SysWow64值寫入註冊表
我想在Windows XP 64位機器上使用屏幕保護程序,該機器使用.NET應用程序,它使依賴於某些x86 Shockwave Dll(某些Shockwave動畫)的互操作調用。一切應該在%systemroot%\ WINNT \ SysWOW64目錄中。當屏幕保護程序發生超時時,過程應如下所示:
Screensaver.scr - > .NET應用程序 - > shockwave動畫。
在安裝期間,我想要一個用於屏幕保護程序文件的vbscript,將Screensaver.scr複製到SysWow64目錄,然後將正確的註冊表項設置爲該文件以便Windows啓動屏幕保護程序。
的代碼是這樣的:
Dim sScreenSaver, tScreenSaver
sScreenSaver = "C:\SourceFiles\bin\ScreenSaver.scr" 'screensaver
tScreenSaver = "C:\winnt\SysWOW64\"
Set WshShell = WScript.CreateObject("WScript.Shell") 'script shell to run objects
Set FSO = createobject("scripting.filesystemobject") 'file system object
'copy screensaver
FSO.CopyFile sScreenSaver, tScreenSaver, True
'set screen saver
Dim p1
p1 = "HKEY_CURRENT_USER\Control Panel\Desktop\"
WshShell.RegWrite p1 & "SCRNSAVE.EXE", (tScreenSaver & "ScreenSaver.scr")
安裝完畢後,我可以確認的屏幕保護程序存在於正確的目錄。
(它實際上似乎是在system32和sysWOW64目錄中---無論是安裝腳本還是我在安裝後我正在驗證的過程中。)
但是,註冊表項是不正確的。在這兩個32位和64位註冊表編輯器我看到HKCU \ ControlPanel控制面板\桌面\ SCRNSAVE.EX設置爲:
C:\WINNT\system32\Screensaver.scr
這是不對的。屏幕保護程序不會從該目錄運行。它只能從SysWOW64運行。如果我手動編輯註冊表與註冊表到正確的SysWOW64路徑一切工作正常。
這是使用腳本的問題還是這是Windows註冊表重定向或文件系統重定向問題?你會認爲這很簡單...