web-dev-qa-db-ja.com

スクリプトまたはバッチファイルを介して時刻に応じて壁紙を変更しますか?

時刻に応じて変化する2種類の壁紙(それぞれ6時間と22時間)を用意し、夜を22時間後に1日だけ表示し、日を6時間のみから22時間まで表示したい。

スタンバイ後にこれを実行できるプログラムが見つからなかったので、スクリプトを実行するタスクスケジューラで実現するのは簡単だと思いました。ここで問題になるのは、そのようなスクリプトを実現する方法だけでなく、スクリプトに時間チェックやタスクスケジューラを含めるかどうかです。長時間PCをスタンバイ状態にしておくと何がうまくいくかわかりません。

私はすでに同様の質問からいくつかのスクリプトを試してみて、自分のニーズに合わせてそれらを変更できることを望みましたが、まったく機能しませんでした。

誰か私を助けることができますか? TIA。

9
Patrick

タスクスケジューラを使用してVBscriptを作成し、壁紙を変更します。使用する予定の壁紙ごとにスクリプトを作成します。

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

ファイルをsomething.vbsとして保存し、タスクスケジューラに追加してください。すべてうまくいきました。

また、変更する必要があるときにコンピュータをシャットダウンした場合、壁紙は変更されないことも述べられました。これは間違っています。選択した時間の後の最初の起動時にタスクを実行するように設定できるため、変更する必要がある時間にコンピューターがオフであった場合でも、コンピューターを起動すると設定されます。これを設定するには、特定のタスクのプロパティと設定タブに移動します。ウィンドウの2番目のボックスにチェックを入れて、あなたは出かけます。

このスクリプトは、Windows 8では完全に機能します。スクリプトを短くするために元のスクリプトを少し変更したことに注意してください。

ソース: http://www.ehow.com/facts_7586006_script-change-desktop-background.html

5
Steen Schütt

これは実際には非常に簡単です:

  1. デスクトップの背景を右クリック
  2. 「パーソナライズ」を選択します
  3. 「デスクトップの背景」をクリックします
  4. ボックスに画像をドラッグアンドドロップするか、[参照]を選択して画像を検索します
  5. 両方の画像をチェックして、朝が最初であることを確認してください
  6. 午前12:00まで待機し、[12時間ごとに画像を変更]を選択します
  7. 楽しい!
5
Adam

特定の時間に、またはWindowsで定期的に何かをするように誰かが尋ねるのを見るたびに、 Windowsタスクスケジューラを使用することの理念を私に戻してください。

enter image description here

予定どおりの操作を行うには、2つのタスクを作成する必要があります。各タスクは、スクリプトまたはコマンドを実行して、特定の時間に壁紙から別の壁紙に変更するようにスケジュールされています。これらのコマンドは、Windowsの壁紙を自動的に自動的に変更できる必要があります。これを行う最も簡単な方法は、Windowsレジストリを使用することです。ここでは HOWTOを見つけることができます:次のレジストリキーを使用してデスクトップの壁紙を変更します

HKEY_CURRENT_USER\Control Panel\Desktop\WallPaper

したがって、レジストリに値を設定するタスクを作成すれば、サードパーティのアプリをインストールする必要なく、自動的に値を変更できます。

1
Diogo

私はこれをかなりの間行うつもりでしたが、OSを再インストールした後、構成を好きなように調整しながらトピックに戻ってきました。

プロジェクトを調べた後、スライドショー構成ファイル(%APPDATA%/ Microsoft/Windows/Themes/slideshow.ini)を見つけました。このファイルには、「ImagesRootPIDL =」という行が含まれています。これは、グーグルの少し後に、文字、数字、および記号の次の大きな文字列が実際のものであることを示します。パスを使用するよりも低いレベル。

とにかく、短い話ですが、スライドショーのディレクトリに画像が追加されたとき、またはスライドショーが新しいディレクトリに変更されたときに、このファイルが変更されたように見えます。したがって、私の解決策は、バッチファイルを1日に2回書き込み、%TIME%変数に応じて、各スライドショーの.iniを構成フォルダーにコピーし、それらに昼または夜を追加してから、.iniファイルを適切なスライドショーの.iniファイルを含むthemesフォルダー。

私のソリューションの欠点の1つは、バッチファイルが常に実行されていることです。ただし、スケジュールされたタスクの方が実装が適切であり、その問題に対処できると思いますが、実際には自分自身とのみ対話するものを構築したいと思います。これまでのところ、スライドショーを切り替えるためにコンピュータまたはエクスプローラを再起動する必要はありません。スライド間の時間が経過した後、次のスライドショーにロールオーバーするだけです。私はまだそれを失敗させることを試みていませんが、2週間実行することはデバッグ期間の十分なようです。

私はWindows OSを初めて使用するので、明らかなステートメントが多すぎるか、数回クリックするだけで簡単に実行できます。この種のことは、OSの内部の仕組みを学ぶ最も速い方法だと思いますが、40の奇数行のバッチの巨像ではなく、Linux bashスクリプトでこれを約5行で書いたと思います。

1
ghost

悲しいことに、実際にログアウトして再度ログインしなくてもこれを実行できるWindowsに組み込まれているものはないと思います。壁紙はレジストリを介して制御できるため、バッチファイルを作成してレジストリエントリを変更できます-しかし、壁紙自体への変更は、ログアウトして再度ログインするまで表示されません。次のようなサードパーティのアプリを試すことができます。 http://download.cnet.com/Automatic-Wallpaper-Changer/ 3000-2336_4-10560884.html

お役に立てれば。

0
PnP