在vb.net里面Shell myVB6prog.EXE?Dim PathName As String Dim Style As AppWinStyle Dim Wait As Boolean Dim Timeout As Integer Dim returnValue As IntegerreturnValue = Interaction.Shell("myVB6prog.EXE", Style, Wait, Timeout)
下面的示例使用 Shell 函数运行由用户指定的应用程序。将 AppWinStyle.NormalFocus 指定为第二个参数,可以正常大小打开应用程序并使其获得焦点。Visual Basic 复制代码 Dim procID As Integer ' Run calculator. procID = Shell("C:\Windows\system32\calc.exe", AppWinStyle.NormalFocus) ' The preceding path is for Windows XP. ' The Windows 2000 path is C:\WINNT\system32\calc.exe.
Dim procID As Integer Dim newProc As Diagnostics.Process newProc = Diagnostics.Process.Start("C:\WINDOWS\NOTEPAD.EXE") procID = newProc.Id newProc.WaitForExit() Dim procEC As Integer = -1 If newProc.HasExited Then procEC = newProc.ExitCode End If MsgBox("Process with ID " & CStr(ProcID) & _ " terminated with exit code " & CStr(procEC))
② 再用 VB.NET 做个简单的程序来“包装”一下:
做个 .NET 的 exe程序,把VB程序的所有文件作为 .NET程序的资源,
这个程序是无窗口的,运行它时,把所有的 VB文件从资源中释放出来,再调用VB的主程序。
.NET 程序自己退出。
Dim Style As AppWinStyle
Dim Wait As Boolean
Dim Timeout As Integer
Dim returnValue As IntegerreturnValue = Interaction.Shell("myVB6prog.EXE", Style, Wait, Timeout)
Dim procID As Integer
' Run calculator.
procID = Shell("C:\Windows\system32\calc.exe", AppWinStyle.NormalFocus)
' The preceding path is for Windows XP.
' The Windows 2000 path is C:\WINNT\system32\calc.exe.
Dim newProc As Diagnostics.Process
newProc = Diagnostics.Process.Start("C:\WINDOWS\NOTEPAD.EXE")
procID = newProc.Id
newProc.WaitForExit()
Dim procEC As Integer = -1
If newProc.HasExited Then
procEC = newProc.ExitCode
End If
MsgBox("Process with ID " & CStr(ProcID) & _
" terminated with exit code " & CStr(procEC))