Autor
|
Thema: .NET , GetActiveObject abbrechen (1558 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: 172 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 >>)
|