Как поставить обои через Visual Basic?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VladLexus
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 12.04.2005 (Вт) 8:53

Как поставить обои через Visual Basic?

Сообщение VladLexus » 12.04.2005 (Вт) 8:57

Я пытался поставить обои с помощью VB через SystemParametrsInfo (SPI_SETDESKWALLPAPER,0,путь к обоям,SPIF_UPDATEINIFILE); но обои на рабочем столе просто исчезают. Даже если обновить - все равно ничего.
Хелп!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.04.2005 (Вт) 9:35

Функцию объявил как?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.04.2005 (Вт) 9:42

Active Desktop выключен?
Lasciate ogni speranza, voi ch'entrate.

VladLexus
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 12.04.2005 (Вт) 8:53

Сообщение VladLexus » 12.04.2005 (Вт) 16:07

Сначала в модуле
Public 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
Плюс объявил константы:
Public Const SPIF_UPDATEINIFILE = &H1
Public Const SPI_SETDESKWALLPAPER = 20
Public Const SPIF_SENDWININICHANGE = &H2
Естественно, из WinApi.
Затем по нажатию кнопки (точнее, ссылке в меню) уже в форме:
SystemParametersInfo 20, 0, "C:\Screenshot\wallst.bmp", &H1
И на всякий случай добавил
SystemParametersInfo 20, 0, Nil, &H2
Чтобы обновился раб. стол.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.04.2005 (Вт) 17:12

Интересно, почему не рухнуло нафиг? :)

При таком объявлении в вызове ставь не "C:\Screenshot\wallst.bmp", а byval "C:\Screenshot\wallst.bmp".


И ышшо, зачем ты объявляешь константы, если потом используешь не их, а их значения? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 12.04.2005 (Вт) 20:53

И причем тут Nil? Это же Delphi-шная штука :) В VB нулевой указатель обозначается как ByVal 0&, а пустая строка - как vbNullString.
Моду создают модоки, а распространяют модозвоны.

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 13.04.2005 (Ср) 7:09

И причем тут Nil?

Вот к чему приводит не использование Option Explicit.
الفيجوال بيسك الرابح

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 13.04.2005 (Ср) 7:44

Короче:

Код: Выделить всё

'Сначала в модуле
Public 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
'Плюс объявил константы:
Public Const SPIF_UPDATEINIFILE = &H1
Public Const SPI_SETDESKWALLPAPER = 20
Public Const SPIF_SENDWININICHANGE = &H2

'Естественно, из WinApi.
'Затем по нажатию кнопки (точнее, ссылке в меню) уже в форме:
SystemParametersInfo SPI_SETDESKWALLPAPER, ByVal &0, ByVal "C:\Screenshot\wallst.bmp", &H1
'И на всякий случай добавил
SystemParametersInfo SPI_SETDESKWALLPAPER, ByVal &0, ByVal &0, &H2
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

VladLexus
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 12.04.2005 (Вт) 8:53

Сообщение VladLexus » 15.04.2005 (Пт) 4:21

Да мне приятель помогал, он только на Дельфи работает.
Ну, спасибо в любом случае.

VladLexus
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 12.04.2005 (Вт) 8:53

Сообщение VladLexus » 18.04.2005 (Пн) 14:54

М-да, кстати, если кто будет делать то же самое - картинка в jpg формате не встанет на рабочий стол. Нужно сначала перевести ее в bmp через SavePicture.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 133

    TopList