2013-11-08 4 views
3

на кнопку мои окна будет завершение работы я занимаюсь разработкой приложения метро для окон 8.1 с использованием языка C#мой проект не может использовать System.Diagnostics.Process

с использованием библиотеки

using System.Diagnostics; 
using System.Runtime.InteropServices; 

действие

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     Process.Start("shutdown", "/s /t 0"); 
    } 

красная полоса в «процессе»

так, почему он не мог читать прогресс и есть ли другой способ, Спасибо

ответ

7

Metro и приложения имеет только ограниченный набор классов, полезные, то Process класса один из удаленных классов. Если у класса нет значка магазина Windows (enter image description here) в MSDN, когда вы смотрите в namespace view, тогда класс недоступен для использования в приложениях метро.

Приложения Metro изолированы и не могут взаимодействовать с другими процессами и не запускать новые процессы сами по себе, поэтому нет альтернатив для запуска shutdown.exe, если вы не готовы сделать свое приложение настольным приложением вместо приложения метро.

Взглянув на «Alternatives to Windows APIs in Windows Store apps», вы можете видеть, что нет никакого эквивалента метро, ​​эквивалентного API User: shutdown.

Если вы абсолютно не хотите создавать настольные приложения, но все же хотите, чтобы можно было отключить другую работу, я могу подумать, что это вторая программа, которая работает как системный сервис, который используется вашим приложением метро может разговаривать через какую-то форму IPC. Таким образом, ваше приложение метро может отправить запрос на услугу, тогда служба будет инициировать команду shutdown.

+0

Спасибо ** Скотт ** – Alaeddine

Смежные вопросы