Как получить список процессов, запущенных в данный момент на виртуальной машине Azure, в приложении UWP - PullRequest
2 голосов
/ 17 мая 2019

Мне было интересно, может ли кто-нибудь помочь мне с функцией, которую я хотел бы добавить в одну из моих утилит. У меня есть своего рода приложение панели управления, созданное в UWP, и я хотел бы включить функцию, которая дает вам представление о том, работает ли пакетный процессор на Azure VM.

Итак, идея непрофессионала о том, что я хочу, заключается в том, что я хочу получить то, что отображается на вкладке процессов диспетчера задач, и отобразить его в своем приложении.

Я прошел несколько маршрутов, как это сделать, но мне кажется, что я сталкиваюсь с камнем преткновения вокруг самого UWP, или платформы Azure, или обоих.

Итак, я просмотрел довольно много документации, наиболее полезной из которых являются:

https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process.getprocesses?view=netframework-4.8

        // Get all instances of Notepad running on the specific computer, using machine name.
        Process[] remoteByName = Process.GetProcessesByName("notepad", "myComputer");

Это было бы идеально для меня, но, похоже, не работает с платформой UWP.

Я получаю: InvalidOperationException: счетчик производительности процесса отключен, поэтому запрошенная операция не может быть выполнена.

Похоже, что спуск по кроличьей норе из-за этой ошибки не дает решения для моего варианта использования.

И я тоже смотрел на https://docs.microsoft.com/en-us/azure/virtual-machines/windows/csharp

var vm = azure.VirtualMachines.GetByResourceGroup(groupName, vmName);

Но для этого нужно, чтобы я добавлял приложения на наш портал Azure, но я бы не стал этого делать, если смогу помочь.

Я также пытался пойти по пути олицетворения, но сама виртуальная машина, похоже, не позволяет этого.

Может ли кто-нибудь из вас предоставить какие-либо передовые методы с указанными выше ограничениями, которые могут дать мне эту информацию?

Заранее большое спасибо.

1 Ответ

0 голосов
/ 23 мая 2019

Вы можете использовать подход «GetProcessByName» в UWP, добавив полное настольное расширение для своего UWP. В этом расширении вы можете затем выполнить вызов GetProcessByName () и передать информацию обратно в UWP. Некоторая информация о том, как добавить расширение fulltrut здесь: docs.microsoft.com/en-us/uwp/api/…, полное руководство в моем блоге здесь: stefanwick.com/2018/04/06/uwp-with-desktop -расширение-часть-1

Я бы согласился, что это более запутанно, на что можно было бы надеяться, но здесь можно обойти ограничение контейнера приложений UWP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...