| |
| 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 (2445 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: 1987 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: 1815 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 |
Jonny Wire Mitglied Script-Troll
Beiträge: 786 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 |