Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   по-быстрому снести обои (http://forum.oszone.net/showthread.php?t=300775)

Опиум 05-06-2015 10:36 2515177

по-быстрому снести обои
 
Подскажите, плиз, как по-быстрому корректно батником (или wsh) снести обои на рабочем столе?
Или самый лучший способ тереть переменную wallpaper в HKEY_CURRENT_USER\Control Panel\Desktop ?

Нужно, чтобы после запуска был просто, например синий фон)

greg zakharov 05-06-2015 19:28 2515345

В зависимости какая система. Если это ХР, то можно обойтись и батником, оставив пустым значение Wallpaper в указанном вами разделе реестра, а чтобы изменения немедленно вступили в силу нужно будет добавить:
Код:

rundll32 user32.dll,UpdatePerUserSystemParameters
. В более поздних системах команда выше не работает, так что лучше использовать PowerShell, тем более, что с его помощью можно устанавливать не только синий фон, например:
Код:

if ([String]::IsNullOrEmpty(($wp = (gp 'HKCU:\Control Panel\Desktop').Wallpaper))) {
  Add-Type -AssemblyName System.Drawing
 
$asm = Add-Type -MemberDefinition @'
  [DllImport("user32.dll")]
  [return: MarshalAs(UnmanagedType.Bool)]
  public static extern Boolean SetSysColors(
      Int32    cElements,
      Int32[]  lpaElements,
      UInt32[] lpaRgbValues
  );
'@ -Name Background -NameSpace Desktop -PassThru
 
  [Int32[]]$elm = 1
  [Int32[]]$val = [Drawing.ColorTranslator]::ToWin32(
    [Drawing.Color]::Lime
  )
 
  $asm::SetSysColors($elm.Length, $elm, $val)
}

Вообще, с PowerShell можно много чего с Рабочим столом сотворить.


Время: 21:33.

Время: 21:33.
© OSzone.net 2001-