在VB6和VB.net中设置桌面墙纸

王朝vb·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在VB6中设置墙纸

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

Const SPI_SETDESKWALLPAPER = 20

Const SPIF_SENDWININICHANGE = &H2

Const SPIF_UPDATEINIFILE = &H1

Private Sub Command1_Click()

re = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\Test.BMP", 0)

End Sub

在VB.NET 2003中设置墙纸

Private Const SPI_SETDESKWALLPAPER As Integer = &H14

Private Const SPIF_UPDATEINIFILE As Integer = &H1

Private Const SPIF_SENDWININICHANGE As Integer = &H2

Private Declare Auto Function SystemParametersInfo Lib "user32.dll" ( _

ByVal uAction As Integer, ByVal uParam As Integer, _

ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer

'设置墙纸

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\Test.BMP", 0)

End Sub

'取消设置

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "", 0)

End Sub

在VB.NET 2005中设置墙纸:

Private Const SPI_SETDESKWALLPAPER As Integer = &H14

Private Const SPIF_UPDATEINIFILE As Integer = &H1

Private Const SPIF_SENDWININICHANGE As Integer = &H2

Private Declare Auto Function SystemParametersInfo Lib "user32.dll" ( _

ByVal uAction As Integer, ByVal uParam As Integer, _

ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer

''' <summary>

''' 设置墙纸

''' </summary>

Private Sub SetWallpaper()

'得到我的图片目录中的文件,在VB2005中,利用My.Computer简单得到我的图片目录

Dim imgLocation As String = My.Computer.FileSystem.CombinePath(My.Computer.FileSystem.SpecialDirectories.MyPictures, "MyImage.bmp")

Try

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, imgLocation Or SPIF_SENDWININICHANGE)

Catch Ex As Exception

MsgBox("设置过程中出现错误: " & Ex.Message)

End Try

End Sub

参考:

SystemParametersInfo函数的定义和参数:

声明如下:

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

其中各参数的意义如下表:

参数:

意义

uAction

Long,指定要设置的参数。参考uAction常数表

uParam

Long,参考uAction常数表

lpvParam

Any,按引用调用的Integer、Long和数据结构。

fuWinIni

这个参数规定了在设置系统参数的时候,是否应更新用户设置参数

下面是部分uAction参数,和使用它们的方法:

参数

意义和使用方法

6

设置视窗的大小,SystemParametersInfo(6, 放大缩小值, P, 0),lpvParam为long型

17

开关屏保程序,SystemParametersInfo(17, False, P, 1),uParam为布尔型

13,24

改变桌面图标水平和垂直间距,uParam为间距值(像素),lpvParam为long型

15

设置屏保等待时间,SystemParametersInfo(15, 秒数, P, 1),lpvParam为long型

20

设置桌面背景墙纸,SystemParametersInfo(20, True, 图片路径, 1)

93

开关鼠标轨迹,SystemParametersInfo(93, 数值, P, 1),uParam为False则关闭

97

开关Ctrl+Alt+Del窗口,SystemParametersInfo(97, False, A, 0),uParam为布尔型

本例中我们选择图片并取得图片的完整路径,然后通过调用API函数,将这幅图设为墙纸,使用的语法为:SystemParametersInfo SPI_SETDESKWALLPAPER, 0, bmpfile, 1

其中SystemParametersInfo表示要设置桌面墙纸,bmpfile是要设置的图片的路径。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航