Làm cách nào để đặt nền màn hình trên Windows từ tập lệnh?


14

Trên X Windows, tôi đã có một đoạn mã nhắc nhở 'báo động im lặng "thú vị sẽ thay đổi màu cửa sổ gốc (nền) của tôi thành màu đỏ đặc, chỉ trong vài giây một vài phút trước khi thay đổi lại. XP?

Tôi đang nghĩ một số loại tác vụ theo lịch trình sử dụng cscript để đặt khóa đăng ký ( HKEY_CURRENT_USER\Control Panel\Desktop). Tuy nhiên, những nỗ lực của tôi dường như không có tác dụng. Tôi phải làm gì để báo hiệu để đọc các mục đăng ký đó và vẽ lại màn hình nền?

Câu trả lời:


8

Điều này không thay đổi nền thông qua dòng lệnh. Chỉ cần lưu nó dưới dạng một tập tin bat. Sử dụng bmp hoặc bạn sẽ phải làm mới. Cũng đặt hình nền được kéo dài. Nếu bạn lấy ra dòng hình nền, nó sẽ tự động được căn giữa.

@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

Bạn có thể phải xóa HKCU\Control Panel\Desktop\TranscodedImageCachetrước khi cập nhật.
Michel de Ruiter

Hình nền có phải ở trên máy tính cục bộ không hoặc có thể ở trên một máy tính khác trên mạng như \ server \ share \ Wallpaper.bmp không?
Ricardo Bohner

6

Tôi nghĩ rằng một khi bạn sửa đổi cài đặt hình nền trong sổ đăng ký, bạn chỉ cần chạy

RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters 

từ dòng lệnh và những thay đổi sẽ có hiệu lực. Bạn cần chắc chắn rằng hình ảnh của bạn là một tệp bmp.

Trong thực tế, tôi chỉ thử điều này bằng cách tạo một tệp bmp có kích thước máy tính để bàn có màu đỏ. Tôi đã thay đổi // HKCU / bảng điều khiển / màn hình nền / khóa hình nền để chứa tên đường dẫn đầy đủ cho bitmap này. Tôi đã chạy lệnh trên từ dòng lệnh và máy tính để bàn đổi thành bmp màu đỏ mà tôi vừa tạo


hoạt động tốt đối với tôi để xóa hình ảnh, nhưng khi tôi cố gắng thay đổi màu Nền trong "HKCU \ Control Panel \ Colors \ Background" thì không được.
Peter Hahndorf

4

Đây là một lựa chọn. Tạo một ứng dụng Console nhỏ với SharpDevelop. Đặt mã này vào Programs.cs. Tôi gọi ứng dụng là "CWP"; Thay đổi hình nền. Nó chỉ mất một tham số trên dòng lệnh: tên tệp. Đã thử nghiệm trên Windows 7 Ultimate 64-bit với .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] );
                }
            }
        }
    }

1

điều này không thú vị bằng việc thực sự dành thời gian viết mã, nhưng có một hệ thống khá hữu ích được gọi là bginfo nhúng thông tin vào nền của máy tính để bàn. nó khá cấu hình với tất cả các loại tùy chọn dòng lệnh. không, tôi đã không viết nó


0

Đối với Windows 7, nó hoạt động ngay cả trong các khu vực hạn chế !! ;) Thay thế đường dẫn vị trí hình ảnh của bạn bằng

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

0

Phương thức đăng ký không hoạt động mọi lúc, đặc biệt nếu ảnh không ở định dạng bmp để bạn có thể thử phương pháp của tôi. Nó chỉ đơn giản là mở hình ảnh bạn muốn bằng trình xem ảnh windows và sử dụng phím tắt để đặt hình ảnh làm hình nền máy tính của bạn.

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"

Đây là tập lệnh vbs nhưng bạn có thể sử dụng cùng một phương thức bằng cmd

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.