所以我最近陷入了 VB6 编程的困境,我试图在运行 *.exe 应用程序时使隐藏的表单再次出现。
此表单只有一个可以打开 *.exe 的按钮,单击按钮后,相关程序将打开,表单将被隐藏。一旦有问题的程序关闭,该表格应该重新出现,但在我的情况下它不会。以下是按钮本身的代码:
Private Sub btnClicky_Click()
Dim Res
Dim Filename
Filename = "C:\Windows\notepad.exe"
Res = Shell(Filename, vbHide)
If IsProcessRunning("Notepad.exe") Then
Me.Hide
Else
Me.Show
End If
End Sub
一旦它起作用,我会将代码实现到我正在工作的作业中,因为我目前正在办公室实习计划中,并且我必须创建一个涉及链接多个应用程序的用户界面程序。我们将不胜感激您的帮助。
提前致谢!
最佳答案
更好的方法是对应用程序进行脱壳,隐藏您的应用程序并等待进程终止:
Private Const SYNCHRONIZE = &H100000
Private Const WAIT_INFINITE = -1&
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub btnClicky_Click()
Dim hProcess As Long
hProcess = OpenProcess(SYNCHRONIZE, True, Shell("notepad.exe", vbNormalFocus))
Me.Hide
Call WaitForSingleObject(hProcess, WAIT_INFINITE)
Call CloseHandle(hProcess)
Me.Show
Me.SetFocus
End Sub
关于vb6 - 通过表单运行 *.exe 应用程序,然后在应用程序退出时再次显示表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36791912/