| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
| |
 | 2 Millionen Marke geknackt: Nächster Meilenstein im Eplan Data Portal erreicht, eine Pressemitteilung
|
Autor
|
Thema: Aktive Addins + Version über Eplan API ermitteln (2750 / 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: 1998 Registriert: 21.01.2006 EPLAN Electric P8 2024.0.3 Update 1 (Build 21460) 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: 1924 Registriert: 23.04.2003 EPLAN Electric P8 2025 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 |

| Fachplaner für Elektrotechnik (m/w/d) | Wir sind eine international tätige Unternehmensgruppe der Automatisierungstechnik und beschäftigen über 1.000 Mitarbeiter und Mitarbeiterinnen an diversen Standorten. Entwickelt werden speziell auf den jeweiligen Kundenwunsch zugeschnittene Lösungskonzepte für Unternehmen aus den verschiedensten Branchen - vom Mittelstand bis zur Großindustrie. Zur Verstärkung unseres Teams suchen wir am ... | Anzeige ansehen | Feste Anstellung |
|
Jonny Wire Mitglied Script-Troll
  
 Beiträge: 811 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 |