Смена обоев

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Смена обоев

Сообщение SeT » 15.12.2005 (Чт) 18:01

Охота написать программу, которая меняла бы обои. И у меня 2 вопроса. Как обоину поставить дефолтовой, как сделать, чтобы фон сменился.
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 15.12.2005 (Чт) 18:41

См. статью на www.vbstreets.ru "Пишем программу для смены обоев Windows"
Изображение

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 16.12.2005 (Пт) 12:35

Мдааа. А никак попроще нельзя? Ато батники писать... И нужно, чтобы обои были в jpg формате
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Сообщение AndreyIl » 20.12.2005 (Вт) 10:57

Изменяешь ключи реестра Wallpaper в соответствующих разделах и обновляешь рабочий стол.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 20.12.2005 (Вт) 15:52

Такс... С реестром всё понятно. сделано. Как обновить рабочий стол?
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 20.12.2005 (Вт) 15:53

Шли ему F5! :)
Изображение

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 21.12.2005 (Ср) 10:59

Это понятно. А как?
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 21.12.2005 (Ср) 15:23

Я так понял, что сначала нужно установить фокус на рабочий стол, программно нажать f5, затем возвратить фокус на исходное приложение. Я прав? Если прав, то КАК ЭТО СДЕЛАТЬ?
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Сообщение AndreyIl » 21.12.2005 (Ср) 15:33

Private Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 21.12.2005 (Ср) 15:48

А расписать функцию можешь? Что за что отвечает...
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 21.12.2005 (Ср) 16:10

А SendKeys чем не устраивает?
Изображение

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 21.12.2005 (Ср) 16:57

Да меня хоть чё устроит. Вы мне просто поподробнее напишите.
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 21.12.2005 (Ср) 17:10

SendKeys "{F5}"
Изображение

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 21.12.2005 (Ср) 17:57

Чё-то не прокатывает
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Сообщение AndreyIl » 22.12.2005 (Чт) 9:15

Сначала установи фокус на рабочий стол, а потом шли Ф5.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 22.12.2005 (Чт) 14:39

А как фокус устпновить... Я в ручную на раюочем столе F5 жму, обновление не происходит (вернее обоина не меняется, хотя значения уже другие)
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 22.12.2005 (Чт) 15:40

Значит неправильно меняешь, т. к. при нажатии F5 он должен отрисовать новую.
Изображение

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 23.12.2005 (Пт) 12:08

Меняю правильно. При перезагрузке выдаётся чистый стол (так и надо, я несуществующую обоину потому что указываю), но при F5 ОБОИНА НЕ МЕНЯЕТСЯ!
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 23.12.2005 (Пт) 14:11

Не бойся что не знаешь, бойся что не учишься.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 24.12.2005 (Сб) 14:37

Нафига мне EXE-шник! Мне исходник нужен. Причём не всё, а только касающееся обновления рабочего стола
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

GRS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 186
Зарегистрирован: 29.02.2004 (Вс) 22:23
Откуда: Казахстан, Алматы

Сообщение GRS » 24.12.2005 (Сб) 15:10

Попробуй это:


Код: Выделить всё
Private Const SPI_SETDESKWALLPAPER = 20
Private Const SPIF_SENDWININICHANGE = &H2
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

Private Sub Command1_Click()
  tmp = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Null, SPIF_SENDWININICHANGE)
End Sub


Только вместо Command1_Click свое событие вставляй...
Встану рано утром, выпью чашку ртути... Всё равно я сдохну в этом институте...

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 26.12.2005 (Пн) 17:41

Та-а-ак. Разобрался. теперь обоина нормально ставится, обновляется. Теперь вот какой вопрос. Я хочу, чтобы например обоина менялась через 5 часов. Как это сделать, если у таймера максимум 32 секунды (потому что Integer)?
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 26.12.2005 (Пн) 18:05

Я где -то выкладывал свой таймер, так ему пофиг было какой интервал, поищи по форуму.
Изображение

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 26.12.2005 (Пн) 18:22

:shock: Ставь таймер, скажем, на 10 секунд. По таймеру делай прирост какого-нить счетчика (хоть double). При достижении определенного значения делай что хош (меняй обои). И счетчик сбрасывай в 0. Азы...
То, что для одних константа, для других только переменная...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 26.12.2005 (Пн) 19:11

Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 114

    TopList