Bagaimana cara mengatur latar belakang desktop pada Windows dari skrip?

14

Di X Windows saya memiliki skrip pengingat 'silent-alarm "yang akan mengubah warna (latar) window root saya menjadi merah pekat, hanya beberapa detik beberapa saat sebelum mengubahnya kembali. Apakah ada cara untuk melakukan ini untuk Windows XP?

Saya sedang memikirkan semacam tugas terjadwal yang menggunakan cscript untuk mengatur kunci registri ( HKEY_CURRENT_USER\Control Panel\Desktop). Namun usaha saya tampaknya tidak berpengaruh. Apa yang harus saya beri tanda untuk membaca entri registri tersebut dan menggambar ulang desktop?

gronostaj
sumber

Jawaban:

8

Ini mengubah latar belakang melalui baris perintah. Simpan saja ini sebagai file kelelawar. Gunakan bmp atau Anda harus menyegarkan. Juga mengatur wallpaper yang akan diregangkan. Jika Anda menghapus garis wallpaperyle itu akan otomatis terpusat.

@echo off
reg add "HKCU\control panel\desktop" /v wallpaper /t REG_SZ /d "" /f 
reg add "HKCU\control panel\desktop" /v wallpaper /t REG_SZ /d "C:\[LOCATION OF WALLPAPER HERE]" /f 
reg delete "HKCU\Software\Microsoft\Internet Explorer\Desktop\General" /v WallpaperStyle /f
reg add "HKCU\control panel\desktop" /v WallpaperStyle /t REG_SZ /d 2 /f
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters 
exit
Alex
sumber
Anda mungkin harus menghapus HKCU\Control Panel\Desktop\TranscodedImageCachesebelum memperbarui.
Michel de Ruiter
Apakah wallpaper harus di komputer lokal atau dapat di komputer lain di jaringan seperti \\ server \ share \ wallpaper.bmp?
Ricardo Bohner
6

Saya pikir begitu Anda mengubah pengaturan wallpaper di registri, Anda hanya perlu menjalankan

RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters 

dari baris perintah dan perubahan harus diberlakukan. Anda perlu memastikan bahwa gambar Anda adalah file bmp.

Bahkan, saya baru saja mencoba ini dengan membuat file bmp berukuran desktop yang semuanya berwarna merah. Saya mengubah // HKCU / control panel / desktop / wallpaper key untuk memuat pathname lengkap ke bitmap ini. Saya menjalankan perintah di atas dari baris perintah dan desktop berubah menjadi bmp merah yang baru saja saya buat

Menandai
sumber
berfungsi dengan baik bagi saya untuk menghapus gambar, tetapi ketika saya mencoba untuk mengubah warna Latar Belakang di "HKCU \ Control Panel \ Colors \ Background" itu tidak melakukannya.
Peter Hahndorf
4

Ini ada satu pilihan. Buat Aplikasi Konsol kecil dengan SharpDevelop. Masukkan kode ini ke dalam Programs.cs. Saya menyebut aplikasi "CWP"; Ubah wallpaper. Dibutuhkan hanya satu parameter pada baris perintah: nama file. Diuji pada Windows 7 Ultimate 64-bit dengan .bmp -file.

    /*
     * Created by SharpDevelop.
     * Date: 21.9.2012
     * Time: 16:13
     */
    using System;
    using System.Data;
    using System.Text;
    using System.Runtime.InteropServices;

    namespace cwp
    {

       class Program
        {
           [DllImport("user32.dll")]
           public static extern Int32 SystemParametersInfo(
               UInt32 action, UInt32 uParam, String vParam, UInt32 winIni);

            public static readonly UInt32 SPI_SETDESKWALLPAPER  = 0x14;
            public static readonly UInt32 SPIF_UPDATEINIFILE    = 0x01;
            public static readonly UInt32 SPIF_SENDWININICHANGE = 0x02;

            public static void SetWallpaper(String path)
            {
                Console.WriteLine("Setting wallpaper to '" + path + "'");
                SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, path,
                    SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
            }

            public static void Main(string[] args)
            {
                if (args.Length >= 1)
                {
                    SetWallpaper( args[0] );
                }
            }
        }
    }
Penerangan cahaya
sumber
1

ini tidak sekeren menghabiskan waktu menulis kode, tapi ada util sistem yang cukup berguna bernama bginfo yang menanamkan info ke latar belakang desktop. itu cukup dapat dikonfigurasi dengan segala macam opsi baris perintah. tidak, saya tidak menulisnya.


sumber
0

Untuk Windows 7, ini berfungsi bahkan di area terbatas !! ;) Ganti jalur lokasi gambar Anda dengan

C: \ Users \ 1509967 \ Desktop \ hi.jpg

reg add "HKEY_CURRENT_USER\control panel\desktop" /v wallpaper /t REG_SZ /d "" /f
reg add "HKEY_CURRENT_USER\control panel\desktop" /v wallpaper /t REG_SZ /d C:\Users\1509967\Desktop\hi.jpg /f
reg add "HKEY_CURRENT_USER\control panel\desktop" /v WallpaperStyle /t REG_SZ /d 2 /f
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
pause
exit
Anand Varkey Philips
sumber
0

Metode registri tidak berfungsi sepanjang waktu terutama jika gambarnya tidak dalam format bmp sehingga Anda dapat mencoba metode saya. Cukup buka gambar yang Anda ingin menggunakan jendela photo viewer dan gunakan pintasan keyboard untuk mengatur gambar sebagai wallpaper desktop Anda.

Dim wShell
set wShell = createobject("Wscript.shell")
wShell.Run "cmd /c start " & Your photo path here,0,True

do
     wscript.sleep 100
loop until wShell.appactivate("Windows Photo Viewer") = true

wShell.Sendkeys  ("+{F10}")
WScript.Sleep 100
wShell.Sendkeys  "k"
wShell.Exec "taskkill /im dllhost.exe"

Ini adalah skrip vbs tetapi Anda dapat menggunakan metode yang sama menggunakan cmd

TahaEltahawy
sumber