powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Программный способ смены обоев в Win 98/XP.
6 сообщений из 6, страница 1 из 1
Программный способ смены обоев в Win 98/XP.
    #34364680
Pavel Kilevatyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня.

Тут пришла идейка, сделать небольшой сюрприз к 8-му марта прекрасной половине конторы. Естественно в дополнении к подарку.
Идея такая: 7 числа с утра поменять умолчательные обои на рабочих столах дам.

К сожалению в Win я не силен, как удаленно заменить - плохо себе представляю.
Основные требования - простота и надежность.

В голове крутится такая схема, на сервере в расшаренной папке создается флаговый файл, содержащий сведения о разрешении\запрете сменить обоину.
Флаг переключается в нужный режим по крону, например в 00:00 7 марта.

Теперь самое непонятное как сменить или принудительно установить обоину (если обои не установленны) на машине пользователя (Win98, WinXP). На каждой машине есть доступ к бюджету администратора, но нет пароля конечного пользователя. То есть сейчас стоит полторы проблемы:
1. Как программно сменить обоину пользователю.
1.5. Как запустить замену картинки от имени вошедшего пользователя.

Для решения 1, можно использовать утилиту display из пакета ImageMagic, боюсь есть более простые способы. Если не тяжело - поделитесь.
Для 2 в случае 98 можно прописаться в Пуск\Программы\Автозапуск конкретного пользователя для XP я не уверен в результате (используется FAT32 и NTFS).
Может подскажете менее громоздкую схему?
...
Рейтинг: 0 / 0
Программный способ смены обоев в Win 98/XP.
    #34364768
madvet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заходишь под админом, с помощью какой-нибудь программы подбираешь пароли пользователей (обычно дамы не используют 20-значные пароли со спецсимволами :)) Потом загружаешься, запускаешь свою программу, которая будет запускаться при старте окон, тихо сидеть и ждать своего часа, при наступлении которого менять обои. Программу такую несложно самому написать. Если я все правильно понял :)
...
Рейтинг: 0 / 0
Программный способ смены обоев в Win 98/XP.
    #34364809
madvet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну про подбор паролей это я загнул!
...
Рейтинг: 0 / 0
Программный способ смены обоев в Win 98/XP.
    #34365923
Pavel Kilevatyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может кто подскажет скрипт для смены обоев, работающий в Win98 и WinXP?
Вот это:
Код: plaintext
ChangeWallpaper "c:\windows\Clouds.bmp", "True"
Не работает под Win98
...
Рейтинг: 0 / 0
Программный способ смены обоев в Win 98/XP.
    #34367992
Pavel Kilevatyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, порешал.

Скрипт приведенный в листинге запускает утилиту wallche.exe (см в Гугле) с параметром 3 (растянуть на весь экран). Такой подход позволяет использовать картинки одного размера для любых разумных разрешений экрана.
Пара чисел 6 и 17 - граница срабатывания скрипта в днях, 3 - номер месяца срабатывания.

Скрипт предполагает, что картинки находятся в одной папке и имеют вид <Номер картинки>.jpg. Если не требуется выводить случайную картинку, скрипт можно упростить. В данном случае при удовлетворительной дате скрипт устанавливает одну из 49 картинок. Мне кажется это наиболее дешевый способ установить 15 тёткам разные картинки с приемлемой вероятностью.

Для установки скрипта в систему нужно импортировать файл реестра вида:
Код: plaintext
1.
2.
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
"Wallpaper"="<путь к скрипту на сервере>wallpaper.vbs"
Тем самым прописав запуск для всех пользователей.
Листинг wallpaper.vbs:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Randomize
Dim oShell
if   6  < Mid(Date,  1 ,  2 ) and  17  > Mid(Date,  1 ,  2 ) and  3  =  Mid(Date,  4 ,  2 )Then 
   aFile =  "<Путь к картинкам>"+cstr(Int (( 49 *RND)+ 1 ))+".jpg"
   Set oShell = WScript.CreateObject ("WScript.shell")
   oShell.run "\\sv\Public\wallche.exe 3"+aFile,  1 , true
   Set oShell = Nothing	
end if
...
Рейтинг: 0 / 0
Программный способ смены обоев в Win 98/XP.
    #34368063
Паля
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
HRESULT hr;
IActiveDesktop *pActiveDesktop;

//Create an instance of the Active Desktop
hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER,
                      IID_IActiveDesktop, (void**)&pActiveDesktop);

//Insert code to call the IActiveDesktop methods

pActiveDesktop->SetWallpaper( "c:\wp.bmp", NULL)

// Call the Release method
pActiveDesktop->Release();
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Программный способ смены обоев в Win 98/XP.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]