Как преобразовать Application.PrevInstance в VB 6.0 в VB.NET? - PullRequest
4 голосов
/ 08 сентября 2010

У меня есть «Applications.PrevInstance» в коде VB 6, который я пытаюсь обновить до .NET с использованием VS 2008. Видимо, этот код больше не действителен. У кого-нибудь есть идеи по поводу обновленного решения? ТИА

Ответы [ 2 ]

7 голосов
/ 08 сентября 2010

Смотри здесь:

http://www.knowdotnet.com/articles/previnstance.html

Public Sub Main()
   If PrevInstance() Then Exit Sub

   ' continue with your application
   UserName = Environ("UserName")
   ComputerName = Environ("COMPUTERNAME")

End Sub

Function PrevInstance() As Boolean
  If UBound(Diagnostics.Process.GetProcessesByName _
     (Diagnostics.Process.GetCurrentProcess.ProcessName)) _
     > 0 Then
     Return True
  Else
     Return False
  End If
End Function
0 голосов
/ 04 ноября 2016
Function PrevInstance() As Boolean
    If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
        PrevInstance = True
    Else
        UserName = Environ("UserName")
        Computername = Environ("COMPUTERNAME")
        PrevInstance = False
    End If
    Dim i, n As Integer, RepForm As String
    For i = My.Application.OpenForms.Count - 1 To 1 Step -1
        RepForm = My.Application.OpenForms.Item(i).Name
        For n = My.Application.OpenForms.Count - 1 To 1 Step -1
            If My.Application.OpenForms.Item(n).Name = My.Application.OpenForms.Item(i).Name And n > i Then
                My.Application.OpenForms(i).Close()
                PrevInstance = True
                Exit Function
            End If
        Next n
    Next i
End Function
...