Um deine Frage zu konkretisieren: wie kannst Du aus einem EditorService heraus einen EditorWizard starten. (s.o.) Dazu musst Du eigentlich nur in dem Service einen Verweis auf den bzw. die Wizards machen.
Ich hab das mal getestet. Mein Wizard heisst im Beispiel AddInEditorWizard_Test1, der Service EditorService_Test1. Der Service fängt hier das Project_Loaded Event ab und startet den Wizard wenn das geladene Projekt "CD_HMI_TEMPLATE" heisst. Für Deinen Anwendungsfall müsstest Du das natürlich anpassen und vor allem auch den default StartupMode des Service auf Automatisch stellen + eben denn die zusätzlichen Daten von irgendwoher holen (s.o. Datei, zenon RT...)
Code:
using System;
using Scada.AddIn.Contracts;
using AddInEditorWizard_Test1;
namespace EditorService_Test_1
{
///
/// Description of Editor Service Extension.
///
[AddInExtension("MSt Test - Wizard aus Service starten", "Testservice zum Starten eines Testwiards beim Laden des Projekts 'CD_HMI_Template'",DefaultStartMode = DefaultStartupModes.Manual)]
public class EditorServiceExtension : IEditorServiceExtension
{
#region IEditorServiceExtension implementation
IEditorApplication zEdApp = null;
IWorkspace zWorkspace = null;
public void Start(IEditorApplication context, IBehavior behavior)
{
zEdApp = context;
zWorkspace = context.Workspace;
zWorkspace.ProjectLoaded += ZWorkspace_ProjectLoaded;
}
private void ZWorkspace_ProjectLoaded(object sender, ProjectLoadedEventArgs e)
{
if (e.Project.Name == "CD_HMI_TEMPLATE")
{
AddInEditorWizard_Test1.EditorWizardExtension wiz = new EditorWizardExtension();
IBehavior behavior= null;
wiz.Run(zEdApp, behavior);
}
}
public void Stop()
{
zWorkspace.ProjectLoaded -= ZWorkspace_ProjectLoaded;
zWorkspace = null;
zEdApp = null;
}
#endregion
}