Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  EPLAN Electric P8
  Script in Menü aufrufen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN
Autor Thema:  Script in Menü aufrufen (1540 mal gelesen)
DietmarP
Mitglied


Sehen Sie sich das Profil von DietmarP an!   Senden Sie eine Private Message an DietmarP  Schreiben Sie einen Gästebucheintrag für DietmarP

Beiträge: 5
Registriert: 18.12.2018

erstellt am: 28. Dez. 2020 10:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,
ich versuche mich gerade ein bißchen in die C# Programmierung einzuarbeiten.
Habe ein Script erstellt, womit ich ein Menü erstelle und mir externe Programme und pdf Dateien öffnen kann.

Jetzt versuche ich, ein zusätzliches script damit zu starten.
Leider habe ich bis jetzt damit noch keinen Erfolg und bekomme Fehlermeldungen, wenn ich das versuche. Ich habe diesen Script aus dem Buch EPLAN Electric P8 automatisieren, den ich dazu einbinden möchte und in einem Menüpunkt aufrufen kann:

public class _14_Beispiele_04_ExecuteScript
{
[Start] public void Function() {
CommandLineInterpreter cli = new CommandLineInterpreter(); ActionCallingContext acc = new ActionCallingContext();
acc.AddParameter(“ScriptFile”, @“C:\Test\01_Start.cs”);
cli.Execute(“ExecuteScript”, acc);
return;

Dabei erhalte ich aber Fehlermeldungen.

Ich würde das gerne hier integrieren:

        menuId = menu.AddMenuItem(
            "Projekt Backup erstellen", // Name: Menüpunkt
====>>>>>                                      // Name: Action
            "Backup wird erstellt...", // Statustext
            menuId, // Menü-ID
            1, // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
            false, // Separator davor anzeigen
            false // Separator dahinter anzeigen
            );

Kann mir da einer vielleicht auf die Sprünge helfen?

Vielen Dank im Voraus.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

F.S.
Moderator



Sehen Sie sich das Profil von F.S. an!   Senden Sie eine Private Message an F.S.  Schreiben Sie einen Gästebucheintrag für F.S.

Beiträge: 1815
Registriert: 23.04.2003

EPLAN Electric P8
2023 Prof.

erstellt am: 28. Dez. 2020 12:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für DietmarP 10 Unities + Antwort hilfreich

Hallo,

probier mal so (ohne Gewähr, da nicht getestet) 

Code:

      string sScriptFileName = @“C:\Test\01_Start.cs”

      menuId = menu.AddMenuItem(
            "Projekt Backup erstellen", // Name: Menüpunkt
            "ExecuteScript /ScriptFile:\"" + sScriptFileName, // Name: Action
            "Backup wird erstellt...", // Statustext
            menuId, // Menü-ID
            1, // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
            false, // Separator davor anzeigen
            false // Separator dahinter anzeigen
            );


------------------
grüße
FrankS

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

DietmarP
Mitglied


Sehen Sie sich das Profil von DietmarP an!   Senden Sie eine Private Message an DietmarP  Schreiben Sie einen Gästebucheintrag für DietmarP

Beiträge: 5
Registriert: 18.12.2018

erstellt am: 28. Dez. 2020 17:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
vielen Dank für die Antwort.
Ich habe das jetzt soweit ohne Scriptfehler hinbekommen.

Der Code Teil:
      string sScriptFileName = @“C:\Test\01_Start.cs”;

bzw:
      private string sScriptFileName = @“C:\Test\01_Start.cs”;

liegt direkt unter public class.

Leider aber ohne Funktion, weder Start des Skriptes noch Fehlermeldung.

Habe jetzt schon einiges probiert, komme aber noch nicht weiter. 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

F.S.
Moderator



Sehen Sie sich das Profil von F.S. an!   Senden Sie eine Private Message an F.S.  Schreiben Sie einen Gästebucheintrag für F.S.

Beiträge: 1815
Registriert: 23.04.2003

EPLAN Electric P8
2023 Prof.

erstellt am: 28. Dez. 2020 17:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für DietmarP 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von DietmarP:
Der Code Teil:
      string sScriptFileName = @“C:\Test\01_Start.cs”;

bzw:
      private string sScriptFileName = @“C:\Test\01_Start.cs”;

liegt direkt unter public class.


Hallo,
wieso direkt unter public class ?,
dies gehört direkt über die Zeile des AddMenuItem.

Am besten hier mal das ganze Script hochladen oder zumindest den Abschnitt mit dem [DeclareMenu]

------------------
grüße
FrankS

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

DietmarP
Mitglied


Sehen Sie sich das Profil von DietmarP an!   Senden Sie eine Private Message an DietmarP  Schreiben Sie einen Gästebucheintrag für DietmarP

Beiträge: 5
Registriert: 18.12.2018

erstellt am: 28. Dez. 2020 18:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
habe das jetzt mal soangepasst. Aber nach wie vor ohne Funktion.
Hier ist mal das Script:

using System;
using System.Diagnostics;
using System.Windows.Forms;
using Eplan.EplApi.Base;
using Eplan.EplApi.Scripting;

public class _09_Externe_Programme_02_PID_Tools
{
    private object oCLI;

    [DeclareAction("StartProcess")]
    public void Function(string processName, string parameter)
    {
        try
        {
            parameter = PathMap.SubstitutePath(parameter);
            Process.Start(processName, parameter);
        }
        catch (Exception ex)
        {
            MessageBox.Show(
                ex.Message,
                "Fehler",
                MessageBoxButtons.OK,
                MessageBoxIcon.Error
                );
        }

        return;
    }

    [DeclareMenu]
    public void MenuFunction()
    {
        Eplan.EplApi.Gui.Menu menu = new Eplan.EplApi.Gui.Menu();

        uint menuId; // Menü-ID vom neu erzeugten Menü

        menuId = menu.AddMainMenu(
            "Tools", // Name: Menü
            "Hilfe", // neben Menüpunkt
            "Taschenrechner", // Name: Menüpunkt
            "StartProcess /processName:calc /parameter:''", // Name: Action
            "Taschenrechner öffnen...", // Statustext
            1 // 1 = Hinter Menüpunkt, 0 = Vor Menüpunkt
            );

        string quote = "\"";

        menuId = menu.AddMenuItem(
            "Zeichentabelle", // Name: Menüpunkt
            "StartProcess /processName:charmap /parameter:''", // Name: Action
            "Zeichentabelle öffnen...", // Statustext
            menuId, // Menü-ID: Einfügen/Fenstermakro...
            1, // 1 = Hinter Menüpunkt, 0 = Vor Menüpunkt
            false, // Separator davor anzeigen
            false // Separator dahinter anzeigen
            );

        menuId = menu.AddPopupMenuItem(
            "Projektbearbeitung", // Name: Menü
            "Projektordner öffnen", // Name: Menüpunkt
            "StartProcess /processName:explorer /parameter:"
                + quote + "$(PROJECTPATH)" + quote, // Name: Action
            "Projektordner im Explorer öffnen...", // Statustext
            menuId, // Menü-ID: Einfügen/Fenstermakro...
            1, // 1 = Hinter Menüpunkt, 0 = Vor Menüpunkt
            false, // Separator davor anzeigen
            false // Separator dahinter anzeigen
            );

      string sScriptFileName = @"W:\OneDrive\PID\EPLAN_P8_Script\Code\EPLAN Scripting Project\14_Beispiele\_08_Backup.cs";

        menuId = menu.AddMenuItem(
            "Projektbackup erstellen", // Name: Menüpunkt
            "ExecuteScript /ScriptFile:\"" + sScriptFileName, // Name: Action
            "Backup wird erstellt...", // Statustext
            menuId, // Menü-ID
            1, // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
            false, // Separator davor anzeigen
            true // Separator dahinter anzeigen
            );

        menuId = menu.AddPopupMenuItem(
            "Handbücher", // Name: Menü
            "EPLAN Electric P8 Artikelverwaltung", // Name: Menüpunkt
            "StartProcess /processName:"
                + quote + @"H:\\PID\Documentation & Manuals\EPLAN\EPLAN Electric P8 Artikelverwaltung.pdf" + quote
                + " /PARAMETER:''", // Name: Action
            "PDF öffnen...", // Statustext
            menuId, // Menü-ID
            1, // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
            true, // Separator davor anzeigen
            false // Separator dahinter anzeigen
            );

        menuId = menu.AddMenuItem(
            "EPLAN Electric P8 automatisieren", // Name: Menüpunkt
            "StartProcess /processName:"
                + quote + @"H:\\PID\Documentation & Manuals\EPLAN\EPLAN Electric P8 automatisieren.pdf" + quote
                + " /PARAMETER:''", // Name: Action
            "PDF öffnen...", // Statustext
            menuId, // Menü-ID
            1, // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
            false, // Separator davor anzeigen
            false // Separator dahinter anzeigen
            );

        return;

    }
}

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

F.S.
Moderator



Sehen Sie sich das Profil von F.S. an!   Senden Sie eine Private Message an F.S.  Schreiben Sie einen Gästebucheintrag für F.S.

Beiträge: 1815
Registriert: 23.04.2003

EPLAN Electric P8
2023 Prof.

erstellt am: 29. Dez. 2020 18:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für DietmarP 10 Unities + Antwort hilfreich

Hallo,

ich habe das Script etwas angepasst und getestet, funktioniert 
Ich habe natürlich ein bei mir vorhandenes Script in sScriptFileName eingetragen, außerdem verwende ich für jedes Menü und PopupMenü eigene Variablen für die Menü-ID's

Code:

using System;
using System.Diagnostics;
using System.Windows.Forms;
using Eplan.EplApi.Base;
using Eplan.EplApi.Scripting;

public class _09_Externe_Programme_02_PID_Tools
{
    private object oCLI;

    [DeclareAction("StartProcess")]
    public void Function(string processName, string parameter)
    {
        try
        {
            parameter = PathMap.SubstitutePath(parameter);
            Process.Start(processName, parameter);
        }
        catch (Exception ex)
        {
            MessageBox.Show(
                ex.Message,
                "Fehler",
                MessageBoxButtons.OK,
                MessageBoxIcon.Error
                );
        }

        return;
    }

    [DeclareMenu]
    public void MenuFunction()
    {
        Eplan.EplApi.Gui.Menu menu = new Eplan.EplApi.Gui.Menu();

        uint menuId1; // Menü-ID vom neu erzeugten Menü

        menuId1 = menu.AddMainMenu(
            "Tools", // Name: Menü
            "Hilfe", // neben Menüpunkt
            "Taschenrechner", // Name: Menüpunkt
            "StartProcess /processName:calc /parameter:''", // Name: Action
            "Taschenrechner öffnen...", // Statustext
            1 // 1 = Hinter Menüpunkt, 0 = Vor Menüpunkt
            );

        string quote = "\"";

        menu.AddMenuItem(
            "Zeichentabelle", // Name: Menüpunkt
            "StartProcess /processName:charmap /parameter:''", // Name: Action
            "Zeichentabelle öffnen...", // Statustext
            menuId1, // Menü-ID: Einfügen/Fenstermakro...
            int.MaxValue, // 1 = Hinter Menüpunkt, 0 = Vor Menüpunkt
            false, // Separator davor anzeigen
            false // Separator dahinter anzeigen
            );

uint menuId2; // Menü-ID vom neu erzeugten Menü
        menuId2 = menu.AddPopupMenuItem(
            "Projektbearbeitung", // Name: Menü
            "Projektordner öffnen", // Name: Menüpunkt
            "StartProcess /processName:explorer /parameter:"
                + quote + "$(PROJECTPATH)" + quote, // Name: Action
            "Projektordner im Explorer öffnen...", // Statustext
            menuId1, // Menü-ID: Einfügen/Fenstermakro...
            int.MaxValue, // 1 = Hinter Menüpunkt, 0 = Vor Menüpunkt
            false, // Separator davor anzeigen
            false // Separator dahinter anzeigen
            );

string sScriptFileName = @"C:\Users\Frank\OneDrive\Eplan\Skripte\Eigene\GetEplanVersion.cs";

        menu.AddMenuItem(
            "Projektbackup erstellen", // Name: Menüpunkt
            "ExecuteScript /ScriptFile:\"" + sScriptFileName, // Name: Action
            "Backup wird erstellt...", // Statustext
            menuId2, // Menü-ID
            int.MaxValue, // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
            false, // Separator davor anzeigen
            false // Separator dahinter anzeigen
            );

        uint menuId3; // Menü-ID vom neu erzeugten Menü
menuId3 = menu.AddPopupMenuItem(
            "Handbücher", // Name: Menü
            "EPLAN Electric P8 Artikelverwaltung", // Name: Menüpunkt
            "StartProcess /processName:"
                + quote + @"H:\\PID\Documentation & Manuals\EPLAN\EPLAN Electric P8 Artikelverwaltung.pdf" + quote
                + " /PARAMETER:''", // Name: Action
            "PDF öffnen...", // Statustext
            menuId2, // Menü-ID
            int.MaxValue, // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
            false, // Separator davor anzeigen
            false // Separator dahinter anzeigen
            );

        menu.AddMenuItem(
            "EPLAN Electric P8 automatisieren", // Name: Menüpunkt
            "StartProcess /processName:"
                + quote + @"H:\\PID\Documentation & Manuals\EPLAN\EPLAN Electric P8 automatisieren.pdf" + quote
                + " /PARAMETER:''", // Name: Action
            "PDF öffnen...", // Statustext
            menuId3, // Menü-ID
            int.MaxValue, // 1 = hinter Menüpunkt, 0 = vor Menüpunkt
            false, // Separator davor anzeigen
            false // Separator dahinter anzeigen
            );
    }
}


------------------
grüße
FrankS

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

DietmarP
Mitglied


Sehen Sie sich das Profil von DietmarP an!   Senden Sie eine Private Message an DietmarP  Schreiben Sie einen Gästebucheintrag für DietmarP

Beiträge: 5
Registriert: 18.12.2018

erstellt am: 30. Dez. 2020 07:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Frank,
vielen Dank für die Arbeit die du dir gemacht hast.
Ich habe das mal alles so übernommen und den Pfad für den sScriptFileName angepasst.

Ich habe das jetzt auch bei mir am laufen bekommen. Der Aufbau vom Script ist jetzt auch strukturierter mit den menuId's.
Da das jetzt mit den Script Aufrufen funktioniert, werde ich mich mal daran machen, und das passend erweitern.

Du hast mir da sehr geholfen.

Einen schönen Tag

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz