TIA Openess Project-Instanz bei Anhängen an Prozess

lu.koerfer

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> 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?

Code:
var process = TiaPortal.GetProcesses().First();
var projectPath = process.ProjectPath;

using (TiaPortal portal = process.Attach())
{
    // var project = ?
    // var project = portal.Projects.Open(projectPath); -> Exception
}
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kann es wohl erst im neuen Jahr validieren, aber ja, Projects.First() bzw. allgemein die Verwendung der IEnumerable ProjectComposition dürfte die Lösung sein. Ich kann mir gerade selbst nicht erklären, wie ich nicht darauf kommen konnte, da ich zuvor noch versucht hatte, bei keinem geöffnetem Projekt über diese Aufzählung die zuletzt aufgerufenen Projekte abzufragen. Da eine Project-Instanz jedoch immer ein geöffnetes Projekt beschreibt, hätte diese andere Bedeutung keinen Sinn gemacht :eek:
 
Zurück
Oben