Dienstprogramm zum Ändern des Desktop-Hintergrunds basierend auf der aktuellen IP-Adresse

2620
RickMeasham

Ich möchte einen anderen Desktop-Hintergrund haben, abhängig davon, an welches Netzwerk ich angeschlossen bin (Zuhause, Arbeit, Roaming usw.).

Kennt jemand eine Möglichkeit, dies mit Windows Vista zu erreichen?

3
Warum Community Wiki? Ciaran vor 14 Jahren 0
Da die Frage kurz war, könnte es besser sein, sie offen zu lassen, wenn sie von der Community gewünscht wird. RickMeasham vor 14 Jahren 0

4 Antworten auf die Frage

3
David Spillett

Sie geben Ihr Betriebssystem nicht an, also gehe ich von Windows aus.

Ich habe ein in VBSctipt zusammengeschaltetes Skript, das regelmäßig ausgeführt wird (über die integrierte Task-Funktion von Windows) und mein Hintergrundbild je nach Tageszeit in eine zufällige Auswahl umwandelt (so dass eines aus dem "Morgen" -Zustand zwischen 0700 ausgewählt wird und 1000 und so weiter). Nachdem Sie sich entschieden haben, welches Bild verwendet werden soll, aktualisieren die folgenden Zeilen das Hintergrundbild:

Set oShell = WScript.CreateObject("Wscript.Shell") oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sImage oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, False 

Sie könnten etwas Ähnliches erstellen, das seine Wahl ausschließlich auf den IP-Bereich stützt, in dem Sie sich zu befinden scheinen. Sie können Ihre aktuelle öffentliche Adresse ermitteln, indem Sie mit der WinHTTP-Bibliothek einen HTTP-Aufruf an etwas wie http://whatismyipaddress.com/ durchführen (wenn Sie jedoch einen solchen öffentlichen Dienst verwenden, stellen Sie sicher, dass Sie nicht zu oft nachschlagen ). . Als Alternative zum Erkennen Ihrer öffentlichen IP-Adresse können Sie versuchen, die Ausgabe des ipconfigNetzwerks zu scannen oder andere Eigenschaften des Netzwerks zu ermitteln (kann ich mein Porno-Archiv-Netzwerklaufwerk sehen? Wenn ja, muss ich zu Hause sein) und so weiter.

Zu StackOverflow erhalten Sie möglicherweise weitere Hilfe.
Ich kenne keine vorab geschriebenen Hilfsprogramme, die dies tun. Es gibt zweifellos einige, die irgendwo da draußen sind, aber das Verfassen eines eigenen Skripts ist möglicherweise schneller als die Suche nach einem vorgefertigten, das so funktioniert, wie Sie es möchten.

Entschuldigung .. der Tag sagte 'Vista' .. Ich hätte es in den Körper legen sollen RickMeasham vor 14 Jahren 0
Mein schlechtes, dass ich die Tags nicht beachtet habe, sorry. Das Skript, das ich zusammengeworfen habe, wurde nur auf Win2K- und XP-Computern verwendet - die Technik sollte unter Vista funktionieren, aber ich habe es dort noch nie getestet. David Spillett vor 14 Jahren 0
Ich habe vergessen zu sagen: Ich freue mich, mein Skript mitzuteilen, wenn Sie es als Ausgangspunkt wünschen, obwohl ich nicht glaube, dass es Ihnen wirklich viel Zeit und Mühe ersparen würde. David Spillett vor 14 Jahren 0
1
JP Alioto

Schauen Sie sich diesen SU-Thread an . Das könnte für dich funktionieren.

Das könnte noch einfacher sein ;-) Ivo Flipse vor 14 Jahren 0
0
Ivo Flipse

Sie können ein Skript erstellen, das Ihre IP-Adresse überprüft und dann den Hintergrund ändert.

Schade, dass meine Scripting-Erfahrung so gering ist, dass ich keine Ahnung habe, wie ich das schreiben soll.

Hier finden Sie ein VB-Skript, um Ihre IP-Adresse zu finden:

'GetIPaddr.vbs - Check the IP address you are currently 'connected to the Internet with (or LAN IP). '© Bill James - bill@billsway.com ' rev 15 Jan 2002 ' Now works with Windows NT, 2K, XP  Option Explicit Dim IP_Address : IP_Address = GetIP()  If IP_Address = "0.0.0.0" OR IP_Address = "" Then MsgBox "No IP Address found." Else InputBox vbcrlf & "Current IP Address is " & IP_Address & _ vbcrlf & vbcrlf & vbcrlf & vbcrlf & _ "(Use Ctrl + C to copy IP Address to Clipboard)", _ "GetIPaddr.vbs © Bill James", IP_Address End If  Function GetIP() Dim ws : Set ws = CreateObject("WScript.Shell") Dim fso : Set fso = CreateObject("Scripting.FileSystemObject") Dim TmpFile : TmpFile = fso.GetSpecialFolder(2) & "/ip.txt" Dim ThisLine, IP If ws.Environment("SYSTEM")("OS") = "" Then ws.run "winipcfg /batch " & TmpFile, 0, True Else ws.run "%comspec% /c ipconfig > " & TmpFile, 0, True End If With fso.GetFile(TmpFile).OpenAsTextStream Do While NOT .AtEndOfStream ThisLine = .ReadLine If InStr(ThisLine, "Address") <> 0 Then IP = Mid(ThisLine, InStr(ThisLine, ":") + 2) Loop .Close End With 'WinXP (NT? 2K?) leaves a carriage return at the end of line If IP <> "" Then If Asc(Right(IP, 1)) = 13 Then IP = Left(IP, Len(IP) - 1) End If GetIP = IP fso.GetFile(TmpFile).Delete  Set fso = Nothing Set ws = Nothing End Function 

Jetzt brauche ich einen intelligenten Programmierer, um etwas hinzuzufügen, damit sich der Hintergrund ändert, wenn die IP einen bestimmten Bereich / Wert hat.

-1, diese Antwort fügt das Problem im Wesentlichen wieder mit "und Sie könnten dies mit einer Shell automatisieren", 0 Wert addieren. Kent Fredric vor 14 Jahren 1
Gut genug, obwohl ich die Suche nicht aufgegeben habe ;-) Ivo Flipse vor 14 Jahren 0
Aber hey! Es ist sowieso Community-Wiki! Ivo Flipse vor 14 Jahren 0
Das ist viel Aufwand, um eine IP-Adresse zu finden Ciaran vor 14 Jahren 0
0
Ciaran

Nur ein Punkt in der richtigen Richtung. Jemand kann eine neue Antwort mit der tatsächlichen Lösung posten oder diese bearbeiten, wenn er möchte.

Von dem, was ich erfahre, wirst du über IP gehen wollen. Zuhause haben Sie eine IP-Adresse, die nicht mit der in Arbeit ist. Als Erstes müssen Sie herausfinden, wie die aktuelle IP lautet.

Ich habe dieses Batch-Skript gefunden, um genau das zu tun.

http://www.computing.net/answers/programming/batch-file-finding-the-ip-address/13900.html

IPCONFIG |FIND "IP" > %temp%\TEMPIP.txt FOR /F "tokens=2 delims=:" %%a in (%temp%\TEMPIP.txt) do set IP=%%a del %temp%\TEMPIP.txt set IP=%IP:~1% echo %IP% >%temp%\ip.txt echo The current IP address is "%IP%" 

Jetzt, da Sie die IP-Adresse haben, müssen Sie wahrscheinlich eine if-Anweisung einrichten.

Die Aktion des ifs wird in etwa wie folgt aussehen

http://www.computing.net/answers/programming/batch-to-change-desktop-wallpaper/15105.html

reg /add HKCU\Control Panel\Desktop\WallPaper /v wallpaper /t REG_SZ /d c:\images\wallpaper.bmp 

Der Nachteil der Ausführung als Batch-Datei besteht darin, dass sie als geplante Aufgabe oder ähnliches eingerichtet werden muss