Daniel Papp ist immer fleißig, vielen Dank nochmal an dieser Stelle.
Aufgrund der Implementierung von CAE-Consulting ist nun bekannt wie man DLLs im Scripting nutzen kann. Somit kann man auch Excel oder SQL bedienen… eigentlich Alles außer der immer noch kostenpflichtigen EPLAN API…
Vielen Dank für das Beispiel! Wie gewohnt findet man die Daten auf Daniels GitHub Repo.
using System; using System.Reflection; using System.Windows.Forms; namespace ExternalTestAssembly { public class Script { [Start] public void Run() { //AbsoluteAssemblyPath: for example "C:\Users\Public\EPLAN\Data\Binaries\MyWPFControlLibrary.dll Assembly myAssembly = Assembly.LoadFrom(@"AbsoluteAssemblyPath"); //Namespace.ClassName: absolute name of the class to instaciate //"InstAttibute": if the constructor of the class needs some attributes Object objectOfTestClass = myAssembly.CreateInstance("Namespace.ClassName", false, BindingFlags.ExactBinding, null, new Object[] {"InstAttibute"}, null, null); //Namespace.ClassName: again the class name to get the methode to execute //MethodName: Name of the method to execute MethodInfo show = myAssembly.GetType("Namespace.ClassName").GetMethod("MethodName"); //result: remove if methode has no return type (void) //"MethodAttribute": attributes for the methode (could also be empty) Boolean result = (Boolean)show.Invoke(objectOfTestClass, new Object[]{ "MethodAttribute" }); //go on with simple scriptcode if (result == true) { MessageBox.Show("Welcome to wonderland!"); } else { MessageBox.Show("So you're not the chosen one!"); } } } }
Hello,
Is this approach still available in 2.4/2.6?
I’ve tried to use it with another script (console application) but the message “The EPLAN API licence is not available. Please request from EPLAN ….”
I just would like to know if I’m doing something wrong or if this has been blocked by EPLAN.
Please feedback.
Thanks.
I think you used API calls in the script.
Wann muss ich das Script immer ausführen?
Das Script startet die DLL, somit ist das Script die Action (ist aber als “Ausführen” deklariert).
In wiefern kann ich dadurch Excel bedienen? Einfach mit dem Script die excel interop dll laden?
Theoretisch alle abhängigen DLLs laden, würde aber überlegen ob es nicht einfach wäre die Daten per Textdatei zu exportieren und einer externen Applikation zu übergeben. Ist meist einfacher.
Hat jemand schonmal die office interop word dll mit diesem skript versuch ich bekomm immer die meldung “Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.”
Sollte möglich sein.
Hört sich so an als wäre ein Objekt null und vermute du hast hier was etwas falsch aufgerufen.