#311850 d-fensBonn, 23.05.2012, 11:53:39 |
Problem mit VBScript (pc.coding) |
Hallo zusammen, Set ws = CreateObject(\"WScript.Shell\")
Call ws.regWrite(\"HKEY_CURRENT_USER\\Control Panel\\Desktop\\UserPreferencesMask\", &H80073E9E, \"REG_BINARY\")
ws.run(\"rundll32.exe user32.dll,UpdatePerUserSystemParameters\")
Dieses Script funktioniert auch, hat aber leider einen Schönheitsfehler, denn der Wert von UserPreferencesMask bei Windows 7 64bit ist &H0000001280073E9E, also ein QWord. Leider kann man mit regWrite nur maximal DWords schreiben. Also habe ich weiter recherchiert und ein Lösung mit einem Array gefunden: Set ws = CreateObject(\"WScript.Shell\")
Const HKCU = &H80000001
KeyPath = \"Control Panel\\Desktop\"
Set oReg=GetObject(\"winmgmts:{impersonationLevel=impersonate}!\\\\\" & \".\\root\\default:StdRegProv\")
ValueName = \"UserPreferencesMask\"
iValues = Array(&H9E,&H3E,&H07,&H80,&H12,&H00,&H00,&H00)
oReg.SetBinaryValue HKCU,KeyPath,ValueName,iValues
ws.run(\"rundll32.exe user32.dll,UpdatePerUserSystemParameters\")
Das Setzen des Wertes funktioniert einwandfrei, das kann ich mit regedit.exe feststellen. Die Aktualisierung des Desktops funktioniert jedoch bei diesem zweiten Script offenbar nicht, d. h. der Schatten wird nicht angezeigt. -- |
#311854 effeffOstfriesland, 23.05.2012, 12:15:47 @ d-fens |
Problem mit VBScript |
Moin, -- |
#311857 d-fensBonn, 23.05.2012, 12:34:59 @ effeff |
Problem mit VBScript |
> Moin, -- |
#311859 Johann [Gast]23.05.2012, 13:20:07 @ d-fens |
Problem mit VBScript |
Hallo, |
#311860 d-fensBonn, 23.05.2012, 14:13:23 (editiert von d-fens, 23.05.2012, 14:13:48) @ Johann |
Problem mit VBScript (ed) |
> das geht doch auch aus einer Batch. REG Kommandos und danach \"rundll32
REG ADD \"HKCU\\Control Panel\\Desktop\" /v UserPreferencesMask /t REG_BINARY /d 9E3E078012000000
funktioniert leider nicht. Wahrscheinlich müsste ich zusätzlich den Umweg über eine .reg-Datei gehen. Mann, warum muss das so kompliziert sein? -- |
#311861 Johann [Gast]23.05.2012, 14:17:38 (editiert von Johann, 23.05.2012, 14:21:40) @ d-fens |
Problem mit VBScript (ed) |
Ja eben, sagte effeff ja schon. Mach regdatei parat und ruf aus einer Batch erst die REG auf, respektive regedit mit der Datei, da musste mal gucken, und mach dann den DLL call. Das muss doch locker flockig klappen? Machen die ganzen warez Typen doch auch so... |
#311862 d-fensBonn, 23.05.2012, 15:06:32 @ Johann |
Problem mit VBScript |
> Ja eben, sagte effeff ja schon. Mach regdatei parat und ruf aus einer Batch @echo off
call :quiet>nul 2>&1
goto :EOF
:quiet
start /wait regedit /s upm.reg
:: Make the changes effective immediately
%SystemRoot%\\System32\\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\\Control Panel\\Desktop]
\"UserPreferencesMask\"=hex:9e,3e,07,80,12,00,00,00
-- |
#311865 Johann [Gast]23.05.2012, 16:07:39 @ d-fens |
Problem mit VBScript |
Jute Frage. Sicher, dass der neue Regwert gefressen wurde? Wie verhält es sich, wenn Du nur mal per Skript/Batch den Wert setzt und dann manuell mit F5 den Desktop refreshst? |
#311866 d-fensBonn, 23.05.2012, 16:24:34 @ Johann |
Problem mit VBScript |
> Jute Frage. Sicher, dass der neue Regwert gefressen wurde? -- |
#311867 Johann [Gast]23.05.2012, 16:59:46 @ d-fens |
Problem mit VBScript |
Dann ist das Problem aber offensichtlich, dass es bei der 64 Bit Version nicht so funktioniert, wie bei einer 32er, oder verstehe ich da was falsch? |
#311869 d-fensBonn, 23.05.2012, 17:27:38 (editiert von d-fens, 23.05.2012, 17:33:01) @ Johann |
Problem mit VBScript (ed) |
> Dann ist das Problem aber offensichtlich, dass es bei der 64 Bit Version -- |
#311889 Johann [Gast]24.05.2012, 10:01:05 @ d-fens |
Problem mit VBScript |
Morgen, |
#311891 d-fensBonn, 24.05.2012, 10:06:45 @ Johann |
Problem mit VBScript |
> Morgen, -- |
#311892 Johann [Gast]24.05.2012, 10:20:13 (editiert von Johann, 24.05.2012, 10:22:47) @ d-fens |
Problem mit VBScript (ed) |
> [...] funktioniert es manchmal [...] |
#311897 Karsten Meyer![]() Konstanz am Bodensee, 24.05.2012, 11:43:01 @ Johann |
Problem mit VBScript |
> Die kommenden Tage droht Schönwetterkatastrophe, ich werde jetzt die Spiegel putzen -- |
#311901 d-fensBonn, 24.05.2012, 12:30:03 @ Johann |
Problem mit VBScript |
> > [...] funktioniert es manchmal [...] -- |
#311855 RuraPenthe23.05.2012, 12:21:13 @ d-fens |
Problem mit VBScript |
den Schlüssel in eine externe Datei exportieren. regedit.exe /s meinRegfile.reg
|
#311858 d-fensBonn, 23.05.2012, 12:35:20 (editiert von d-fens, 23.05.2012, 12:35:35) @ RuraPenthe |
Problem mit VBScript (ed) |
Siehe meine Antwort an effeff. -- |
#311863 RuraPenthe23.05.2012, 15:52:46 @ d-fens |
Problem mit VBScript |
Const HKEY_CURRENT_USER = &H80000001
Set objRegistry = GetObject (\"winmgmts:\\\\.\\root\\default:StdRegProv\")
arrValues = Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)
errReturn = objRegistry.SetBinaryValue (HKEY_CURRENT_USER, \"Software\", \"BinaryTest\", arrValues)
|
#311871 d-fensBonn, 23.05.2012, 17:31:52 @ RuraPenthe |
Problem mit VBScript |
>
> Const HKEY_CURRENT_USER = &H80000001
> Set objRegistry = GetObject (\"winmgmts:\\\\.\\root\\default:StdRegProv\")
> arrValues = Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)
> errReturn = objRegistry.SetBinaryValue (HKEY_CURRENT_USER, \"Software\",
> \"BinaryTest\", arrValues)
-- |
#311883 RuraPenthe24.05.2012, 08:03:08 @ d-fens |
Problem mit VBScript |
> >
> > Const HKEY_CURRENT_USER = &H80000001
> > Set objRegistry = GetObject (\"winmgmts:\\\\.\\root\\default:StdRegProv\")
> > arrValues = Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)
> > errReturn = objRegistry.SetBinaryValue (HKEY_CURRENT_USER, \"Software\",
> > \"BinaryTest\", arrValues)
|
#311885 d-fensBonn, 24.05.2012, 08:45:50 @ RuraPenthe |
Problem mit VBScript |
> das schreibt ein ByteArray (1,2,3......18) als REG_BINARY in die registry -- |
#311886 RuraPenthe24.05.2012, 08:57:54 (editiert von RuraPenthe, 24.05.2012, 08:58:11) @ d-fens |
Problem mit VBScript (ed) |
> Das Schreiben des Wertes funktioniert in meinem Code. Nur das |
#311890 d-fensBonn, 24.05.2012, 10:02:45 @ RuraPenthe |
Problem mit VBScript |
> > Das Schreiben des Wertes funktioniert in meinem Code. Nur das -- |
#311896 effeffOstfriesland, 24.05.2012, 11:09:08 @ d-fens |
Problem mit VBScript |
Funktioniert eventuell das hier? Ich habe deinen Code um eine Zeile gekürzt und dann um zwei erweitert:
Set ws = CreateObject(\"WScript.Shell\")
Const HKCU = &H80000001
KeyPath = \"Control Panel\\Desktop\"
Set oReg=GetObject(\"winmgmts:{impersonationLevel=impersonate}!\\\\\" & \".\\root\\default:StdRegProv\")
ValueName = \"UserPreferencesMask\"
iValues = Array(&H9E,&H3E,&H07,&H80,&H12,&H00,&H00,&H00)
oReg.SetBinaryValue HKCU,KeyPath,ValueName,iValues
ws.AppActivate \"Program Manager\"
ws.SendKeys \"{F5}\"
-- |
#311900 d-fensBonn, 24.05.2012, 12:29:17 @ effeff |
Problem mit VBScript |
> Funktioniert eventuell das hier? Ich habe deinen Code um eine Zeile gekürzt -- |