2010-03-26 5 views
0

Scripts, registres, économiseurs d'écran, oh mon! J'essaie d'utiliser un économiseur d'écran sur une machine Windows XP 64 bits qui utilise une application .NET qui fait un appel interop qui s'appuie sur certaines Dock x86 Shockwave (une animation Shockwave). Tout doit être dans le répertoire% systemroot% \ WINNT \ SysWOW64. Lorsque le délai d'attente pour l'économiseur d'écran se produit, le processus devrait ressembler à ceci:Impossible d'écrire la valeur SysWow64 pour enregistrer avec vbscript pour Screensaver

Screensaver.scr -> application .NET -> animation shockwave.

Lors de l'installation, je veux un VBScript dans mon fichier économiseur d'écran pour copier le Screensaver.scr dans le répertoire SysWow64, puis définir la clé de registre appropriée à ce fichier pour Windows pour lancer l'économiseur d'écran.

Le code est quelque chose comme ceci:

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") 

Après l'installation, je peux vérifier le l'écran de veille existe dans le répertoire approprié. (Il semblerait que ce soit dans les répertoires system32 et sysWOW64 --- que ce soit le script d'installation ou quelque chose que j'ai fait après l'installation.)

Cependant, l'entrée de registre n'est pas correcte. Dans les deux regedit 32 et 64 bits, je vois le HKCU \ ControlPanel \ Desktop \ SCRNSAVE.EX est réglé sur:

C:\WINNT\system32\Screensaver.scr 

Ce n'est pas juste. L'économiseur d'écran ne fonctionnera pas à partir de ce répertoire. Il ne fonctionne qu'à partir de SysWOW64. Si je modifie manuellement le registre avec regedit sur le bon chemin SysWOW64, tout fonctionne correctement.

Est-ce un problème avec l'utilisation du script ou s'agit-il d'un problème de redirection de registre Windows ou de redirection de système de fichiers? Vous penseriez que ce serait simple ...

Répondre

0

Après plus de tests, nous avons découvert d'autres scripts qui ont écrasé la valeur de registre que nous essayions de changer. Deux (!) Scripts faisaient la même chose et résidaient dans des endroits totalement différents. Nous n'aimons pas les logiciels hérités!

Questions connexes