| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | | |  | KISTERS 3DViewStation: 3D-Visualisierung für After Sales, Service und Ersatzteile, eine Pressemitteilung
|
Autor
|
Thema: .NET , GetActiveObject abbrechen (1621 mal gelesen)
|
CAMiCADse Mitglied
 
 Beiträge: 177 Registriert: 17.02.2006 V5,R19,SP9
|
erstellt am: 25. Feb. 2011 17:34 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe eine externe Anwendung mit VB.NET erstellt. Innerhalb der Anwenung hole ich mir die CATIA-Instanz mit: Code: CATIA = System.Runtime.InteropServices.Marshal.GetActiveObject("CATIA.Application")
Wenn CATIA in diesem Moment "beschäftigt" ist, z.B. durch das Laden eines Documents, stoppt dier Ausführung in dieser Zeile, bis CATIA wieder ansprechbar ist. In diesem Fall möchte ich nicht warten, sondern der Code soll weiterlaufen (auch ohne CATIA-Instanz). Ich suche also nach einer Möglichkeit die Ausführung der Zeile nach einer bestimmten Zeit abzubrechen und mit der nächsten Zeile weiterzumachen. Jemand eine Idee? (evtl. Timer&Backgroundworker?) Gruß CAMiCADse Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
 
 Beiträge: 175 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 10. Mrz. 2011 12:42 <-- editieren / zitieren --> Unities abgeben:          Nur für CAMiCADse
Hallo CAMiCADse, nur ein Vorschlag gibt bestimmt eine bessere Lösung. Code: Public Catia Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Timer1.Interval = 5000 '5 sek warten Timer1.Enabled = True BackgroundWorker1.WorkerSupportsCancellation = True BackgroundWorker1.RunWorkerAsync() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Timer1.Enabled = False BackgroundWorker1.CancelAsync() If IsNothing(Catia) = True Then MsgBox("Catia konnte nicht angesprochen werden") 'Hier Sub ohne Catia starten Catia = Nothing Else MsgBox("Catia konnte angesprochen werden") 'Hier Sub mit Catia starten Catia = Nothing End If End Sub Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Catia = System.Runtime.InteropServices.Marshal.GetActiveObject("CATIA.Application") End Sub
EDIT: Backgroundworker eingebaut mfG Mario [Diese Nachricht wurde von roccat am 10. Mrz. 2011 editiert.] [Diese Nachricht wurde von roccat am 10. Mrz. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |