CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 4 of 4

Threaded View

  1. #1
    Join Date
    Mar 2002

    Killing Previous Instance of VB6 Application

    I've searched around for the proper way to kill a previous Instance of a VB6 application. My situation seems a bit unique. If our main sevice(outside of the application) dies, we need to terminate the previous instance of the running application and then, when the service comes back up only the new instance should be loaded. I am trying to exit this code in the following function:

    Private Sub g_cServerInterface_FatalError(Error As enSvrReturns, ErrorString As String)
        Dim sMsg As String
        Dim result As VbMsgBoxResult
        m_bFatalError = True
        If m_cLanguageText Is Nothing Then
            GoTo TheEnd    'Form not yet loaded - not yet logged on
        End If
    '    m_NumFatalErrors = m_NumFatalErrors + 1
    '    If m_NumFatalErrors > 5 Then
    '        Functions.DevInfo "Unable to restart Manitou.", g_cLangText_General
    '        End
    '    End If
        If Error <> SVRERR_NOT_CONNECTED Or RunningInDebugger() Then
            sMsg = g_cLangText_General.GetText("A system error has occurred")
            If ErrorString <> "" Then
                sMsg = sMsg & ":" & vbCrLf & vbCrLf & ErrorString & vbCrLf & vbCrLf
                sMsg = sMsg & ".  "
            End If
            sMsg = sMsg & g_cLangText_General.GetText("Press OK to attempt to restart or Cancel to quit.")
            result = DevAskOkCancel(sMsg, Nothing)
            ' Since we've been disconnected, attempt immediately to reconnect
            result = vbOK
        End If
        If (result = vbOK) Then
            On Local Error Resume Next
            If InStr(g_CommandLine, "-U") = 0 Then
                g_CommandLine = g_CommandLine & " -U" & g_cUser.id
            End If
            If InStr(g_CommandLine, "-P") = 0 Then
                g_CommandLine = g_CommandLine & " -P" & g_cUser.Password
            End If
            Shell App.Path & "\" & App.EXEName & " " & g_CommandLine & " -X", vbNormalFocus
        End If
        If (Not RunningInDebugger()) Then
            ' Running as compiled executable
            ' Specifies the exit code for the process, and for all threads that
            ' are terminated as a result of this call. Use the GetExitCodeProcess
            ' function to retrieve the process's exit value. Use the GetExitCodeThread
            ' function to retrieve a thread's exit value.
            ExitProcess 0
            ' Running from the IDE
        End If
    End Sub

    Note that I added the CoUninitialize and ExitProcess 0 API calls to this. How can I correctly terminate the perviously loaded instance when the service comes back up? thanks Larry
    Last edited by lbargers; March 4th, 2013 at 08:15 AM.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Windows Mobile Development Center

Click Here to Expand Forum to Full Width

On-Demand Webinars (sponsored)

We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.