2010-02-17 90 views
3

使用VB.NET可以更改桌面背景嗎?使用VB.NET更改桌面背景

我想更改圖標嗎?

我打算製作一個VB.NET程序,只需點擊一下鼠標,就能自動使Windows XP看起來像Mac一樣。

回答

4
'Steps you will do. 
'Start visual studio 2005 and create a new window project. 
'Set the following properties of the form 


'Text = "Set Wallpaper" 
'Size = 「1024,750」 
'Now drip a picture box control on the form and set its following properties. 


'Size = 「1024,725」 
'Sizemode = 」centerimage」 
'Drop a two button controls on the form and set its following properties as below. 


'First button control. 

'Name = " btgetimage" 
'Text = " Brows For Image" 

'Second button control. 

'Name = " btsetwallpaper" 
'Text = " Set Wallpaper" 

'Now drop an openfiledialog control on the form. 
'Open you code window and import the following namespace. 


Imports System.IO.Directory 


'Now declare the function and variables as below which will use win API's to set the wallpaper. 


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 

Const WallpaperFile As String = "c:\wallpaper.bmp" 


'Make a function as below. 


Friend Sub SetWallpaper(ByVal img As Image) 

Dim imageLocation As String 

imageLocation = My.Computer.FileSystem.CombinePath(My.Computer.FileSystem.SpecialDirectories.MyPictures, WallpaperFile) 

Try 

img.Save(imageLocation, System.Drawing.Imaging.ImageFormat.Bmp) 

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, imageLocation, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE) 

Catch Ex As Exception 

MsgBox("There was an error setting the wallpaper: " & Ex.Message) 

End Try 

End Sub 

'Now in the click event of the first button write the following code to open and get the image. 

OpenFileDialog1.InitialDirectory = "c:\" 

OpenFileDialog1.Filter = "JPG|*.jpg|Bitmap|*.bmp" 

Dim dialogresult As DialogResult = OpenFileDialog1.ShowDialog 

If dialogresult = Windows.Forms.DialogResult.OK Then 

PictureBox1.ImageLocation = OpenFileDialog1.FileName 

btsetwallpaper.Enabled = True 

End If 


'In the click event of the second button write following code to set the wallpaper. 


SetWallpaper(Me.PictureBox1.Image) 

MessageBox.Show("Wallpaper has been changed", "Set Wallpaper", MessageBoxButtons.OK, MessageBoxIcon.Information) 
+1

您是否在http://www.devasp.net/net/articles/display/421.html上發佈了此項[以編程方式更改桌面牆紙]? –

+0

@astander - 如果他做了,它會有所作爲嗎? –

+0

也許只是一點點X-) –

1

試試這個程序:

Imports System 
Imports System.Runtime.InteropServices 

Public Class Desktop 

    Public Shared SPI_SETDESKTOPWALLPAPER As Integer = 20 
    Public Shared SPIF_UPDATEINIFILE As Integer = 1 
    Public Shared SPIF_SENDWININICHANGE As Integer = 2 

    Public Shared Sub Main(ByVal args() As String) 
     If (args.Length = 1) Then 
      SystemParametersInfo(SPI_SETDESKTOPWALLPAPER, 0, args(0), _ 
      (SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)) 
     End If 
    End Sub 

    Private Declare Sub SystemParametersInfo Lib "User32.dll" (ByVal action As Integer, _ 
     ByVal iparam As Integer, ByVal vparam As String, ByVal option As Integer) 

End Class 
1

您可以使用Win32'user32'更改桌面背景。 你需要聲明USER32 PI功能SystemParametersInfo像爲:

Private Declare Function SystemParametersInfo Lib 「user32″ 
Alias 「SystemParametersInfoA」 (ByVal uAction As Integer, ByVal uParam As Integer, 
ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer 

,並調用這個函數與有效參數

,你也可以檢查這個環節,這是學習如何更改桌面背景的好文章vb.net

http://www.authorcode.com/how-to-set-desktop-background-in-vb-net/

0

這是一個簡單而實用的代碼,設置桌面只用一個定時器

Public Class Form1 

    Dim Location As String 

    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Integer, ByVal uParam As Integer, ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer 

    Private Const SETDESKWALLPAPER = 20 
    Private Const UPDATEINIFILE = &H1 

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick 

     Location = ("image directory.jpg") 

     PictureBox1.BackgroundImage = Image.FromFile("C:\Users\Danny\Desktop\Hacker.jpg") 

     PictureBox1.BackgroundImageLayout = ImageLayout.Stretch 

     SystemParametersInfo(SETDESKWALLPAPER, 0, Location, UPDATEINIFILE) 

    End Sub  End Class