Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" (ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Const WM_KEYDOWN = &H100
Public Sub RefreshDesktop()
Dim DeskWin As Long
DeskWin = FindWindowEx(0&, 0&, "Progman", vbNullString)
DeskWin = FindWindowEx(DeskWin, 0&, "SHELLDLL_DefView", vbNullString)
DeskWin = FindWindowEx(DeskWin, 0&, "SysListView32", vbNullString)
PostMessage DeskWin, WM_KEYDOWN, &H74, &H3F0001
End Sub
Private Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" (ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Const WM_KEYDOWN = &H100
Public Sub RefreshDesktop()
Dim DeskWin As Long
DeskWin = FindWindowEx(0&, 0&, "Progman", vbNullString)
DeskWin = FindWindowEx(DeskWin, 0&, "SHELLDLL_DefView", vbNullString)
DeskWin = FindWindowEx(DeskWin, 0&, "SysListView32", vbNullString)
PostMessage DeskWin, WM_KEYDOWN, &H74, &H3F0001
End Sub
本文提供了一个使用VBScript刷新Windows桌面的示例代码。通过调用Windows API函数FindWindowEx和PostMessage,该脚本能够定位到桌面窗口并发送模拟按键消息来实现桌面刷新效果。
2277

被折叠的 条评论
为什么被折叠?



