我给你一段代码 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
用户非法退出的情况太多,我怎么知道是哪个?DTWUJP(建平)给点建议吧!~~
那只能在用户最容易出问题的代码中用错误处理,在一些功能子模块中必须有错误处理程序,最起码能让你的程序能“体面”的退出。 private sub xxxx() On Error GoTo . . . errEnderrEnd: Call ShowWindow(hwnd5, SW_SHOW) '显示任务栏 MsgBox Err.Description, vbInformation, "出错" end sub
不过DTWUJP(建平) 的建议不错,看看情况如何。
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
private sub xxxx()
On Error GoTo
.
.
.
errEnderrEnd:
Call ShowWindow(hwnd5, SW_SHOW) '显示任务栏
MsgBox Err.Description, vbInformation, "出错"
end sub
ON ERROR GOTO ERREND
.
.
.
ERREND: