Изменение фона

А точнее, изменение фона у экрана входа в Windows 7, экрана блокировки, экрана смены пользователя, но вообщем Вы меня поняли, а если кто не понял, то вот:

winstart1 300x204 Изменение фона

Процесс смены фона вручную описан в этом источнике, но нас интересует, как реализовать это программным способом.

Что мы должны знать?

Но, если хотим, то можем реализовать смену формата и сжатие картинки, но я этого делать не стал.

Остальное, пометил в коде:

Imports System.IO
Public Class Form1
    Dim path_ As String = Environment.GetFolderPath(Environment.SpecialFolder.System) & "\oobe\info\backgrounds" ' путь, где будет находиться картинка
    Dim file_ As String = path_ & "\backgroundDefault.jpg"
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        My.Computer.Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background", _
                                      "OEMBackground", 1, Microsoft.Win32.RegistryValueKind.DWord) ' Изменяем значение в реестре
        If Directory.Exists(path_) = False Then Directory.CreateDirectory(path_) ' создаем папку
        Dim OPF As New OpenFileDialog
        With OPF
            .Filter = "Only JPG|*.jpg"
            .FileName = Nothing
            If .ShowDialog = DialogResult.OK Then
                Dim inf As New FileInfo(.FileName)
                 'сравниваем размер, если меньше, то копируем картинку в созданную папку (если картинка там уже есть, то перезаписываем TRUE)
                If (inf.Length / 1024) < 256 Then
                    inf.CopyTo(file_, True)
                    MsgBox("Готово")
                End If
            End If
        End With
    End Sub
End Class

Результат:

winstart2 300x204 Изменение фона

Если что не понятно или где допустил ошибку - стучите.

Загрузить проект + картинка

  Метки: , , , ,
  Евгений
  Просмотров: 4 575
  Запись опубликована в 11:18

Есть что сказать? Тогда действуй!