| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
|
Autor
|
Thema: API Verbindung trennen bei externem Prg (562 mal gelesen)
|
mssoftware Mitglied alles mögliche

 Beiträge: 76 Registriert: 15.06.2005 Design Suite 2011-2016 Ultimate Microsoft Visual Studio Professional 2010<P>i7 2600K @3,4Ghz Windows 7 64bit nvidia GTX 760 16GB RAM 2x SSD256GB NAS 1TB (gespiegelt)
|
erstellt am: 26. Jan. 2010 12:23 <-- editieren / zitieren --> Unities abgeben:         
Ich habe folgenden Code, der hinter einem Button Ereignis liegt: If bt_ivverbinden.Text = "nicht verbunden" Then Try oInventorApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application") 'GetObject(, "Inventor.Application") 'IVEvent = oInventorApp.ApplicationEvents bt_ivverbinden.Text = "verbunden" Catch ex As Exception bt_ivverbinden.Text = "nicht verbunden" MessageBox.Show("Fehler beim Initialisieren. Bitte stellen sie sicher," + vbCrLf + "das Inventor bereits gestartet ist. Das Prg. wird beendet.", "Fehler IV steuern", MessageBoxButtons.OK, MessageBoxIcon.Error) 'Me.Close() End Try Else 'Hier soll die Verbindung beendet werden. 'bt_ivverbinden.Text = "nicht verbunden" End If In der IV Schleife wird die Verbindung aufgebaut und in der Else Funktion möchte ich die Verbindung wieder beenden, allerdings habe ich den passenden Befehl dafür nicht gefunden. IV läßt sich bei bestehender Verbindung nicht manuell bedienen. Gruß Maik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2788 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 26. Jan. 2010 23:17 <-- editieren / zitieren --> Unities abgeben:          Nur für mssoftware
Hallo Würde es nicht reichen deine Form modal aufzurufen? Ansosnten hätte ich geraten das ein Code: oInventorApp = Nothing
oder ein Code: System.Runtime.InteropServices.Marshal.ReleaseComObject(oInventorApp)
helfen könnte. Aber das ist, wie gesagt geraten.
------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
mssoftware Mitglied alles mögliche

 Beiträge: 76 Registriert: 15.06.2005 Design Suite 2011-2016 Ultimate Microsoft Visual Studio Professional 2010<P>i7 2600K @3,4Ghz Windows 7 64bit nvidia GTX 760 16GB RAM 2x SSD256GB NAS 1TB (gespiegelt)
|
erstellt am: 27. Jan. 2010 10:57 <-- editieren / zitieren --> Unities abgeben:         
Hallo rkauskh, gut geraten und vielen Dank! Am logischten erscheint mir die Variante ...ReleaseComObject, da es dann vermutlich auch IV mitbekommt. Bei der "oInventorApp = Nothing" wird ja lediglich die Variable freigegeben. Ich habe jetzt beide Varianten hintereinander programmiert: ... Else System.Runtime.InteropServices.Marshal.ReleaseComObject(oInventorApp) oInventorApp = Nothing bt_ivverbinden.Text = "nicht verbunden" End If ... Die Form modal anzuzeigen, bewirkt ja lediglich, dass das Fenster alle anderen Fenster aus der "Elternanwendung" blockiert?! Nach dem beenden des Prg. wird die Verbindung automatisch geschlossen, allerdings möchte ich mit dem Prg weiter arbeiten und zu einem späteren Zeitpunkt die Daten wieder an IV übertragen. (Was ja dank deiner Hilfe jetzt auch funktioniert. Gruß Maik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |