Zmieniasz tapetę w zależności od pory dnia za pomocą skryptu lub pliku wsadowego?

9

Chcę mieć 2 różne tapety, które zmieniają się w zależności od pory dnia (odpowiednio 6 i 22 godziny) i chcę wyświetlać noc tylko po 22 godzinach, a dzień tylko po 6 godzinach i do 22 godzin.

Nie znalazłem programu, który mógłby to zrobić po stanie gotowości, więc pomyślałem, że powinno być łatwo go zrealizować za pomocą skryptu zadań. Teraz pytanie dotyczy nie tylko sposobu realizacji takiego skryptu, ale także tego, czy skrypt powinien zawierać kontrolę czasu lub harmonogram zadań. Nie jestem pewien, co by działało lepiej, gdyby komputer był w trybie gotowości.

Próbowałem już kilku skryptów z podobnych pytań i miałem nadzieję, że mogę je dostosować do moich potrzeb, ale one w ogóle nie działały.

Czy ktoś może mi pomóc? TIA

Patrick
źródło

Odpowiedzi:

5

To jest naprawdę bardzo proste:

  1. Kliknij tło pulpitu prawym przyciskiem myszy
  2. Wybierz „Personalizuj”
  3. Kliknij „Tło pulpitu”
  4. Przeciągnij i upuść obrazy w polu lub wybierz „Przeglądaj” i znajdź obrazy
  5. Sprawdź oba zdjęcia i upewnij się, że poranek jest pierwszy
  6. Poczekaj do 12:00 i wybierz „Zmień obraz co 12 godzin”
  7. Cieszyć się!
Adam
źródło
To taka elegancka sztuczka!
aalaap
5

Użyj harmonogramu zadań i utwórz skrypt VB, aby zmienić tapetę. Utwórz skrypt dla każdej tapety, której zamierzasz użyć.

dim shell
Set shell = WScript.CreateObject("WScript.Shell")
wallpaper = "C:\path\to\wallpaper.jpg"
shell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", wallpaper
shell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True

Zapisz plik jako coś.vbs i dodaj go do harmonogramu zadań, i voila! Wszystko działa.

Wspomniano również, że nie zmieniłby tapety, gdybyś miał komputer wyłączony w czasie, gdy powinien się zmienić. Jest to błędne, ponieważ zadanie można ustawić tak, aby uruchamiało się przy pierwszym uruchomieniu po upływie określonego czasu, więc zostanie ustawione po uruchomieniu komputera, nawet jeśli było wyłączone w czasie, który powinien był zostać zmieniony. Aby to skonfigurować, przejdź do właściwości określonych zadań i do karty ustawień. Zaznacz drugie pole w oknie i gotowe.

Ten skrypt działa idealnie dla mnie w systemie Windows 8. Zwróć uwagę, jak nieco zmodyfikowałem oryginalny skrypt, aby go skrócić.

Źródło: http://www.ehow.com/facts_7586006_script-change-desktop-background.html

Steen Schütt
źródło
To jest prawdziwa odpowiedź.
Joe Coder
1

Za każdym razem, gdy widzę, że ktoś pyta o zrobienie czegoś w określonym czasie lub okresowo w systemie Windows, popieram ideę korzystania z Harmonogramu zadań systemu Windows.

wprowadź opis zdjęcia tutaj

Aby zrobić to, co masz zamiar zrobić, powinieneś utworzyć dwie taksówki, z których każda zaplanuje wykonanie jednego skryptu lub polecenia zmiany jednej tapety na inną w określonym czasie. Te polecenia powinny być w stanie automatycznie zmienić tapetę systemu Windows, a najprostszym sposobem na to jest skorzystanie z rejestru systemu Windows. Tutaj możesz znaleźć HOWTO: Zmień tapetę pulpitu za pomocą następującego klucza rejestru:

HKEY_CURRENT_USER \ Panel sterowania \ Desktop \ WallPaper

Utwórz więc zadania, ustawiając wartości w rejestrze, a będziesz mógł go zmieniać automatycznie, bez konieczności instalowania aplikacji innych firm.

Diogo
źródło
Dzięki, ale to wymaga ponownego uruchomienia, ale musi zostać zastosowane natychmiast. Próbowałem już także tego programu. Nie mogę zrobić tego, co chcę, ponieważ nie zmieni tapety z powiedzmy, z dnia na dzień, jeśli komputer przegapi czas na przełączenie, ponieważ na przykład był w stanie gotowości.
Patrick
To wcale mu nie pomaga - stąd, co napisałem w moim poście, wymaga ponownego uruchomienia lub wylogowania i zalogowania się, aby wprowadzić zmiany, a więc nie automatycznie.
PnP
Jesteś naprawdę blisko, po prostu musisz zaktualizować parametry systemowe. Spójrz na moją odpowiedź.
Steen Schütt
1

Miałem zamiar to zrobić od dłuższego czasu, po czym wróciłem do tematu, dostosowując konfigurację do tego, co lubię, po ponownej instalacji systemu operacyjnego.

Po przejrzeniu projektu znalazłem plik konfiguracyjny pokazu slajdów; (% APPDATA% / Microsoft / Windows / Themes / slideshow.ini). Ten plik zawiera wiersz „ImagesRootPIDL =”, który po odrobinie googlingu wskazuje, że następujący duży ciąg liter, cyfr i symboli jest nieaktualny, „nieokreślony PCIDLIST_ABSOLUTE” najwyraźniej jest to sposób na zlokalizowanie katalogu w Windows na niższy poziom niż przy użyciu ścieżki.

Krótko mówiąc, wygląda na to, że ten plik zmienia się, gdy obraz zostanie dodany do katalogu pokazu slajdów lub gdy pokaz slajdów zostanie zmieniony na nowy katalog. Więc moim rozwiązaniem było zapisanie pliku wsadowego dwa razy dziennie, w zależności od zmiennej% TIME%, skopiowanie pliku .ini dla każdego z moich pokazów slajdów do folderu konfiguracji i dołączenie go w dzień lub w nocy, a następnie nadpisanie pliku .ini w folder motywów z odpowiednim plikiem .ini pokazów slajdów.

Jedynym minusem mojego rozwiązania jest to, że teraz mam cały czas uruchomiony plik wsadowy, choć wydaje mi się, że zaplanowane zadanie byłoby lepszą implementacją i zająłem się tym problemem, lubię budować rzeczy, które naprawdę tylko ze sobą współdziałają. Do tej pory nie wymagało to restartu komputera ani eksploratora w celu przełączania między pokazami, po prostu przechodzi do następnego pokazu po upływie czasu między slajdami. Nie próbowałem jeszcze sprawić, aby zawiodła, ale uruchamianie go przez dwa tygodnie wydaje mi się wystarczającym okresem debugowania.

Jestem raczej nowy w systemie operacyjnym Windows, więc przepraszam, jeśli zawiera zbyt wiele oczywistych stwierdzeń lub łatwo to zrobić, klikając kilka razy. Myślę, że tego rodzaju rzecz jest najszybszym sposobem na poznanie wewnętrznego funkcjonowania systemu operacyjnego, chociaż myślę, że mógłbym napisać to w około pięciu liniach w skrypcie linux bash zamiast w czterdziestu dziwnych partiach kolosów.

duch
źródło
0

Niestety nie sądzę, aby w systemie Windows było coś wbudowanego, co pozwalałoby to zrobić bez konieczności wylogowywania się i ponownego logowania. Ponieważ tapetami można sterować za pomocą rejestru, można utworzyć plik wsadowy w celu zmodyfikowania wpisu rejestru - ale zmiany w samej tapecie nie będą widoczne, dopóki się nie wylogujesz i nie zalogujesz ponownie. Możesz wypróbować aplikację innej firmy, taką jak: http://download.cnet.com/Automatic-Wallpaper-Changer/3000-2336_4- 10560884.html

Mam nadzieję że to pomoże.

PnP
źródło