Autor Beitrag
Kasko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 126
Erhaltene Danke: 1

Win 10
C# C++ (VS 2017/19), (Java, PHP)
BeitragVerfasst: Fr 18.12.20 02:21 
Ich möchte die Window-Handles von Prozessen auslesen, die eine Medienwiedergabe durchführen. Dafür lese ich über den GlobalSystemMediaTransportControlsSessionManager die einzelnen Media Sessions aus. Für jede Media-Session kann ich nun die AppUserModelId des wiedergebenden Programmes auslesen. Ich möchte nun den dazugehörigen Prozess auslesen. Wie kann ich die AppUserModelId eines Prozesses auslesen um sie mit der AppUserModelId der Session zu vergleichen?

Wenn ich versuche AppInfo.GetFromAppUserModelId auszurufen bekomme ich eine MissingMethodException. In den Microsoft-Docs steht drin ich benötige den Windows.Foundation.UniversalApiContract. Wenn ich allerdings versuche den zu referenzieren, bekomme ich den Fehler: This component is already automatically referenced by the build system. Also warum wird die Methode nicht gefunden?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4706
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 18.12.20 12:26 
Meine Vermutung ist das dein OS einfach zu alt ist. Laut Doku braucht man mindestens Win10 v2004.
In einem früheren Windows Build fehlt vermutlich die nötige Methode in der Windows API.


Je nachdem was du vorhast mit den Prozessen die du suchst sei dir bewußt das AppUserModelId und Process keine 1-1 Beziehung ist. Ein Prozess kann mehrere haben. Und mehrere Prozesse könne die gleiche AppUserModelId haben (wenn explizit gesetzt).
Kasko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 126
Erhaltene Danke: 1

Win 10
C# C++ (VS 2017/19), (Java, PHP)
BeitragVerfasst: Fr 18.12.20 20:46 
Ich habe Windows 20H2. Aber meine Frage bezog sich nicht nur auf die nicht gefundene Methode, sondern eigentlich auf die Frage wie ich den/die Prozess/-e die eine bestimmte SourceAppUserModelId haben auslesen kann. Ich benötige lediglich die Prozess-Ids.