SCClient.exe может открываться для указанного c пакета модели приложения (CCM_Application) через URL-адреса, отформатированные как softwarecenter: SoftwareID = {вставьте здесь свойство идентификатора CCM_Application Id}. У меня есть windows служба в C#, которая пытается оценить, доступен ли пакет модели приложения пользователю с помощью класса WMI:
ROOT\CCM\CLIENTSDK\CCM_Application.
Если пакет доступно, я хочу запустить URL-адрес приложения, которое затем откроет scclient для пользователя с scclient, отображающим информацию о приложении. Поскольку я работаю как система, следующее не работает
Process.Start(softwarecenter:SoftwareID=someRandomAppId)
Процесс запускается, но пользовательский интерфейс отсутствует, поскольку процесс запускается в контексте системы. Таким образом, я нахожусь в ситуации, когда мне нужно запустить этот URL-адрес как пользователь, а просто использовать win32Api.dll для олицетворения вошедшего в систему пользователя и запустить URL-адрес, так как пользователь не будет работать, так как по какой-то причине URL-адрес отсутствует ' не распознается, даже если URL-адрес распознается, когда я пытаюсь использовать Process.Start (URL) в консольном приложении.