2012-03-28 4 views
1

Я хочу обновить обои в Windows 7 из командной строки. Я устанавливаю обои через reg.exe add.Обновить обои в win7 через командную строку

rundll32.exe user32.dll,UpdatePerUserSystemParameters не работает (с 1,True или 1,False)

Требования:

  1. Он должен обновить обои немедленно (без ожидания)
  2. Он должен запустить из командной строки
  3. Windows по умолчанию 7 является предпочтительной. Написание программы C++/VB/C# приемлемо, но не так хорошо, как решение win7 cli по умолчанию.
+1

Вам нужно будет расслабить свои (довольно странные) требования. Язык сценариев командной строки недостаточно мощный, чтобы сделать это самостоятельно. –

ответ

0

Сложнее, чем я думал. В зависимости от ваших потребностей вы можете в конечном итоге перезапустить проводник.

taskkill /IM explorer.exe /F 
explorer.exe 

Если вы можете вызвать программу из командной строки, вы также можете посмотреть на How to force Windows desktop background to update or refresh

1

Killing исследователь никогда не является хорошей идеей, попробуйте следующее:

RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True 
+0

Невозможно протестировать Windows 7, но это решение, которое работает на Win10. – dornadigital

0

По крайней мере, на Windows, 7 64-бит, я обнаружил, что команда rundll32.exe работала, но не каждый раз. У меня нет теории о том, почему, но мой обходной путь был .cmd-файлом, который называет его много раз. Он не изящный, но он работает каждый раз. В нашей среде мы запускаем его в фоновом режиме async и невидимым, поэтому тот факт, что он работает около 80 секунд, не имеет значения.

:: Do your stuff to apply the background .reg settings first 
:: Then run UpdatePerUserSystemParameters many times 
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True 
timeout 1 
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True 
timeout 1 
:: Etc. I have about 80 of them 
Смежные вопросы