Desktop-Hintergrund ändern, ohne regedit

stimmen
0

Gibt es eine Möglichkeit, den Desktop-Hintergrund von meinen Windows-Computern zu ändern, ohne die Registrierung zu bearbeiten? Da dieses Programm auf unterschiedlichen Computern ausgeführt werden, die den USB-Laufwerksbuchstaben beeinflussen könnte, ist es eine vbs, die prüft, um zu sehen, welche Laufwerksbuchstaben es eingeschaltet ist und das Foto (Ich brauche den Laufwerksbuchstaben für die Dateiursprung zu kopieren) kopieren auf dem lokalen Laufwerk. Wer weiß, wie dies zu tun? TIA

Veröffentlicht am 02/11/2015 um 15:28
vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0

Nein, Sie müssen die Registrierung bearbeiten, und dies ist durch die Definition, wie das Bild referenziert wird.

Wie die obigen commen erwähnt haben, gibt es Möglichkeiten, um dieses Anliegen zu bekommen. Zum einen können Sie einen relativen Pfad anstelle von absoluten versuchen. Im folgenden Code, natürlich die messagebox entfernen.

Set WshShell = CreateObject("WScript.Shell")
msgbox WshShell.CurrentDirectory 'This returns the path of your script

Um den vollständigen Pfad zu Ihrem Skript zu erhalten, verwenden Sie einfach

msgbox WScript.ScriptFullName

Für Bonuspunkte könnten wir verwenden

msgbox CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)

Dies würde negieren jede Besorgnis über Laufwerksbuchstaben oder wo auch immer der Ordner ist. Wenn Sie möchten, können Sie die unten den Laufwerksbuchstaben ziehen.

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.Shell")

strPath = objShell.CurrentDirectory
strDrive = objFSO.GetDriveName(strPath)

msgbox strDrive

Etwas, das Ihr Skript komplizieren würde, ist, dass Sie das Desktop-Bild ist noch verfügbar, nachdem das Flash-Laufwerk entfernt wird sicherstellen wollen. Sie haben zwei Möglichkeiten. Eins, können Sie Ihr Bild an einen sicheren Ort auf C kopieren :. Oder, was ich tun würde, ist ein Hörer im VBS hinzufügen, die überprüft, ob X: Laufwerk noch lesbar ist. Sobald das Flash-Laufwerk nicht angeschlossen ist, werden die vbs am Laufen halten, damit es das Laufwerk bemerken ist weg und werde dann das Desktop-Bild wieder ändern.

Einige psudocode:

Read the reg desktop location
Back it up
write new location
refresh desktop
Call Secondary Script (OR LOOP NOW to watch the drive)

Je nachdem, was Ihr Skript, so haben sie ein anderes Skript aufrufen, die für das Flash-Laufwerk überprüft, oder einfach eine Schleife im Hauptskript. Ich würde einfach ein anderes Skript so wenden Sie Ihre freies was sonst noch in der Haupt ein zu tun. Lassen Sie mich wissen, wenn Sie weitere Fragen haben!

Beantwortet am 05/11/2015 um 22:40
quelle vom benutzer

stimmen
1

Sie können eine Powershell-Skript-Datei set_desktop_background.ps1 erstellen

Push-Location
cd HKCU:\
Set-Itemproperty -path 'HKEY_CURRENT_USER\Control Panel\Desktop' -Name 'WallPaper' -value ''
add-type -typedefinition "using System;`n using System.Runtime.InteropServices;`n public class PInvoke { [DllImport(`"user32.dll`")] public static extern bool SetSysColors(int cElements, int[] lpaElements, int[] lpaRgbValues); }"
[PInvoke]::SetSysColors(1, @(1), @(0x663309))
Start-Process "taskkill.exe" -ArgumentList "/F /IM explorer.exe" -Wait -WindowStyle Hidden
Start-Process "explorer.exe" -WindowStyle Hidden
Pop-Location

Und dann rufen Sie es über

powershell -File C:\desktop_background\set_desktop_background.ps1 -WindowStyle Hidden
Beantwortet am 07/08/2019 um 00:22
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more