我也做过,在vb5下编译
2000 98 nt4全通过

解决方案 »

  1.   

    以下是我的部分代码,win2k下调试通过,(最小化缩入托盘,单击托盘图标恢复窗口),但是在win9x下就不行了,
    最小化可以缩入托盘,但单击托盘图标却无法恢复窗口.各位帮忙看看,是不是2000和9x下api有不同呢?
    Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" _
     (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
    Private Type NOTIFYICONDATA
        cbSize As Long        '------- 大小24+64=88
        hWnd As Long        '---------句柄
        uId As Long          '--------标志: 增加0,修改1,删除2
        uFlags As Long        '-------常数&H1 or &H2 or &H4
        ucallbackMessage As Long '-----常数 &H200 (表示响应mouse_move)
        hIcon As Long          '------图标
        szTip As String * 64      ' ---提示语
    End Type
    Dim t As NOTIFYICONDATA
    Private Const NIM_ADD = &H0
    Private Const NIM_MODIFY = &H1
    Private Const NIM_DELETE = &H2
    Private Const WM_MOUSEMOVE = &H200
    Private Const NIF_MESSAGE = &H1
    Private Const NIF_ICON = &H2
    Private Const NIF_TIP = &H4
    Private Const WM_NCLBUTTONDOWN = &HA1
    Private Sub Form_Resize()
    If Me.WindowState = vbMinimized Then
        t.cbSize = Len(t)
        t.hWnd = Picture1.hWnd
        t.uId = 1&
        t.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
        t.ucallbackMessage = WM_MOUSEMOVE
        t.hIcon = Picture1.Picture
        t.szTip = "单击恢复窗口" & Chr$(0)
        Shell_NotifyIcon NIM_ADD, t
        Me.Hide
        App.TaskVisible = False
    End If
    End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Me.WindowState <> vbMinimized Then
    Exit Sub
    End If
    If ((Button And vbLeftButton) > 0) Then
     Me.WindowState = vbNormal
     Me.Show
     End If
     End Sub
      

  2.   

    不就是不能在NT下工作嘛,给你的程序名后面加个"For win9X/ME"不就得了,呵呵
      

  3.   

    试一下这样行吗?Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     Dim Msg As Long
         Msg = (X And &HFF) * &H100
         Select Case Msg           Case 0 ' 鼠标移动
                     ' 在此输入你的代码           Case &HF00 ' 鼠标左键被按下
                     ' 在此输入你的代码           Case &H1E00 '
                     ' 在此输入你的代码           Case &H2D00 ' 双击鼠标左键
                     Me.Show
                                Case &H3C00 ' 鼠标右键被按下
                    Me.PopupMenu mnupopup           Case &H4B00 ' 鼠标右键弹起
                    ' 在此输入你的代码           Case &H5A00 ' 双击鼠标右键
                     ' 在此输入你的代码     End Select
    End Sub
      

  4.   

    我没遇到过,不过,你倒可以先检查windows的版本号:
    win2k——NT 5.0
    win9x——win 4.0
      

  5.   

    使用微软免费的控件systray很好吗,为什么自己写?