element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Autodesk EAGLE
  • Products
  • More
Autodesk EAGLE
EAGLE Support (Deutsch) cmd.exe Aufruf aus ULP Problem
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Autodesk EAGLE to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 16 replies
  • Subscribers 179 subscribers
  • Views 1414 views
  • Users 0 members are here
Related

cmd.exe Aufruf aus ULP Problem

Former Member
Former Member over 14 years ago

Hallo,

 

ich habe folgende Zeile am ende eines ULP's.

 

sprintf(sCmd, "cmd.exe /c %s", sDatasheet); system(sCmd);

(sDatasheet = Pfand inkl. Dateiname des Datenblattes)

 

Solange wie ich das PDF welches mir das ULP geöffnet hat oder das

CMD-Fenster(Dos) nicht schliesse reagiert Eagle sehr langsam und die

Sanduhr wird angezeigt.

Ein weiteres ULP kann nicht gestartet werden weil das ULP immernoch läuft.

 

Kann ich diesen Aufruf anders machen, damits mit das PDF öffnet und

anschliessend das ULP beendet. Oder gibts für diese Problem einen Bugfix.

 

--

mfg Patrick Steiner

 

Eagle 5.11.0 Professional

 

  • Sign in to reply
  • Cancel
  • Former Member
    Former Member over 14 years ago

    Patrick Steiner wrote:

    Hallo,

     

    ich habe folgende Zeile am ende eines ULP's.

     

    sprintf(sCmd, "cmd.exe /c %s", sDatasheet); system(sCmd);

    (sDatasheet = Pfand inkl. Dateiname des Datenblattes)

     

    Solange wie ich das PDF welches mir das ULP geöffnet hat oder das

    CMD-Fenster(Dos) nicht schliesse reagiert Eagle sehr langsam und die

    Sanduhr wird angezeigt.

    Ein weiteres ULP kann nicht gestartet werden weil das ULP immernoch

    läuft.

     

    Kann ich diesen Aufruf anders machen, damits mit das PDF öffnet und

    anschliessend das ULP beendet. Oder gibts für diese Problem einen

    Bugfix.

     

    --

    mfg Patrick Steiner

     

    Eagle 5.11.0 Professional

     

     

    Fügen Sie den Befehl "Start"

     

    sprintf(sCmd, "cmd.exe /c start  %s", sDatasheet);

     

    Warren

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 14 years ago in reply to Former Member

    Am 31.05.2011 23:22, schrieb Warren Brayshaw:

    Patrick Steiner wrote:

    >> Hallo,

    >>

    >> ich habe folgende Zeile am ende eines ULP's.

    >>

    >> sprintf(sCmd, "cmd.exe /c %s", sDatasheet); system(sCmd);

    >> (sDatasheet = Pfand inkl. Dateiname des Datenblattes)

    >>

    >> Solange wie ich das PDF welches mir das ULP geöffnet hat oder das

    >> CMD-Fenster(Dos) nicht schliesse reagiert Eagle sehr langsam und die

    >> Sanduhr wird angezeigt.

    >> Ein weiteres ULP kann nicht gestartet werden weil das ULP immernoch

    >> läuft.

    >>

    >> Kann ich diesen Aufruf anders machen, damits mit das PDF öffnet und

    >> anschliessend das ULP beendet. Oder gibts für diese Problem einen

    >> Bugfix.

    >>

    >> --

    >> mfg Patrick Steiner

    >>

    >> Eagle 5.11.0 Professional

    >

    Fügen Sie den Befehl "Start"

     

    sprintf(sCmd, "cmd.exe /c start  %s", sDatasheet);

     

    Vielen Dank für den Hinweis.

    Funktioniert aber nur zum Teil.

     

    Erläuterung:

    Die Pfadangabe inkl. Dateinamen sind dem Attribut Datasheet der

    Komponenten hinterlegt.

     

    Wenn der Pfad und Dateiname in Anführungszeichen

    "c:\datasheets\ic\lp2998.pdf" hinterlget ist, dann funktioniert der

    Befehlt mit dem zusätzlichen startkommando nicht. Es öffnet sich nur das

    Dos-Fenster, bleibt offen und nichts geschieht weiter.

     

    Wenn der Pfad und Dateiname ohne Anführungszeichen

    c:\datasheets\ic\lp2998.pdf hinterlget ist, dann funktioniert der

    Befehlt mit dem zusätzlichen startkommando. Es öffnet sich nur das

    Dos-Fenster, schliesst dann wieder und das gewünschte Datenblatt erscheint.

     

    Die Anführungszeichen benötigts halt weil gewisse Pfad und Dateinamen

    Leerschläge beinhalten. Dann würden wiederum diese nicht geöffnet ohne

    der zusätzlichen Anführungszeichen.

     

    --

    mfg Patrick Steiner

     

    Eagle 5.11.0 Professional

     

     

     

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 14 years ago in reply to Former Member

    Am 01.06.2011 07:58, schrieb Patrick Steiner:

    Dos-Fenster, schliesst dann wieder und das gewünschte Datenblatt erscheint.

     

    Die Anführungszeichen benötigts halt weil gewisse Pfad und Dateinamen

    Leerschläge beinhalten. Dann würden wiederum diese nicht geöffnet ohne

    der zusätzlichen Anführungszeichen.

     

    Die "Leerschläge" (Leerzeichen) kann man auch durch "\"

    ("Rückschlag";) anführen, bin mir aber nicht sicher, ob das bei der

    dynamischen Namensgenerierung hier möglich ist.

     

     

    --

    Christoph

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 14 years ago in reply to Former Member

    Am 01.06.2011 09:25, schrieb Christoph Kukulies:

    Am 01.06.2011 07:58, schrieb Patrick Steiner:

    Dos-Fenster, schliesst dann wieder und das gewünschte Datenblatt erscheint.

    >>

    >> Die Anführungszeichen benötigts halt weil gewisse Pfad und Dateinamen

    >> Leerschläge beinhalten. Dann würden wiederum diese nicht geöffnet ohne

    >> der zusätzlichen Anführungszeichen.

     

    Die "Leerschläge" (Leerzeichen) kann man auch durch "\"

    ("Rückschlag";) anführen, bin mir aber nicht sicher, ob das bei der

    dynamischen Namensgenerierung hier möglich ist.

     

    >

     

    Ich habe diesen Hinweis umgesetzt:

     

    string sCmd;

    sprintf(sCmd, "cmd.exe /c start \"C:\WOM 25120.pdf\""); system(sCmd);

    //--> funktioniert nicht, DOS-Fenster öffnet sich, nichts passiert weiter

     

    sprintf(sCmd, "cmd.exe /c start C:\WOM 25120.pdf"); system(sCmd);

    //--> funktioniert nicht, Fehlermeldung "C:WOM konnte nicht gefunden

    werden"

     

    --

    mfg Patrick Steiner

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 14 years ago in reply to Former Member

     

    Sie könnten die Pfade zu ändern DOS 8char Kurznamen

    (Übersetzung mit freundlicher Genehmigung von Google)

     

    http://webmechanic.blogspot.com/2008/10/spaces-in-file-path-in-dos.html

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 14 years ago in reply to Former Member

    Am 01.06.2011 09:58, schrieb Patrick Steiner:

    Ich habe diesen Hinweis umgesetzt:

     

    string sCmd;

    sprintf(sCmd, "cmd.exe /c start \"C:\WOM 25120.pdf\""); system(sCmd);

    //--> funktioniert nicht, DOS-Fenster öffnet sich, nichts passiert weiter

     

    sprintf(sCmd, "cmd.exe /c start C:\WOM 25120.pdf"); system(sCmd);

    //--> funktioniert nicht, Fehlermeldung "C:WOM konnte nicht gefunden

    werden"

     

    sprintf(sCmd, "cmd.exe /c start \"C:
    WOM 25120.pdf\"");

     

    Beachten Sie die Backslash!

     

    \"   braucht man, um in einem String ein " anzugeben,

    das braucht wiederum DOS um einen Pfad/Dateinamen mit Leerzeichen

    als einen Namen zu erkennen.

     


       braucht man, um in einem String ein \ anzugeben.

     

    Ein Backslash leitet in C ein Sonderzeichen ein, für DOS braucht man

    aber leider die Backslash für die Trennzeichen Pfad/Dateiname.

    Es ist ein Trauerspiel mit MS.

     

    Hier eine Testumgebung:

     

    string sCmd;

     

    sprintf(sCmd, "cmd.exe /c start \"C:
    WOM 25120.pdf\"");

     

    dlgDialog("test") {

       dlgTextEdit(sCmd);

       dlgPushButton("OK") dlgAccept();

    };

     

    system(sCmd);

     

     

    Nur wen Sie in dem Textfeld die \ (Backslash) sehen, dann klappt es

    auch mit DOS.

     

     

     

    Mit freundlichen Grüßen / Best regards

     

    Alfred Zaffran

    --

    _____________________________________________________________

    Alfred Zaffran              Support

    CadSoft Computer GmbH       Hotline:   08635-698930

    Pleidolfweg 15              FAX:       08635-698940

    84568 Pleiskirchen          eMail: <alf@cadsoft.de>

                                 Web:   <www.cadsoft.de>

    Registergericht: Amtsgericht Traunstein HRB 5573

    Geschäftsführer: Dipl.-Ing. Klaus Schmidinger, Bodo Badnowitz

    _____________________________________________________________

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 14 years ago in reply to Former Member

    Am 01.06.2011 10:23, schrieb A. Zaffran:

     

     

    sprintf(sCmd, "cmd.exe /c \"C:
    WOM 25120.pdf\"");

     

    Die Option "start" braucht es nicht, zumindest unter WinXP SP3

     

     

    Mit freundlichen Grüßen / Best regards

     

    Alfred Zaffran

    --

    _____________________________________________________________

    Alfred Zaffran              Support

    CadSoft Computer GmbH       Hotline:   08635-698930

    Pleidolfweg 15              FAX:       08635-698940

    84568 Pleiskirchen          eMail: <alf@cadsoft.de>

                                 Web:   <www.cadsoft.de>

    Registergericht: Amtsgericht Traunstein HRB 5573

    Geschäftsführer: Dipl.-Ing. Klaus Schmidinger, Bodo Badnowitz

    _____________________________________________________________

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 14 years ago in reply to Former Member

    Am 01.06.2011 10:13, schrieb Warren Brayshaw:

    Sie könnten die Pfade zu ändern DOS 8char Kurznamen

    (Übersetzung mit freundlicher Genehmigung von Google)

     

    http://webmechanic.blogspot.com/2008/10/spaces-in-file-path-in-dos.html

     

    >

     

     

    1. Problem mit den Leerzeichen besteht weiterhin wenn das Leerzeichen

    innerhalb der ersten 6 Zeichen vorkommt.

     

    2. Wenn zwei Verzeichnisse oder Dateinamen in den ersten 6 Zeichen

    identisch sind habe ich wieder verloren

     

    --

    mfg Patrick Steiner

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 14 years ago in reply to Former Member

    Am 01.06.2011 10:23, schrieb A. Zaffran:

    Am 01.06.2011 09:58, schrieb Patrick Steiner:

    >> Ich habe diesen Hinweis umgesetzt:

    >>

    >> string sCmd;

    >> sprintf(sCmd, "cmd.exe /c start \"C:\WOM 25120.pdf\""); system(sCmd);

    >> //--> funktioniert nicht, DOS-Fenster öffnet sich, nichts passiert weiter

    >>

    >> sprintf(sCmd, "cmd.exe /c start C:\WOM 25120.pdf"); system(sCmd);

    >> //--> funktioniert nicht, Fehlermeldung "C:WOM konnte nicht gefunden

    >> werden"

     

    sprintf(sCmd, "cmd.exe /c start \"C:
    WOM 25120.pdf\"");

     

    Beachten Sie die Backslash!

     

    \" braucht man, um in einem String ein " anzugeben,

    das braucht wiederum DOS um einen Pfad/Dateinamen mit Leerzeichen

    als einen Namen zu erkennen.

     


    braucht man, um in einem String ein \ anzugeben.

     

    Ein Backslash leitet in C ein Sonderzeichen ein, für DOS braucht man

    aber leider die Backslash für die Trennzeichen Pfad/Dateiname.

    Es ist ein Trauerspiel mit MS.

     

    Hier eine Testumgebung:

     

    string sCmd;

     

    sprintf(sCmd, "cmd.exe /c start \"C:
    WOM 25120.pdf\"");

     

    dlgDialog("test") {

    dlgTextEdit(sCmd);

    dlgPushButton("OK") dlgAccept();

    };

     

    system(sCmd);

     

    >

    Nur wen Sie in dem Textfeld die \ (Backslash) sehen, dann klappt es

    auch mit DOS.

     

    Vielen Dank, der \ hats gebracht. Ich denke ich schreibe die

    zusätzlichen \ im ULP in den String rein, damit im Atrribut der "schöne"

    Dateiname C:\WOM 25120.pdf erhalten bleibt.

     

    Jetzt funktionierts auch ohne "start-Kommandozusatz". Eagle reagiert

    nicht mehr langsam und weitere ULP's können geöffnet werden.

     

    --

    mfg Patrick Steiner

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 14 years ago in reply to Former Member

    Am 01.06.2011 10:23, schrieb A. Zaffran:

    Am 01.06.2011 09:58, schrieb Patrick Steiner:

    >> Ich habe diesen Hinweis umgesetzt:

    >>

    >> string sCmd;

    >> sprintf(sCmd, "cmd.exe /c start \"C:\WOM 25120.pdf\""); system(sCmd);

    >> //--> funktioniert nicht, DOS-Fenster öffnet sich, nichts passiert weiter

    >>

    >> sprintf(sCmd, "cmd.exe /c start C:\WOM 25120.pdf"); system(sCmd);

    >> //--> funktioniert nicht, Fehlermeldung "C:WOM konnte nicht gefunden

    >> werden"

     

    sprintf(sCmd, "cmd.exe /c start \"C:
    WOM 25120.pdf\"");

     

    Beachten Sie die Backslash!

     

    \" braucht man, um in einem String ein " anzugeben,

    das braucht wiederum DOS um einen Pfad/Dateinamen mit Leerzeichen

    als einen Namen zu erkennen.

     


    braucht man, um in einem String ein \ anzugeben.

     

    Ein Backslash leitet in C ein Sonderzeichen ein, für DOS braucht man

    aber leider die Backslash für die Trennzeichen Pfad/Dateiname.

    Es ist ein Trauerspiel mit MS.

     

    Hier eine Testumgebung:

     

    string sCmd;

     

    sprintf(sCmd, "cmd.exe /c start \"C:
    WOM 25120.pdf\"");

     

    dlgDialog("test") {

    dlgTextEdit(sCmd);

    dlgPushButton("OK") dlgAccept();

    };

     

    system(sCmd);

     

    ich nochmals, habe gerade bemerkt, dass Klammern () in Dateiname

    vorkommen können und der folgende Command nicht funktioniert.

     

    string sCmd;

    sprintf(sCmd, "cmd.exe /c \"C:
    WOM (25120).pdf\"");

    dlgDialog("test") {

    dlgTextEdit(sCmd);

    dlgPushButton("OK") dlgAccept();

    };

    system(sCmd);

     

    Wenn ich den Inhalt aus dem Vorschaudialog kopiere und in einem

    Dos-Command einfüge funktioniert der Aufruf.

    Kann es sein, dass die Klammer () nicht per Eagle cmd.exe funktioniert

    und gibt es noch andere (in Windows für Datei und Pfadnamen legale)

    Zeichen welche nicht durch diesen cmd.exe kommen.

     

    --

    mfg Patrick Steiner

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube