Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  EPLAN Electric P8
  Eplan 2.7.3 Makro via Scipting - Sendkeys Problem

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:  Eplan 2.7.3 Makro via Scipting - Sendkeys Problem (1189 mal gelesen)
SvenOlaf3458zu19er
Mitglied



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

Beiträge: 15
Registriert: 28.10.2020

erstellt am: 28. Okt. 2020 15:45    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 hab mal ne frage zum Eplan Scripting:

ich versuche Makros per Skript auf Seiten zu platzieren,
wenn ich ein Seitenmakro via Skript einfüge, kann ich den folgenden Dialog per "SendKeys" bestätigen:


Code:

using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Scripting;


public class InsertPageMacro
{
    [Start]
    public void InsertPageMacroVoid()
    {
        string strFilename = @"D:\test\Greifer\FG001.emp";

Parallel.Invoke(() =>InsertMacro(strFilename),KeyPress);
    }


private static void InsertMacro(string strFilename)

{

ActionCallingContext oAcc = new ActionCallingContext();
        CommandLineInterpreter oCLI = new CommandLineInterpreter();

        oAcc.AddParameter("filename", strFilename);
        oCLI.Execute("XMInsertPageMacro", oAcc);


}


  private void KeyPress()

{

Thread.Sleep(1000);
SendKeys.SendWait("{TAB}");
Thread.Sleep(100);
SendKeys.SendWait("{TAB}");
Thread.Sleep(100);
SendKeys.SendWait("{ENTER}");
Thread.Sleep(100);
SendKeys.SendWait("{TAB}");
Thread.Sleep(100);
SendKeys.SendWait("{TAB}");
Thread.Sleep(100);
SendKeys.SendWait("{ENTER}");

}

}


Wenn ich allerdings versuche per Script eine Fenstermakro abzulegen wird "Sendkeys" praktisch ignoriert:

Code:

using Eplan.EplApi.ApplicationFramework;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using Eplan.EplApi.Scripting;

public class Script

{

[DeclareAction("MacroImport")]
[Start]


public void Action()

{
string macroFileName = @"D:\test\Makros\Allgemein\Abbruchstelle_PN.ema";
string pageName = "=Bsp/1";
editor(pageName);
Parallel.Invoke(() => InsertMacro(macroFileName), sKey);


}

private void InsertMacro(string macroFileName)

{
ActionCallingContext acc = new ActionCallingContext();
acc.AddParameter("Name", "XMIaInsertMacro");
acc.AddParameter("filename", macroFileName);
acc.AddParameter("variant", "0");
CommandLineInterpreter cli = new CommandLineInterpreter();
cli.Execute("XGedStartInteractionAction", acc);
Thread.Sleep(20);
}


private static void editor(string pageName)
{
ActionCallingContext acc2 = new ActionCallingContext();
acc2.AddParameter("PAGENAME", pageName); // Full page name
acc2.AddParameter("X", "20");
acc2.AddParameter("Y", "30");
CommandLineInterpreter cli2 = new CommandLineInterpreter();
cli2.Execute("edit", acc2);
Thread.Sleep(20);
}

private void sKey()
{
Thread.Sleep(500);
SendKeys.SendWait("{ENTER}");

}

}


Natürlich hab ich vorher das Forum durchsucht und bin auch auf die Posts gestoßen in denen das diskutiert wurde, aber eine Lösung hab ich dort nicht gefunden.

Aber ich denke (hoffe, glaube, denke, beschwöre) das es hierfür eine Lösung geben müsste, da es im ersten Skript ja auch funktioniert...

Ich bin für jegliche Inspiration offen...

Die Ansätze API, ECC, usw. sind mir bekannt, kommen aber preislich eher nicht in Frage.

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