it-swarm-ja.com

WindowsのスケジュールXP追加のアプリなしで壁紙の変更

理想的には、バッチファイルまたはVBスクリプトを使用してこれを実行できるようにしたいので、1日のさまざまな時間に実行するようにスケジュールできます(夜の暗い壁紙と明るい壁紙)日の壁紙)。

これを実行できる多くのアプリケーションを認識していますが、必要なアプリケーションのみをバックグラウンドで実行し続けることを好みます。

5
underskor

スケジュールされたタスクを、私が一緒にハッキングしたこのVBScriptと一緒に使用できます(これは、たとえば、複数の壁紙を使用し、数分ごとに切り替えるためのものです)。

Randomize
Set obshell = WScript.CreateObject("Wscript.Shell")
num = Int( ( 100 - 1 + 1 ) * Rnd + 1 )
CurrentDir = "C:\Wallpapers\day\"
wallpaper = CurrentDir & "Wallpaper" & num & ".bmp"
obshell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper",wallpaper
obshell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,
UpdatePerUserSystemParameters",1,False
Set obshell = Nothing

:壁紙はビットマップである必要があります。システム時刻を定期的にチェックするためのスクリプトを増やしたくない場合は、同じスクリプトを昼と夜に使用して、個別のスケジュールされたタスクを作成し、希望の時間に希望の間隔で実行できます。日中の壁紙用と夜用の壁紙用の2つのフォルダーを作成し、それぞれにスクリプトのコピーを入れます。このスクリプトを機能させるには、3行目の100をそれぞれの壁紙の数に変更し、名前をWallpaper1, Wallpaper2, etcに変更する必要があります(またはスクリプトの名前を変更します)。また、それぞれのCurrentDir値を変更します。

2つの壁紙のみを使用したい場合(1時間を逃さないように、59分ごとに実行するように設定してください):

Set obshell = WScript.CreateObject("Wscript.Shell")
CurrentHour = Hour(Now)
If CurrentHour = 8 Then
    wallpaper = "C:\Wallpapers\day.bmp"
ElseIf CurrentHour = 20 Then
    wallpaper = "C:\Wallpapers\night.bmp"
Else
    WScript.Quit(0)
End If
obshell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper",wallpaper
obshell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,
UpdatePerUserSystemParameters",1,False
Set obshell = Nothing
6
John T

編集:ジョンの答えはあなたに完全なスクリプトを示しています。私の+1は彼に行きます。この投稿は、あなたが調べたいと思うかもしれないもう一つのオプションになります。

私はバッチコマンドに少し錆びているので、ハイライトを紹介します。

%TIME:~0,2%-TIME環境変数の現在の時間を示します

だからこのようなもの:

IF %TIME:~0,2% == 19 CALL do_Night_Wallpaper.reg
IF %TIME:~0,2% == 07 CALL do_Day_Wallpaper.reg

スクリプトをタスクスケジューラに配置し、1時間ごとに実行するように設定するだけで十分です。もちろん、時間帯の快適さのレベルに合わせて時間を調整することもできます。一方、IFステートメントは、regファイルを不必要に呼び出さないように記述されています。ただし、少なくとも1時間に1回実行するようにタスクスケジューラを設定する必要があることを意味します。

Regファイル自体に関しては、これらはあなたが求めている設定です:

  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Wallpaper
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\WallpaperStyle

1つ目は、壁紙画像へのフルパスを取得します。 2番目は整数です0 =中央、1 =タイル、2 =引き伸ばされています。

3
A Dwarf

ジョンのスクリプトにマイナーな調味料を追加しようとしています。私は、スクリプトが時間帯に応じて1分ごとに壁紙を変更できるようにしています。たとえば、5.00から8.59に、朝をテーマにしたいくつかの壁紙を変更します。 9.00から13.59に、正午をテーマにしたいくつかの壁紙を変更します。などなど。このスクリプトのすべてのテーマには4つのBMP画像が含まれています。スクリプトには5つのテーマ(朝、正午、午後、夕方、夜)が含まれているため、このスクリプトには20の画像が必要です。働くために。

'creating procedure that changes wallpaper every minute
Sub ChangeWallpaperPerMinute ()
    Set obshell = WScript.CreateObject("Wscript.Shell")
    CurrentHour = Hour(Now)
    'determining the number of images for every time of the day-based theme (set the 'maximum' value according to the number of images for every theme)
    maximum=4
    minimum=1
    'randomizing the images to be changed
    Randomize
    num = Int((maximum-minimum+1)*Rnd+minimum)
    If CurrentHour >= 5 And CurrentHour <= 8 Then
        wallpaper = "morning" & num & ".bmp"
    ElseIf CurrentHour >= 9 And CurrentHour <= 13 Then
        wallpaper = "midday" & num & ".bmp"
    ElseIf CurrentHour >= 14 And CurrentHour <= 16 Then
        wallpaper = "afternoon" & num & ".bmp"
    ElseIf CurrentHour >= 17 And CurrentHour <= 20 Then
        wallpaper = "evening" & num & ".bmp"
    ElseIf CurrentHour >= 21 And CurrentHour <= 23 Then
        wallpaper = "night" & num & ".bmp"
    ElseIf CurrentHour >= 0 And CurrentHour <= 4 Then
        wallpaper = "night" & num & ".bmp"
    Else
        WScript.Quit(0)
    End If
    obshell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper",wallpaper
    obshell.Run "%windir%\System32\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters",1,False
    Set obshell = Nothing
End Sub
'end of procedure creation'
'calling procedure to initiate script's action
ChangeWallpaperPerMinute
'repeating the calling of procedure
do
    WScript.sleep(60 * 1000)
    '60 * 1000 means sixty seconds. If the shifting of wallpapers is expected to occur once every ten seconds, change to 10 * 1000
    'calling procedure
    ChangeWallpaperPerMinute
Loop

このスクリプトを操作可能にするには、スクリプトファイル自体に加えて、20 BMP画像も必要です。これらの画像のうち4つは、指定された命名法に従って名前を付ける必要があります。たとえば、morning1 .bmp、morning2.bmp、morning3.bmp、morning4.bmp。同じ命名法が、4つの正午の画像、4つの午後の画像、4つの夕方の画像、4つの夜の画像の命名にも適用されます。VBSファイルを20と一緒に配置します。このスクリプトは指定された間隔でプロシージャを繰り返し呼び出すため、スケジュールされたタスクを使用する場合は、システムログオン時にのみこのスクリプトをアクティブ化してください。このスクリプトを非アクティブ化するには、タスクマネージャーを使用してwscript.exeを強制終了します。

1

これが「すぐに使える」小さなVBSプログラムです。これらすべてのコマンドを収集します(「ランダム化」VBSコマンドを使用してディレクトリ内のランダムな画像ファイルを選択し、「UpdatePerUserSystemParameters」を使用してWindowsの壁紙を更新します+ Windowsを更新します「WallpaperStyle」レジストリ)。

また、.JPG画像ファイル(.BMPファイルだけでなく)でも機能します。これは非常に便利です...

VBスクリプトのソースコードは http://sites.google.com/site/sharerandomwallpapers/ ありがとうございます。

1
user35547