Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Интерфейс - [решено] Обновить картинку рабочего стола через командную строку

Ответить
Настройки темы
Интерфейс - [решено] Обновить картинку рабочего стола через командную строку

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Пытаюсь сделать скрипт обновления картинки рабочего стола, нашел документацию похоже по XP

Код: Выделить весь код
rem fix wallpaper
reg add "HKCU\Control Panel\Desktop" /v "Wallpaper" /t REG_SZ /d "D:\Script\CMD\logo.jpg" /f
rundll32.exe user32.dll,UpdatePerUserSystemParameters ,1 ,True
кажется, параметр в реестр правильный прописывает, но картинка не обновляется на самом рабочем столе

что я делаю не так? система:

Microsoft Windows [Version 6.1.7600]

Отправлено: 09:55, 02-12-2010

 

(*.*)


Сообщения: 36567
Благодарности: 6698

Профиль | Сайт | Отправить PM | Цитировать


Larrikin, explorer убивать пробовали? См. также Как применить тему оформления Windows из командной строки

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 09:58, 02-12-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Moderator


Сообщения: 53514
Благодарности: 15520

Профиль | Отправить PM | Цитировать


[решено] Команда для обновления рабочего стола

Отправлено: 10:27, 02-12-2010 | #3


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Petya V4sechkin:
[решено] Команда для обновления рабочего стола »
в первом варианте не команда, а программа - мне не годится
во втором варианте предлагают RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

кстати, попробовал убрал пробелы, вариант
start rundll32.exe user32.dll,UpdatePerUserSystemParameters,1,True
выдает окно ошибки RunDLL:
Ошибка в user32.dll
Нет точки входа: UpdatePerUserSystemParametrs,1,True

насколько кошерно убивать explorer.exe через taskkill?

такой вариант не меняет картинку хотя explorer умирает и возрождается

Код: Выделить весь код
rem fix wallpaper
reg add "HKCU\Control Panel\Desktop" /v "Wallpaper" /t REG_SZ /d "D:\Script\CMD\komputeriya_logo.jpg" /f
rem start rundll32.exe user32.dll,UpdatePerUserSystemParameters,1,True
taskkill /im explorer.exe /F
start explorer.exe

-------
Larrikin.nm.ru was here...


Последний раз редактировалось Larrikin, 02-12-2010 в 11:20.


Отправлено: 11:08, 02-12-2010 | #4


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


с этим скриптом после перезагрузки картинка меняется, так что похоже прописывается в реестр правильно

осталось добиться, чтобы она применялась без перезагрузки - что нужно сделать?

Такой скрипт вызывает мигание иконок рабочего стола, но картинка всё так же меняется только после двух-трех перезагрузок:
Код: Выделить весь код
rem fix wallpaper
reg add "HKCU\Control Panel\Desktop" /v "Wallpaper" /t REG_SZ /d "D:\Script\CMD\wallpaper.jpg" /f
start d:\Script\CMD\nircmd.exe shellrefresh

rem start rundll32.exe user32.dll,UpdatePerUserSystemParameters,1,True
rem taskkill /im explorer.exe /F
rem start explorer.exe

-------
Larrikin.nm.ru was here...


Последний раз редактировалось Morpheus, 04-12-2010 в 12:34.


Отправлено: 09:50, 03-12-2010 | #5


(*.*)


Сообщения: 36567
Благодарности: 6698

Профиль | Сайт | Отправить PM | Цитировать


Larrikin, положите утилиту NirCmd в D:\Script\CMD\ и не морочьте себе голову Ну либо внятно объясните, что вам мешает это сделать. Понятно, что вы хотите без сторонних утилит. А почему не вы хотите использовать сторонние для решения проблемы?

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 10:08, 03-12-2010 | #6


Новый участник


Сообщения: 7
Благодарности: 2

Профиль | Отправить PM | Цитировать


Larrikin, попробуй вместо:

rundll32.exe user32.dll,UpdatePerUserSystemParameters ,1 ,True

использовать

wallpaper.exe

исходник этого экзешника взят отсюда, там же можно найти уже скомпилированный бинарник:
Код: Выделить весь код
#include <windows.h>
#include <stdio.h>
#include <iostream>
int main(int argc, char **argv)
{
if(argc == 0) return 1;
SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, (PVOID)argv[1], SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );
return 0;
}

Отправлено: 16:09, 20-12-2010 | #7


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, вроде работает.

-------
Larrikin.nm.ru was here...


Отправлено: 16:36, 21-12-2010 | #8



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Интерфейс - [решено] Обновить картинку рабочего стола через командную строку

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - Отправка почты через командную строку Freezet Microsoft Windows 2000/XP 10 18-09-2008 11:31
Интерфейс - [решено] Невозможно поменять картинку рабочего стола transfer Microsoft Windows 2000/XP 11 21-08-2007 21:17
Установка - установка через командную строку Kibor_G Microsoft Windows 2000/XP 14 03-08-2007 18:42
общение через командную строку vilisz Сетевые технологии 10 25-05-2006 16:37
Перзагрузка сервера WIndows  через командную строку dosim Microsoft Windows NT/2000/2003 7 30-11-2004 11:47




 
Переход