理想的には、バッチファイルまたはVBスクリプトを使用してこれを実行できるようにしたいので、1日のさまざまな時間に実行するようにスケジュールできます(夜の暗い壁紙と明るい壁紙)日の壁紙)。
これを実行できる多くのアプリケーションを認識していますが、必要なアプリケーションのみをバックグラウンドで実行し続けることを好みます。
スケジュールされたタスクを、私が一緒にハッキングしたこの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
編集:ジョンの答えはあなたに完全なスクリプトを示しています。私の+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ファイル自体に関しては、これらはあなたが求めている設定です:
1つ目は、壁紙画像へのフルパスを取得します。 2番目は整数です0 =中央、1 =タイル、2 =引き伸ばされています。
ジョンのスクリプトにマイナーな調味料を追加しようとしています。私は、スクリプトが時間帯に応じて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を強制終了します。
これが「すぐに使える」小さなVBSプログラムです。これらすべてのコマンドを収集します(「ランダム化」VBSコマンドを使用してディレクトリ内のランダムな画像ファイルを選択し、「UpdatePerUserSystemParameters」を使用してWindowsの壁紙を更新します+ Windowsを更新します「WallpaperStyle」レジストリ)。
また、.JPG画像ファイル(.BMPファイルだけでなく)でも機能します。これは非常に便利です...
VBスクリプトのソースコードは http://sites.google.com/site/sharerandomwallpapers/ ありがとうございます。