| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN | | |  | Eplan präsentiert in Hannover erste Einblicke in erweiterte Service-App , eine Pressemitteilung
|
Autor
|
Thema: Fehler in Script erkennen (183 / mal gelesen)
|
aban Mitglied Elektro-Konstrukteur

 Beiträge: 19 Registriert: 13.07.2017 - Windows 11-x64 - Electric P8 Prof. 2.9 SP1 Upd.13 - Electric P8 Prof. 2023 Upd.7
|
erstellt am: 22. Apr. 2025 16:19 <-- editieren / zitieren --> Unities abgeben:         
Hallo allerseits, ich gebe in EPLAN P8 mit Hilfe eines Scripts das aktuelle Projekt als PDF aus. Hier ein Script-Auszug:
Code: Progress oProgress2 = new Progress("SimpleProgress"); oProgress2.SetAllowCancel(true); oProgress2.SetAskOnCancel(true); oProgress2.BeginPart(100, ""); oProgress2.SetTitle("PDF-Datei wird erstellt ... "); oProgress2.ShowImmediately(); if (!oProgress2.Canceled()) { CommandLineInterpreter oCLI = new CommandLineInterpreter(); ActionCallingContext acc = new ActionCallingContext(); acc.AddParameter("TYPE", "PDFPROJECTSCHEME"); //acc.AddParameter("EXPORTSCHEME", "Standard"); acc.AddParameter("PROJECTNAME", strFullProjectname); //Vorgabewert: Projektname. Nur gültig, wenn EXPORTSCHEME nicht verwendet wird! acc.AddParameter("USEZOOMLEVEL", "0"); //Springen in Navigationsseiten acc.AddParameter("LANGUAGE", strSprache); acc.AddParameter("ZOOMLEVEL", "200"); //wenn USEZOOMLEVEL auf 1 dann hier Zoomstufe in mm acc.AddParameter("USESIMPLELINK", "1"); //1 = einfache Sprungfunktion acc.AddParameter("FASTWEBVIEW", "1"); //1 = schnelle Web-Anzeige acc.AddParameter("READONLYEXPORT", "1"); //1 = PDF wird schreibgeschützt acc.AddParameter("BLACKWHITE", strFarbe); //0 = farbig, 1 = PDF wird schwarz-weiss, 2 = Graustufen acc.AddParameter("EXPORTFILE", strPDFDirectory + strPDFFilename); oCLI.Execute("export", acc); } oProgress2.EndPart(true);
Ist die gewünschte Datei allerdings bereits vorhanden und geöffnet, dann wird das Script ohne Fehlermeldung beendet; natürlich aber auch, ohne Erstellung des PDFs. Wie kann ich diesen Fehler abfangen und per Meldung an den Benutzer rausgeben? Schon mal "Vielen Dank" für eure Hilfe! ------------------ Gruß, Aban. ================================================
"Das Dumme an Zitaten aus dem Internet ist, dass man nie weiß, ob sie wahr sind". [Leonardo da Vinci] [Diese Nachricht wurde von aban am 22. Apr. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
apps4eplan Mitglied freier Entwickler
 
 Beiträge: 137 Registriert: 26.11.2020 EEC Professional in allen Versionen
|
erstellt am: 22. Apr. 2025 17:57 <-- editieren / zitieren --> Unities abgeben:          Nur für aban
bereits vorhanden sollte nicht das Problem sein, da knallt Eplan einfach drüber, aber geöffnet wird halt Probleme machen?! Datei vorher versuchen zu löschen und wenn nicht möglich, MessageBox --> Datei dürfte geöffnet sein! Sollte Abhilfe schaffen?! ------------------ sind doch alles nur Nuller und Einser :-) !!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| Dipl.-Ing./M./BA/Techniker Elektro-Konstrukteur (m/w/d) | Die Hinterkopf GmbH ist ein inhabergeführtes, mittelständisches Unternehmen in zweiter Generation mit Sitz in Eislingen/Fils bei Göppingen (BaWü), das 1962 gegründet wurde. Das Familienunternehmen hat es bei der Entwicklung und Herstellung von großen Maschinen und Produktionslinien zur Herstellung und Dekoration zylindrischer Hohlkörper zur Weltmarkt- und Technologieführerschaft geschafft.... | Anzeige ansehen | Feste Anstellung |
|
Stringeater Mitglied
 
 Beiträge: 108 Registriert: 27.11.2014 EPLAN Electric P8 Select 2.9, Windows 10 EPLAN Electric P8 2025, Windows 10
|
erstellt am: 24. Apr. 2025 18:54 <-- editieren / zitieren --> Unities abgeben:          Nur für aban
Hallo Aban Du kannst die Funktion 'FileIsOpen' ins Script einfügen. Code: using System.IO/// <summary>Checks if specified file is open. Returns true if file is open. Returns false if file doesn't exist.</summary> public static bool FileIsOpen(string fullPath) { if (!File.Exists(fullPath)) return false; try { using (Stream stream = new FileStream(fullPath, FileMode.Open, FileAccess.ReadWrite, FileShare.None)) { } } catch { return true; } return false; }
Dann fügst du diese Prüfung vor deinen Code ein: Code: if (FileIsOpen(strPDFDirectory + strPDFFilename)) { MessageBox.Show("Bitte PDF schliessen") } else { [dein Code] }
Deiner Frage entnehme ich, dass du nur den Fall eines geöffneten PDF prüfen willst. Wenn du auch prüfen willst, ob ein PDF bereits existiert, dann ginge das mit: Code: if (File.Exists(strPDFDirectory + strPDFFilename))
Ich hoffe, das klappt. Gruss Stringeater Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |