Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Обои рабочего стола - расположение Добавлено: 17.05.04 12:56  

Автор вопроса:  LamerOnLine | ICQ: 334781088 

Знаю как положить bmp на рабочий стол. А вот как задать метод расположения - по центру, растянуть, замостить?

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Pashenko



ICQ: 176176951 

Вопросов: 14
Ответов: 655
 Профиль | | #1 Добавлено: 17.05.04 13:11
Смотри здесь:
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
HKEY_CURRENT_USER\Control Panel\Desktop\WallpaperStyle

Ответить

Номер ответа: 2
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #2
Добавлено: 17.05.04 13:12

Не пробовал предварительно изменять значения ключа [Desktop] в Win.ini?

Или тебе обязательно через API?

Ответить

Номер ответа: 3
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #3 Добавлено: 17.05.04 14:56

Да мне нужно в реалтайме

Ответить

Номер ответа: 4
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #4
Добавлено: 18.05.04 17:07

Ну так и меняй через WritePrivateProfileString

Ответить

Номер ответа: 5
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #5 Добавлено: 19.05.04 11:46

Да нет, мне надо менять обои в реальном времени. То есть, вызвал функцию - обои сменились. Как через АПИ сменить обои знаю, но вот расположение их на столе зависит от предыдущих настроек. Как их изменять в реальном времени, с обновлением экрана. Пытался изменить их в Wallpaperstyle - нулевой эффект, при вызове АПИ это значение просто обнуляется...

Ответить

Номер ответа: 6
Автор ответа:
 Unguided



Вопросов: 7
Ответов: 19
 Профиль | | #6 Добавлено: 19.05.04 15:00

2 LamerOnLine если все еще надо вот пример:

----

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long

Const SPI_SETDESKWALLPAPER = 20
Const SPIF_UPDATEINIFILE = &H1
Const REG_SZ = 1 ' Unicode nul terminated string
Const HKEY_CURRENT_USER = &H80000001

Function SetStyle(St As Long)
Dim Ret As Long
Dim Tile As String, Style As String

    Select Case St
        Case 0
            Tile = "0"
            Style = "0"
        Case 1
            Tile = "1"
            Style = "0"
        Case 2
            Tile = "0"
            Style = "2"
        Case Else
    End Select
    RegOpenKey HKEY_CURRENT_USER, "Control Panel\Desktop", Ret
    RegSetValueEx Ret, "TileWallpaper", 0, REG_SZ, ByVal Tile, Len(Tile)
    RegSetValueEx Ret, "WallpaperStyle", 0, REG_SZ, ByVal Style, Len(Style)
    RegCloseKey Ret

End Function

Private Sub Form_Click()

'0 - По центру
'1 - Замостить
'2 - Растянуть


    SetStyle (0)
    Sleep (500&;)
    SystemParametersInfo SPI_SETDESKWALLPAPER, 0, "C:\1.bmp", SPIF_UPDATEINIFILE
End Sub
-----

Проверил на WinXPsp1 работало.

Удачи!

Ответить

Номер ответа: 7
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #7 Добавлено: 20.05.04 09:20

Не работает. Может Active Desktop мешает? В свойствах типа все ок, но сам экран не обновляется :(

Ща погляжу еще, мож че упустили.

Ответить

Номер ответа: 8
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #8 Добавлено: 20.05.04 09:24

Все, заработало!

Надо было

SystemParametersInfo SPI_SETDESKWALLPAPER, 0, "C:\1.bmp",SPIF_UPDATEINIFILE

заменить на

SystemParametersInfo SPI_SETDESKWALLPAPER, ByVal 0&, ByVal "C:\1.bmp", True

И все ок!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам