2016-09-14 2 views
1

Windows 10のパーソナライズ設定を変更する場合があります。 Windows 10:新しいパーソナライゼーション設定をPowerShellですぐにアクティブにするにはどうすればいいですか?

適切なレジストリエントリを手動でRegEditで変更するか、Powershellコマンド "New-ItemPropery"で適切なパラメータを変更してください。 私の経験:レジストリの新しいパーソナライゼーション設定 - すべてが正しく変更されたことをRegEditで確認できます。次のWindows再起動またはWindowsユーザーログアウト+ログイン後に有効です。 Btw、私は、パーソナライゼーションの設定を単純に変更した後、レジストリの変更を検出するために、無料のツール "WhatChanged"を使用しています。 現在、Windowsログアウト+ログインの価格で、バックグラウンドイメージを変更することができます。

ただし、マウスの右クリック後に[パーソナライズ]を選択すると、Windows 10のグラフィカル設定ツールで同じ操作を行うと、パーソナライゼーション設定の変更がすぐに有効になり、つまり背景の画像がすぐに変更されます。

質問:


無料のツールやより良いPowerShellの機能(コール)、または任意の他の無料のソリューションは、私はWindowsのカスタマイズ(およびWindowsデスクトップ)設定の変更が有効に取得することによって、あり、すぐに?


私はWindows10を使用していますが、Win95の、Win98の、W2Kの、WinXP、Win7のための作業があまりにも歓迎されて当然のソリューションの...

理由: 開発スピードを上げるために、私は希望レジストリの変更、つまりWindowsパーソナライゼーションの変更をすぐに「見る」ことができますが、一般的にはサードパーティのソフトウェアもそうです。

私の経験から、他のサードパーティ製ソフトウェアの場合、レジストリ設定がプログラムの開始時に一度だけ読み込まれると、レジストリの変更はソフトウェアの再起動後にアクティブになります。しかし、私はその後も、私はそのためのWindowsログアウト+ログインをしない必要があります...

は心から ロルフ

答えて

2

デスクトップの変更を適用するには、user32.dllのからのWin32 API SystemParametersInfoを呼び出す必要があります。

PowerShellからネイティブWin32 APIを直接呼び出すことはできませんが、System.Runtime.InteropServicesを介してC#から呼び出し、C#アセンブリをPowerShellにインポートできます。次のPowerShellコードは、SystemParametersInfoを呼び出すC#アセンブリを作成します。

Add-Type @" 
namespace Wallpaper { 
    public class Setter { 
     public const int SetDesktopWallpaper = 20; 
     public const int UpdateIniFile = 0x01; 
     public const int SendWinIniChange = 0x02; 

     [System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] 
     private static extern int SystemParametersInfo (int uAction, int uParam, string lpvParam, int fuWinIni); 

     public static void SetWallpaperFile (string path) { 
      SystemParametersInfo(SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange); 
     } 
    } 
} 
"@ 

function Set-Wallpaper { 
    param([Parameter(Mandatory=$true)]$Path) 

    [Wallpaper.Setter]::SetWallpaperFile($Path) 
} 

あなたは、表示スタイルを変更SetWallpaperFileを呼び出す前に、適切なレジストリキーを更新する必要がある場合。たとえば、壁紙のスタイルを「中央」に設定するには:

Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'WallpaperStyle' -Value '1' 
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name 'TileWallpaper' -Value '0' 

デスクトップの壁紙以外の設定を変更する場合も同様です。 SystemParametersInfoのドキュメントを参照してください。もともとhttp://poshcode.org/491

から適応

コード

関連する問題