2011-01-31 4 views
2

Я пишу программу в VB.NET, которая должна получить путь к обоям текущего пользователя. Кто-нибудь знает о методе, который это сделает?Получение обоев текущего пользователя в VB.NET

+0

Я действительно надеюсь, что нет - также прочитать http://devcity.net/Articles/119 /1/vb2005_wallpaper.aspx – asawyer

ответ

2

Вы можете прочитать текущие обои из реестра. Нет необходимости в каких-либо вызовах API. Вот код, чтобы сделать это

Private Function GetCurrentWallpaper() As String 
    ' The current wallpaper path is stored in the registry at HKCU\Control Panel\Desktop\WallPaper 
    Dim rkWallPaper As RegistryKey = Registry.CurrentUser.OpenSubKey("Control Panel\Desktop", False) 
    Dim WallpaperPath As String = rkWallPaper.GetValue("WallPaper").ToString() 
    rkWallPaper.Close() 
    ' Return the current wallpaper path 
    Return WallpaperPath 
End Function 
2

Вы должны pinvoke SystemParametersInfo() с SPI_GETDESKWALLPAPER. Это возвращает путь к файлу растрового изображения обоев. Посетите pinvoke.net для необходимых деклараций.

+0

wow я знал об этой функции в C++, но понятия не имел, что вы можете использовать ее в VB.NET! Действительно сложная реализация, хотя –

+1

Yup, члены команды Visual Basic больше не находятся в программе защиты свидетелей. –

3

Я знаю, что это довольно поздно, но для кого-либо еще ... Если фон рабочего стола (обои) картина (не сплошной цвет), вы можете найти текущее изображение в каталог:

"C: \ Users \ {имя пользователя} \ AppData \ Roaming \ Microsoft \ Windows \ Themes \"

Смежные вопросы