用API函数
showwindow和findwindow就可以搞定

解决方案 »

  1.   

    专门针对你的情况只有用——VB7的Try...Finally语句,将恢复隐藏的代码放在Finally块中,即可保证执行
      

  2.   

    用ON ERROR GOTO XXX检查,最后一定要将状态栏恢复
      

  3.   

    我的问题是程序非法关闭时,他无法自动还原啊!~~
    不过DTWUJP(建平) 的建议不错,看看情况如何。
      

  4.   

    我给你一段代码
    Option ExplicitPrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal cX As Long, ByVal cY As Long, ByVal wFlags As Long) As Long
    Const SWP_HIDEWINDOW = &H80
    Const SWP_SHOWWINDOW = &H40Private Sub Command1_Click()
        Dim rtn As Long
        rtn = FindWindow("Shell_traywnd", "")
        Call SetWindowPos(rtn, 0, 0, 0, 0, 0, SWP_SHOWWINDOW)
    End SubPrivate Sub Command2_Click()
        Dim rtn As Long
        rtn = FindWindow("Shell_traywnd", "")
        Call SetWindowPos(rtn, 0, 0, 0, 0, 0, SWP_HIDEWINDOW)
    End Sub
      

  5.   

    用户非法退出的情况太多,我怎么知道是哪个?DTWUJP(建平)给点建议吧!~~
      

  6.   

    那只能在用户最容易出问题的代码中用错误处理,在一些功能子模块中必须有错误处理程序,最起码能让你的程序能“体面”的退出。
    private sub xxxx()
    On Error GoTo 
      .
      .
      .
    errEnderrEnd:
    Call ShowWindow(hwnd5, SW_SHOW) '显示任务栏
    MsgBox Err.Description, vbInformation, "出错"
    end sub
      

  7.   

    打错了,对不起,应该是
    ON ERROR GOTO ERREND
     .
     . 
     .
    ERREND:
      

  8.   

    我人家看看还有什么回答,DTWUJP(建平)放心我一定给你分