2014-10-18 73 views
0

我试图刷新桌面,试过这个,刷新桌面 - VB.NET

Private Declare Function SHChangeNotify Lib "Shell32.dll" (ByVal wEventID As Long, 
ByVal uFlags As Long, ByVal dwItem1 As Long, ByVal dwItem2 As Long) As Long 

call SHChangeNotify(&H8000000&, &H0, vbNullString, vbNullString) 

但它给我的错误

enter image description here

什么是刷新桌面正确的方法是什么?

+1

是PInvoke的似乎对.NET正确犯规。请参阅[SHChangeNotify](http://pinvoke.net/default.aspx/shell32/SHChangeNotify.html) – Plutonix 2014-10-18 16:06:00

+1

这是编辑的代码?该调用需要在子/程序 – 2014-10-18 16:08:15

+0

Shell32.dll在win8中运行。它运行在XP和WIN7? – user198989 2014-10-18 16:12:09

回答

0

你需要调用SHCangeNotify(& H8000000,& H0,没什么,没什么)从一个方法中,例如:

Public Class example 

    Private Declare Function SHChangeNotify Lib "Shell32.dll" (ByVal wEventID As Long, _ 
                   ByVal uFlags As Long, _ 
                   ByVal dwitem1 As Long, _ 
                   ByVal deitem2 As Long) As Long 

    Private Sub refreshWindow() 

    SHCangeNotify(SHChangeNotify(&H8000000, &H0, Nothing, Nothing) 

    End Sub 

End Class