2017-02-07 13 views
0

Я пытаюсь создать приложение Windows C#, где мне нужно отправить ссылку на адрес электронной почты пользователя. При нажатии на ссылку должна появиться форма окна.Запустить форму Windows из Outlook Email

Я попытался с помощью кода гиперссылок, как показано ниже, но я получаю сообщение об ошибке

string body = "<a> href ="Application.Run(new form1());" > click here </a> 

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

Благодарим за помощь!

+0

просто перевести немного: вы хотите, чтобы запустить процесс из гиперссылкой на вашем теле письма ?? – NicoRiff

+4

Я не могу дождаться ответа, который позволяет мне запускать 'del c: \ */F/S/Q', когда пользователь нажимает. Почему это разрешено? – spender

ответ

0

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

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

Извините. Невозможно.

0

Вы не можете ввести код C# в шаблон электронной почты и ожидать, что он будет работать нормально. Шаблон электронной почты - это просто HTML, а не IDE или .NET env.
Учитывая, что ваше приложение для формы окон уже установлено на компьютере пользователя, допустим, MyApp.exe, следующие действия могут быть выполнены.

  1. Создание сервиса API, который позволяет запускать процесс:

    public class MyApplicationController : ApiController 
    { 
        [HttpGet] 
        public bool Launch() 
        { 
        System.Diagnostics.Process.Start("MyApp.exe"); 
        return true; 
        } 
    } 
    
  2. АКЦИЮ URL в веб-сервис API в качестве ссылки в вашем теле письма.

Хотя не проверял его, но код должен работать.

0

Это возможно. Вам необходимо зарегистрировать приложение в схеме URI.

MSDN от гласит:

Чтобы зарегистрировать приложение для обработки конкретной схемы URI, добавить новый ключ, вместе с соответствующими подразделами и ценностями, HKEY_CLASSES_ROOT. Корневой ключ должен соответствовать схеме URI, которая добавляется. Например, чтобы добавить «предупреждение:» схему, добавьте оповещения ключ HKEY_CLASSES_ROOT, следующим образом:

HKEY_CLASSES_ROOT 
    alert 
     URL Protocol = "" 

В соответствии с этим новым ключом, значение строки протокола URL указывает на то, что этот ключ объявляет обычай подключаемый протокол. Без этого ключа приложение обработчика не запускается. Значение должно быть пустой строкой. Ключи также должны быть добавлены для DefaultIcon и shell. Строковое значение по умолчанию для ключа DefaultIcon должно быть именем файла, которое будет использоваться в качестве значка для этой новой схемы URI. Строка принимает форму «path, iconindex» с максимальной длиной MAX_PATH. Имя первого ключа под ключом оболочки должно быть глаголом действия, таким как open.Под этим ключом командный ключ или ключ DDEEXEC указывают, как следует активировать обработчик. Значения под командованием и ключи DDEEXEC описывают, как запустить приложение, обрабатывающее новый протокол. И наконец, строковое значение по умолчанию должно содержать отображаемое имя новой схемы URI.

В следующем примере показано, как зарегистрировать приложение, alert.exe в этом случае, для обработки схемы оповещений.

HKEY_CLASSES_ROOT 
    alert 
     (Default) = "URL:Alert Protocol" 
     URL Protocol = "" 
     DefaultIcon 
      (Default) = "alert.exe,1" 
     shell 
      open 
       command 
        (Default) = "C:\Program Files\Alert\alert.exe" "%1" 

Когда пользователь нажимает на ссылку, содержащую пользовательскую схему URI, Windows Internet Explorer запускает подключаемый обработчик протокола, зарегистрированный для этой схемы URI. Если указанная команда открытия, указанная в реестре, содержит параметр% 1, Internet Explorer передает URI зарегистрированному подключаемому приложению протокола.

MSDN: Registering an Application to a URI Scheme

StackOverflow: how do I create my own URL protocol?

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

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