2017-02-03 10 views
0

Я смотрел на этой странице: https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/launch-default-appКак открыть календарь Outlook из UWP приложения с URL

и кажется, что я могу запустить почти каждое приложение для Windows, но по какой-то причине это не вариант для запуска Календарь .. Как это сделать? Кроме того, что, если я хочу запустить программу x86?

ответ

0

но по какой-то причине нет возможности запустить Календарь .. Как это сделать?

Вы также можете запустить календарь по URL-адресу. Код выглядит следующим образом:

await Launcher.LaunchUriAsync(new Uri("outlookcal:")); 

Причина вы не знаете, как начать, что вы не нашли календарный протокол - «URL: outlookcal». Фактически вы можете найти протокол приложения, открыв «Настройки-> Стандартные приложения-> Выбрать приложения по умолчанию по протоколу».

enter image description here

Кроме того, что, если я хочу, чтобы запустить программу x86?

Для других приложений win32, даже UWP приложений, которые не являются приложением по умолчанию, они не имеют Url протокола по умолчанию, возможно, потребуется зарегистрировать протокол для приложения и обрабатывать активации URI. Тогда вы можете запустить его по классу Launcher таким же образом. Подробнее о том, как подать заявку Handle URI activation. Например, вы можете зарегистрировать Url для проекта WPF следующим образом:

private void InstallProtocol_Click(object sender, RoutedEventArgs e) 
{ 
    using (var hkcr = Registry.ClassesRoot) 
    { 
     if (hkcr.GetSubKeyNames().Contains(SchemeName.Text)) 
     { 
      MessageBox.Show(string.Format("Looks like {0} is already installed.", SchemeName.Text)); 
      return; 
     } 

     using (var schemeKey = hkcr.CreateSubKey(SchemeName.Text)) 
     { 
      //[HKEY_CLASSES_ROOT\com.aruntalkstech.wpftarget] 
      //@="Url:WPF Target Protocol" 
      //"URL Protocol"="" 
      //"UseOriginalUrlEncoding"=dword:00000001 
      schemeKey.SetValue(string.Empty, "Url: WPF Target Protocol"); 
      schemeKey.SetValue("URL Protocol", string.Empty); 
      schemeKey.SetValue("UseOriginalUrlEncoding", 1, RegistryValueKind.DWord); 

      //[HKEY_CLASSES_ROOT\com.aruntalkstech.wpf\shell] 
      using (var shellKey = schemeKey.CreateSubKey("shell")) 
      { 
       //[HKEY_CLASSES_ROOT\com.aruntalkstech.wpf\shell\open] 
       using (var openKey = shellKey.CreateSubKey("open")) 
       { 
        //[HKEY_CLASSES_ROOT\com.aruntalkstech.wpf\shell\open\command] 
        using (var commandKey = openKey.CreateSubKey("command")) 
        { 
         //@="C:\\github\\SampleCode\\UniversalAppLaunchingWPFApp\\WPFProtocolHandler\\bin\\Debug\\WPFProtocolHandler.exe \"%1\"" 
         commandKey.SetValue(string.Empty, Assembly.GetExecutingAssembly().Location + " %1"); 
         commandKey.Close(); 
        } 
        openKey.Close(); 
       } 
       shellKey.Close(); 
      } 
      schemeKey.Close(); 
     } 
     hkcr.Close(); 
    } 

    MessageBox.Show(string.Format("Custom scheme {0}: installed.", SchemeName.Text)); 
} 

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

  • Нет связанных вопросов^_^