Невозможно записать значение SysWow64 в реестр с помощью vbscript для заставки - PullRequest
0 голосов
/ 27 марта 2010

Скрипты, реестры, заставки, о боже!

Я пытаюсь использовать экранную заставку на 64-битной машине с Windows XP, которая использует приложение .NET, которое выполняет вызов взаимодействия, который опирается на некоторые x86 Shockwave Dlls (некоторые Shockwave анимация). Все должно быть в каталоге% systemroot% \ WINNT \ SysWOW64. Когда происходит тайм-аут для заставки, процесс должен выглядеть следующим образом:

Screensaver.scr -> .NET app -> Shockwave animation.

Во время установки я хочу, чтобы 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-разрядном regedit я вижу, что HKCU \ ControlPanel \ Desktop \ SCRNSAVE.EX установлен в:

 C:\WINNT\system32\Screensaver.scr

Это не правильно. Заставка не запускается из этого каталога. Он запускается только из SysWOW64. Если я вручную отредактирую реестр с помощью regedit по правильному пути SysWOW64, все будет отлично.

Это проблема с использованием скрипта или это перенаправление реестра Windows или проблема перенаправления файловой системы? Вы могли бы подумать, что это будет просто ...

1 Ответ

0 голосов
/ 20 апреля 2010

После дополнительного тестирования мы обнаружили другие запущенные скрипты, которые перезаписывали значение реестра, которое мы пытались изменить. Два (!) Скрипта делали одно и то же и находились в совершенно разных местах.

Разве мы не любим устаревшее программное обеспечение!

...