lu.koerfer
Level-1
- Beiträge
- 5
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Die TIA Openess API V15 stellt eine Möglichkeit bereit, sich an laufende Prozesse des TIA Portals anzuhängen (via Attach()), was problemlos funktioniert. Es ist auch möglich, dass in TIA bereits ein Projekt geöffnet ist.
Leider finde ich keine Möglichkeit in diesem Fall an die Project-Instanz zu gelangen, die man benötigt, um projektspezifische Funktionalität anzusteuern. Die mir bekannten Wege eine Project-Instanz zu erhalten sind die Funktionen Create(), Open() und OpenWithUpgrade(), die jedoch allesamt nicht zu funktionieren scheinen, wenn bereits ein Projekt in TIA geöffnet ist. Dies gilt auch für den Projektpfad des bereits geöffneten Projektes, das über die ProjectPath-Eigenschaft abgefragt werden kann, bevor man sich über Attach() an einen Prozess anbindet.
Ich würde ungern selbst ein Projekt über die API anlegen bzw. öffnen, da ich zu diesem Zweck eine Eingabemöglichkeit erstellen müsste, die ohnehin schon in TIA umgesetzt ist. Kennt jemand eine Möglichkeit für ein bereits geöffnetes Projekt eine Project-Instanz abzurufen?
Leider finde ich keine Möglichkeit in diesem Fall an die Project-Instanz zu gelangen, die man benötigt, um projektspezifische Funktionalität anzusteuern. Die mir bekannten Wege eine Project-Instanz zu erhalten sind die Funktionen Create(), Open() und OpenWithUpgrade(), die jedoch allesamt nicht zu funktionieren scheinen, wenn bereits ein Projekt in TIA geöffnet ist. Dies gilt auch für den Projektpfad des bereits geöffneten Projektes, das über die ProjectPath-Eigenschaft abgefragt werden kann, bevor man sich über Attach() an einen Prozess anbindet.
Ich würde ungern selbst ein Projekt über die API anlegen bzw. öffnen, da ich zu diesem Zweck eine Eingabemöglichkeit erstellen müsste, die ohnehin schon in TIA umgesetzt ist. Kennt jemand eine Möglichkeit für ein bereits geöffnetes Projekt eine Project-Instanz abzurufen?
Code:
var process = TiaPortal.GetProcesses().First();
var projectPath = process.ProjectPath;
using (TiaPortal portal = process.Attach())
{
// var project = ?
// var project = portal.Projects.Open(projectPath); -> Exception
}