Autor
|
Thema: StartCommand wiederholen (wie Doppelklick) (2326 mal gelesen)
|
geekv5 Mitglied Konstrukteur
Beiträge: 214 Registriert: 13.07.2011 Notebook<P>MSI GX660R Intel Core i5 460M 8GB DDR3 1GB Mobility HD5870 80GB Intel X25-M Postville 250GB HDD<P>Desktop<P>AMD Phenom II X4 965 1GB HD4890@ FirePro V8700 8GB DDR3-1600 2,5TB HDD<P>Belinea 2485 S1W 24" MVA
|
erstellt am: 20. Apr. 2012 17:32 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, frage mich gerade ob es möglich ist, ein StartCommand so aufzurufen, dass der Befehl nach Beendigung automatisch wieder startet, also wie wenn ich dopelt auf ein Icon klicke.. Hintergrund ist, dass ich einige Befehle durch Makros ersetzt habe, wobei das Makro diverse Vorbereitungen trifft und dann den Befehl per StartCommand aufruft.. So weit so gut, allerdings hätte ich gerne weiterhin die Funktion den Befehl mehrmals nacheinander aufzurufen, ohne nochmal das Icon zu klicken bzw. STRG+Y.. MfG und schönes WE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K.Siebert Mitglied Tech Zeichner
Beiträge: 415 Registriert: 19.05.2007 Win XP Catia V5 R19 Catia V5 R24
|
erstellt am: 20. Apr. 2012 18:04 <-- editieren / zitieren --> Unities abgeben: Nur für geekv5
|
geekv5 Mitglied Konstrukteur
Beiträge: 214 Registriert: 13.07.2011 Notebook<P>MSI GX660R Intel Core i5 460M 8GB DDR3 1GB Mobility HD5870 80GB Intel X25-M Postville 250GB HDD<P>Desktop<P>AMD Phenom II X4 965 1GB HD4890@ FirePro V8700 8GB DDR3-1600 2,5TB HDD<P>Belinea 2485 S1W 24" MVA
|
erstellt am: 21. Apr. 2012 00:39 <-- editieren / zitieren --> Unities abgeben:
So, habs hinbekommen.. Hier die Lösung für alle zum mitmeißeln: Code:
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Mehrfachstarten As BooleanSub CATMain() Abbruchbedingung = False If Mehrfachstarten = True Then Do Until Abbruchbedingung = True CATIA.StartCommand ("Spline") CATIA.RefreshDisplay = True Sleep 500 F_hwnd = FindWindow(vbNullString, "Spline-Definition") Do While F_hwnd <> 0 Sleep 100 F_hwnd = FindWindow(vbNullString, "Spline-Definition") CATIA.RefreshDisplay = True Loop If GetAsyncKeyState(27) = -32767 Then Abbruchbedingung = True Loop Else CATIA.StartCommand ("Spline") End If Mehrfachstarten = False End Sub
Zur Erklärung, ich setze die Variable "Mehrfachstarten" mit einem zweiten Makro auf "True". Der per Startcommand aufgerufene Befehl wird nach Ausführung immer wieder neu gestartet. Halte ich die "Esc" Taste während ich im Befehlsfenster auf "OK", "Abbrechen" oder "X" klicke, wird der Befehl nicht nochmal gestartet. Wurde die Variable "Mehrfachstarten" nicht vorher auf "True" gesetzt wird der Befehl nach ausführung nicht wieder gestartet.. Edit: Verdammt, zu früh gefreut.. Während der Mehrfachstarten-Modus aktiv ist, kann ich im Befehlsfenster keinerlei Tastatureingaben tätigen.. Edit2: Komisch, wenn ich es aus dem VBA Editor starte, funktioniert es.. [Diese Nachricht wurde von geekv5 am 21. Apr. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
geekv5 Mitglied Konstrukteur
Beiträge: 214 Registriert: 13.07.2011 Notebook<P>MSI GX660R Intel Core i5 460M 8GB DDR3 1GB Mobility HD5870 80GB Intel X25-M Postville 250GB HDD<P>Desktop<P>AMD Phenom II X4 965 1GB HD4890@ FirePro V8700 8GB DDR3-1600 2,5TB HDD<P>Belinea 2485 S1W 24" MVA
|
erstellt am: 26. Apr. 2012 17:07 <-- editieren / zitieren --> Unities abgeben:
Hi, hole das nochmal hoch, hat vielleicht jemand eine Idee warum sich das Makro anders verhält, wenn ich es aus CATIA heraus starte? Aus dem VBA Editor gestartet funktioniert es einwandfrei.. MfG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|