当前位置:编程学习 > C#/ASP.NET >>

请教一个Windows7开始菜单的问题,如何才能自动刷新开始菜单?

在Windows7经典风格下,这段代码可以把开始菜单的“开始”两个字改成“你好”。
但修改完之后,开始菜单并不会自动刷新,必须手工按一下Windows键才能把“你好”两个字刷新出来。

请问如何让程序修改完开始菜单的内容后自动刷新出来? 


Public Class Form1
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer

    Private Const WM_SETTEXT = &HC

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim taskbar As Integer
        Dim start As Integer
        taskbar = FindWindow("Shell_TrayWnd", vbNull)
        start = FindWindowEx(taskbar, 0, "Button", vbNullString)

        SendMessage(start, WM_SETTEXT, 0, "你好")
    End Sub
End Class
--------------------编程问答-------------------- 发送一个 WM_PAINT 消息。 --------------------编程问答-------------------- 你把鼠标放在上面是不是也能显示?大概代码改的地方就是菜单弹出时的显示文本吧. --------------------编程问答--------------------
引用 2 楼 cnwin 的回复:
你把鼠标放在上面是不是也能显示?大概代码改的地方就是菜单弹出时的显示文本吧.
--------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
发送一个 WM_PAINT 消息。

向任务栏和开始菜单都发送了WM_PAINT消息,没有效果。
使用UpdateWindow也没有效果。 --------------------编程问答-------------------- [Quote=引用 2 楼 cnwin 的回复:
你把鼠标放在上面是不是也能显示?大概代码改的地方就是菜单弹出时的显示文本吧.
[/Quote]
鼠标放上没有任何变化,非要按下Windows键或者用鼠标点一下开始按钮,文本才会刷新。 --------------------编程问答-------------------- 自己顶一下 --------------------编程问答-------------------- 自己来顶! --------------------编程问答-------------------- 自己来顶!
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,