Ansicht:   

#311850 Problem mit VBScript (pc.coding)

verfaßt von d-fens, Bonn, 23.05.2012, 11:53:39

Hallo zusammen,

ich habe mir ein VBScript für folgendes Problem geschrieben: Nach manchen Spielen (DX9 oder älter) ist der Mauszeigerschatten deaktiviert, was ich nicht will. Also habe ich nach Möglichkeiten gesucht, den Schatten möglichst unkompliziert wieder aktivieren zu können - ohne Umweg über die Systemsteuerung.

Ich fand folgende Lösung:

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.

Hat jemand eine Ahnung, woran das liegen könnte oder vielleicht einen viel besseren Vorschlag für die Lösung des Problems?

--
„Tu es oder tu es nicht! Es gibt kein Versuchen.“
(Jedi-Meister Yoda)

 

gesamter Thread:

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz