回答:
これにより、コマンドラインから背景が変更されます。これをbatファイルとして保存するだけです。bmpを使用するか、更新する必要があります。また、壁紙を引き伸ばすように設定します。wallpaperstyle行を削除すると、自動的に中央揃えになります。
@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
レジストリの壁紙設定を変更したら、単に実行する必要があると思います
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
コマンドラインから変更を有効にします。画像がbmpファイルであることを確認する必要があります。
実際、デスクトップサイズのbmpファイルをすべて赤で作成して、これを試しました。// HKCU / control panel / desktop / wallpaperキーを変更して、このビットマップへのフルパス名を含めました。コマンドラインから上記のコマンドを実行すると、デスクトップが作成したばかりの赤いbmpに変わりました
1つのオプションがあります。SharpDevelopで小さなコンソールアプリを作成します。このコードをPrograms.csに配置します。アプリを「CWP」と呼びます。壁紙を変更します。コマンドラインで必要なパラメータは、ファイル名のみです。Windows 7 Ultimate 64ビットで.bmpファイルを使用してテスト済み。
/*
* 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] );
}
}
}
}
これは実際にコードを書く時間を費やすほどクールではありませんが、デスクトップの背景に情報を埋め込むbginfoという非常に便利なシステムユーティリティがあります。あらゆる種類のコマンドラインオプションを使用して、かなり構成可能です。いいえ、書きませんでした。
Windows 7の場合、制限されたエリアでも動作します!! ;)画像の場所のパスを置き換えます
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
特に画像がbmp形式でない場合は、レジストリメソッドが常に機能しないため、私のメソッドを試すことができます。Windowsフォトビューアーを使用して目的の画像を開き、キーボードショートカットを使用して画像をデスクトップの壁紙として設定します。
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"
これはvbsスクリプトですが、cmdを使用して同じ方法を使用できます
HKCU\Control Panel\Desktop\TranscodedImageCache
更新する前に削除する必要がある場合があります。