| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
 | Wichtige Änderung beim Bankdatenimport: Neues CAMT-Format ersetzt MT940, eine Pressemitteilung
|
Autor
|
Thema: DOS-Aufruf aus ME10-Makro (1973 mal gelesen)
|
TomK Mitglied CAD-Systemadmin

 Beiträge: 26 Registriert: 07.03.2003
|
erstellt am: 20. Feb. 2004 09:06 <-- editieren / zitieren --> Unities abgeben:         
Hallo Leute, ich hab mal ne Frage. Wenn ich aus einem ME-10-Makro (v. 11.65 unter WinXP) einen Dos-Befehl aufrufe (zb. copy oder move) erscheint immer ganz kurz das Shell-Fenster. Gibt es eine Möglichkeit dieses zu unterdrücken? Für Antworten im Vorraus besten Dank. mfg Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumgartner Mitglied Dipl.-Ing. Maschinenbau
  
 Beiträge: 715 Registriert: 05.01.2001 Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10. * ME10-Makros * ME10-Makroschulungen
|
erstellt am: 20. Feb. 2004 09:17 <-- editieren / zitieren --> Unities abgeben:          Nur für TomK
|
TomK Mitglied CAD-Systemadmin

 Beiträge: 26 Registriert: 07.03.2003
|
erstellt am: 20. Feb. 2004 09:31 <-- editieren / zitieren --> Unities abgeben:         
|
RainerH Mitglied Techn. Ang. (Konstruktion)
  
 Beiträge: 736 Registriert: 22.01.2003 OSDM 14.00A OSDD 14.50 MM 14.00A Windows-XP Pro x64 Edition -------------------------- HP xw6400 Intel Xeon 3.00 GHz 4.00 GB RAM ATI FireGL V7200
|
erstellt am: 20. Feb. 2004 10:40 <-- editieren / zitieren --> Unities abgeben:          Nur für TomK
Hallo Thomas, unter Windows geht das ganze folgendermassen: LET Pseudo_error (WINEXEC "DOSBEFEHL") Pseudo_error gibt dann entweder ERROR oder NO_ERROR zurueck. Naeheres dazu in der ME10-Hilfe... Gruss RainerH. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TomK Mitglied CAD-Systemadmin

 Beiträge: 26 Registriert: 07.03.2003
|
erstellt am: 20. Feb. 2004 11:14 <-- editieren / zitieren --> Unities abgeben:         
Hallo Rainer, erst mal Danke. 10 U's 4 U Jetzt habe ich aber das Problem, dass das Markro nach winexec abbricht.  (gibt NO_ERROR zurück und das wars) Gibts hierfür nen Lösungsvorschlag? Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RainerH Mitglied Techn. Ang. (Konstruktion)
  
 Beiträge: 736 Registriert: 22.01.2003 OSDM 14.00A OSDD 14.50 MM 14.00A Windows-XP Pro x64 Edition -------------------------- HP xw6400 Intel Xeon 3.00 GHz 4.00 GB RAM ATI FireGL V7200
|
erstellt am: 20. Feb. 2004 11:29 <-- editieren / zitieren --> Unities abgeben:          Nur für TomK
Hallo Thomas, ich habe wahrscheinlich etwas zu voreilig geantwortet. Mittels WINEXEC hab ich es nicht geschafft, einen DOS-BEFEHL zu starten, der mir z.B. eine Datei kopiert! Das funktioniert nicht: LET Pseudo_error (WINEXEC "copy C:/Tmp/aaa.txt C:/Tmp/bbb.txt") --> Gibt ERROR zurueck !! Das funktioniert: RUN "copy C:/Tmp/aaa.txt C:/Tmp/bbb.txt" (Nur unter UNIX mit Option: GRAPHIC bei Windows ohne GRAPHIC --> siehe Hilfe-Datei !!) P.S. Die Pfade natuerlich noch mit Backslash anstelle von Slash !!! Gruss RainerH.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TomK Mitglied CAD-Systemadmin

 Beiträge: 26 Registriert: 07.03.2003
|
erstellt am: 20. Feb. 2004 11:39 <-- editieren / zitieren --> Unities abgeben:         
Hallo Rainer, Winexec führt den Befehl schon aus. In meinem Beispiel: (WINEXEC 'cmd.exe /c chdir > c:\tmp\chdir.txt') Anschließend gibt er halt ERROR oder NO_ERROR zurück und beendet das Makro. Wenn das Makro normal weiterlaufen würde, hätte ich gewonnen. Werd mir mal noch ein paar Gedanken dazu machen. Gruss Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RainerH Mitglied Techn. Ang. (Konstruktion)
  
 Beiträge: 736 Registriert: 22.01.2003 OSDM 14.00A OSDD 14.50 MM 14.00A Windows-XP Pro x64 Edition -------------------------- HP xw6400 Intel Xeon 3.00 GHz 4.00 GB RAM ATI FireGL V7200
|
erstellt am: 20. Feb. 2004 11:49 <-- editieren / zitieren --> Unities abgeben:          Nur für TomK
Hallo Thomas, nur aus reiner Neugier: Was machst Du mit (WINEXEC 'cmd.exe /c chdir > c:\tmp\chdir.txt') Probier noch eventuell das ganze so im Makro zu umschlingen: TRAP_ERROR (WINEXEC 'cmd.exe /c chdir > c:\tmp\chdir.txt') IF (CHECK_ERROR) WAIT 0 END_IF Gruss RainerH.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TomK Mitglied CAD-Systemadmin

 Beiträge: 26 Registriert: 07.03.2003
|
erstellt am: 20. Feb. 2004 12:11 <-- editieren / zitieren --> Unities abgeben:         
Hallo Rainer, dieser Aufruf schreibt den aktuellen Pfad in dem der User arbeitet in eine Textdatei, auf die wir später mit OPEN_INFILE zurückgreifen. Wir haben einen eigenen File-Manager, mit dem der User per Mausklick schnellzugriff auf häufig benötigte Pfade hat. (z.b. verschiedene Zeichnungsarchive) Anschließend kommt er mit einem Mausklick wieder in sein Ausgangsverzeichnis zurück, das in chdir.txt steht. Unter Unix funzt das ganze ohne Probleme. Jetzt habe ich die Aufgabe, das ganze für Windoof umzuschreiben. Und so hats jetzt bei mir geklappt: LET cmd_string ('cmd.exe /c chdir > c:\tmp\cat_ver\chdir.txt') LET pseudo_error (winexec cmd_string) Allerdings habe ich immer noch das Problem, dass kurz ein Shell-Fenster aufblinkt, da es die Option GRAPHIC für RUN nur unter Unix gibt. Ich glaube aber, dass ich irgendwo mal gehört oder gelesen habe, dass man das auch unter Win unterdrücken kann. Nur wie weiß ich nicht.  Ich glaube ich stürz mich erst mal in das Faschingstreiben.  Am Montag fühl ich mich dann erst mal  Dann schau mer mal weiter. Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Günther Weber Mitglied Maschinenbautechniker
 
 Beiträge: 441 Registriert: 15.09.2000 Pro/E und Pro/MECHANICA 2001 Windows 2000 Pentium 4 2,4GHz, 1GB RAM FireGL Z1
|
erstellt am: 21. Feb. 2004 19:46 <-- editieren / zitieren --> Unities abgeben:          Nur für TomK
Wenn man mit winexec ein Windowsprogramm aufruft, springt kein DOS-Fenster auf. Und wenn das Windowsprogramm kein eigenes Fenster erzeugt, sieht man absolut nichts. In der Anlage findest Du das Programm mycmd.exe, welches das aktuelle Verzeichnis in die Datei c:\tmp\cat_ver\chdir.txt schreibt. Kopier die Datei in das Windowsverzeichnis, und ändere das Makro so ab: LET cmd_string ('mycmd.exe') LET pseudo_error (winexec cmd_string)
Du kannst die mycmd.exe auch irgendwo anders hinkopieren, dann muss aber im Makro der Pfad angegeben werden. Die Quelltextdatei mycmd.cpp kann beliebig verändert werden, muß dann aber mit einem C++ Compiler neu compiliert werden. Statt in C++ kann so ein Programm natürlich auch in Delphi oder Visual Basic erstellt werden.
Gruß, Günther Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TomK Mitglied CAD-Systemadmin

 Beiträge: 26 Registriert: 07.03.2003
|
erstellt am: 24. Feb. 2004 09:59 <-- editieren / zitieren --> Unities abgeben:         
|
karl-josef_wernet Mitglied SysAdmin CAD-ME im Sabbatical
   
 Beiträge: 1046 Registriert: 27.11.2000 PTC-Direct-Modeling/Drafting 19.0 Classic/Tablett DELL T5820, Precision 7760 Workmanager/Model-/Drawing-Manager WIN10 PE8.0
|
erstellt am: 24. Feb. 2004 16:32 <-- editieren / zitieren --> Unities abgeben:          Nur für TomK
Hi, Frage: Ich weiss zwar nicht, was ich mal zusammenprogrammiert habe, jedenfalls funktioniert es so bei mir schon seit Jahren. Mit INQ_ENV 0 und INQ 302 bekomme ich den aktuellen Ordner, in dem ich augenblicklich stehe. Diesen brauche ich mir dann in einer globalen Variable merken und später wieder dahin zurückspringen. Vorteil sowohl unter UX als auch PC, keine DOS-Box, kein Zeitverzug. ------------------ kjw Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TomK Mitglied CAD-Systemadmin

 Beiträge: 26 Registriert: 07.03.2003
|
erstellt am: 25. Feb. 2004 10:35 <-- editieren / zitieren --> Unities abgeben:         
|