vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Mehrere Instanzen - Richtige Instanz identifizieren 
Autor: Pringlos
Datum: 10.02.16 17:12

Hallo zusammen,

ich hoffe jemand kann mir bei folgendem Problem helfen:

Ich habe mehrere Instanzen eines Programms laufen.

Dabei wurde eine Instanz von mir erstellt.
(Diese Instanz brauche ich. Ich kann die laufenden Instanzen aus verschiedenen Gründen nicht verwenden, da diese mit anderen Dingen beschäftigt sind)

Ich möchte die Instanz, die von mir erstellt wird, beim Instanzieren irgendwie markieren, oder mir irgendeine Info dieser Instanz abholen, damit ich sie zu einem späteren Zeitpunkt über die RunningObjectTable erkenne, wenn ich mir alle laufenden Instanzen hole.


Also:

Hier bring ich das Ding auf die Welt. Aber welche Infos habe ich denn, die diese Instanz eindeutig als "meine" Instanz identifiziert?
Dim oInvApp As Inventor.Application = Nothing
oInvApp = CreateObject("Inventor.Application")
Hier will ich mir die Instanzen abholen. Aber woher weiß ich, welche meine Instanz ist?
    Private Function GetInventorInstances() As Collection
 
        Dim iIndex As Integer = 0
 
        Dim listInstances As New Collection
 
        Try
            Dim ROTObject As Object = Nothing
            Dim runningObjectTable As IRunningObjectTable
            Dim monikerEnumerator As IEnumMoniker = Nothing
            Dim monikers(1) As IMoniker
 
            runningObjectTable = GetRunningObjectTable(0)
            runningObjectTable.EnumRunning(monikerEnumerator)
            monikerEnumerator.Reset()
 
            Dim numFetched As IntPtr = New IntPtr()
            While (monikerEnumerator.Next(1, monikers, numFetched) = 0)
                Dim ctx As IBindCtx
                ctx = CreateBindCtx(0)
 
                Dim runningObjectName As String = ""
                monikers(0).GetDisplayName(ctx, Nothing, runningObjectName)
 
                runningObjectName = runningObjectName.ToUpper
                If (Not runningObjectName.Equals("")) Then
                    Dim runningObjectIns As Object = Nothing
                    runningObjectTable.GetObject(monikers(0), runningObjectIns)
 
                    Try
                        Dim oInvIns As Inventor.Application = Nothing
                        oInvIns = DirectCast(runningObjectIns, _
                          Inventor.Application)
 
                        'woher weiss ich jetzt welche instanz ich hier habe?
 
                        iIndex += 1
                        listInstances.Add(oInvIns, iIndex)
                    Catch ex As Exception
                    End Try
                End If
            End While
 
        Catch ex As Exception
        End Try
 
        Return listInstances
 
    End Function
Hat jemand eine Idee?
Danke für's Lesen.


-----

-.-

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Mehrere Instanzen - Richtige Instanz identifizieren1.624Pringlos10.02.16 17:12
Re: Mehrere Instanzen - Richtige Instanz identifizieren983Manfred X11.02.16 06:51
Re: Mehrere Instanzen - Richtige Instanz identifizieren1.154Pringlos11.02.16 10:36
Re: Mehrere Instanzen - Richtige Instanz identifizieren1.012Pringlos11.02.16 10:48

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel