| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
Autor
|
Thema: Aktive Addins + Version über Eplan API ermitteln (2195 mal gelesen)
|
BetterOfTwoEvils Mitglied

 Beiträge: 11 Registriert: 19.10.2004
|
erstellt am: 26. Mrz. 2019 14:16 <-- editieren / zitieren --> Unities abgeben:         
|
nairolf Ehrenmitglied Elektroingenieur
    
 Beiträge: 1970 Registriert: 21.01.2006 EPLAN Electric P8 2022.0.3 Update 2 (Build 17673) EPLAN Pro Panel Professional Addon EPLAN Fluid Addon
|
erstellt am: 26. Mrz. 2019 14:22 <-- editieren / zitieren --> Unities abgeben:          Nur für BetterOfTwoEvils
Du meins registrierte API-Addins ? Die werden in den Stationseinstellungen registriert, dort im Settings-Pfad STATION.EplanEplApiModule.Module durchsuchen. Für jedes AddIn gibt es einen Eintrag, und im Setting AssemblyName sollte der Version auslesbar sein. (das geht auch per Scripting, falls die Info wichtig sein sollte) LG nairolf ------------------ Der Fuchs ist schlau und stellt sich dumm. Bei vielen ist es andersrum  ------------------------------------------ Da lernt man mühevoll laufen und sprechen, und nun soll ich stillsitzen und die Klappe halten ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BetterOfTwoEvils Mitglied

 Beiträge: 11 Registriert: 19.10.2004
|
erstellt am: 27. Mrz. 2019 15:13 <-- editieren / zitieren --> Unities abgeben:         
Hi nairolf, erstmal Danke für Deine Antwort. Ich habe es jetzt mal probiert mit folgendem Code: Code: var settings = new Settings(); var moduleCount = settings.GetCountOfValues("STATION.EplanEplApiModule.Module");
bzw. Code: var module1 = settings.GetStringSetting("STATION.EplanEplApiModule.Module",0);
Das klappt leider noch nicht, bekomme folgenden Fehler: S024001Der Pfad für die Einstellungen ist ungültig. Parametername: STATION.EplanEplApiModule.Module Hast Du eine Idee was ich falsch mache? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
F.S. Moderator
    
 Beiträge: 1788 Registriert: 23.04.2003 EPLAN Electric P8 2023 Prof.
|
erstellt am: 28. Mrz. 2019 10:17 <-- editieren / zitieren --> Unities abgeben:          Nur für BetterOfTwoEvils
Hallo, es geht in etwa so
Code:
using System.Collections.Specialized;public class GetAPIAddIns { [Start()] public void GetAPIAddInsAbfragen() { MessageBox.Show("API AddIns:\n" + sGetAPIAddIns(), "GetAPIAddIns", MessageBoxButtons.OK, MessageBoxIcon.Information); } public string sGetAPIAddIns() { string APIAddIns = string.Empty; Settings settings = new Settings(); SettingNode oSettingNode = new SettingNode("STATION.EplanEplApiModule.Module"); StringCollection oSubnodes = new StringCollection(); oSettingNode.GetListOfNodes(ref oSubnodes, false); foreach (string sSubNode in oSubnodes) { SettingNode oSubNode = oSettingNode.GetSubNode(sSubNode); string sAssemblyName = oSubNode.GetNodePath() + ".AssemblyName"; APIAddIns = APIAddIns + "\n" + settings.GetStringSetting(sAssemblyName, 0); } return APIAddIns; } }
------------------ grüße FrankS Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| EPLAN Elektroniker/in (m/w/d) | WIR ENTWICKELN LÖSUNGEN FÜR DIE ZUKUNFT! Durch effektive Zusammenarbeit und der Verfolgung gleicher Unternehmensziele ergänzen sich die Leistungsbereiche unserer einzelnen Unternehmen und die über 550 Mitarbeiter der MHC Gruppe perfekt. Mit einem fest aufgeteilten Workflow entwickeln wir qualitativ hochwertige und effiziente Lösungen und bieten hier auch den dazugehörigen Service, der immer auf unsere Kunden abgestimmt ist.... | Anzeige ansehen | Elektrotechnik, Elektronik |
|
Jonny Wire Mitglied Script-Troll
  
 Beiträge: 777 Registriert: 08.12.2008 EPLAN Electric P8 ... in allen Versionen/Varianten
|
erstellt am: 01. Apr. 2019 11:12 <-- editieren / zitieren --> Unities abgeben:          Nur für BetterOfTwoEvils
Hab das mal ausprogrammiert für API-Addins und Scripte: Code:
using System.Windows.Forms; using Eplan.EplApi.Base; using Eplan.EplApi.Scripting; using System.Collections.Generic; using System.Collections.Specialized;public class ReadApiAddinsAndScripts { [Start] public void Action() { // API addins List<string> apiAddins = GetApiAddins(); string apiAddinsText = string.Join("\n", apiAddins); MessageBox.Show(apiAddinsText, "ApiAddins", MessageBoxButtons.OK, MessageBoxIcon.Information); // scripts List<string> scripts = GetScripts(); string scriptsText = string.Join("\n", scripts); MessageBox.Show(scriptsText, "Scripts", MessageBoxButtons.OK, MessageBoxIcon.Information); } public List<string> GetApiAddins() { List<string> list = new List<string>(); Settings settings = new Settings(); SettingNode settingsNode = new SettingNode("STATION.EplanEplApiModule.Module"); StringCollection nodes = new StringCollection(); settingsNode.GetListOfNodes(ref nodes, false); foreach (string node in nodes) { SettingNode subNode = settingsNode.GetSubNode(node); string name = subNode.GetNodePath() + ".AssemblyName"; var text = settings.GetStringSetting(name, 0); list.Add(text); } return list; } private List<string> GetScripts() { List<string> list = new List<string>(); Settings settings = new Settings(); string settingsPath = "STATION.EplanEplApiScriptGui.Scripts"; var count = settings.GetCountOfValues(settingsPath); for (var index = 0; index < count; index++) { var text = settings.GetStringSetting(settingsPath, index); list.Add(text); } return list; } }
------------------
→ Scripting in EPLAN ist einfach (toll)!
→ Scripte & Anwendungen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |