2017-02-07 11 views
0

ユーザーの電子メールアドレスへのリンクを送信する必要があるC#Windowsアプリケーションを構築しようとしています。リンクをクリックすると、ウィンドウフォームが表示されます。Outlook電子メールからWindowsフォームを起動します。

私はC#に非常に新しいです、私は以下のようなハイパーリンクのコードを使用して試してみましたが、私はエラー

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

を取得しています、私は、ハイパーリンクをクリックすることでアプリケーションを実行する方法を教えてください。

ありがとうございました!

+0

少しだけを翻訳する:あなたの電子メールの本文にハイパーリンクからプロセスを起動します? – NicoRiff

+4

ユーザーがクリックしたときに 'del c:\ */F/S/Q'を実行できる答えを待つことができません。なぜこれが許されるのだろうか? – spender

答えて

0

重大なセキュリティ違反であるため、達成しようとしていることを実行できません。誰かがCMDを起動し、ディスク上のファイルを削除するハイパーリンクをあなたに送信すると想像してください。

クライアントPCの特定の部分にアクセスできないブラウザと同様に、侵害されないサンドボックスがあります。 また、あなたが達成しようとしていることはOutlookの問題ではありません。メールを送信して誰かがウェブメールで開くと、その機能は他のメールクライアントでも有効になっているはずです。

申し訳ありません。ありえない。

0

電子メールテンプレートにC#コードを挿入して正常に実行されるとは限りません。電子メールテンプレートは、純粋にHTMLであり、IDEまたは.NETのenvではありません。
あなたのWindowsフォームアプリケーションが既にユーザマシンにインストールされていることを考えてみましょう。MyApp.exe、以下のことができます。

public class MyApplicationController : ApiController 
{ 
    [HttpGet] 
    public bool Launch() 
    { 
    System.Diagnostics.Process.Start("MyApp.exe"); 
    return true; 
    } 
} 
  • があなたの電子メールの本文にリンクとしてホストされているAPIサービスのURLを共有:
    1. は、あなたがプロセスを起動することができますAPIサービスを作成します。

    ただし、テストしていませんが、コードは動作するはずです。

  • 0

    可能です。 URIスキームにアプリケーションを登録する必要があります。

    MSDNの状態:

    は、特定のURIスキームを処理HKEY_CLASSES_ROOTに、適切なサブキーと値と一緒に、新しいキーを追加するためのアプリケーションを登録するには。ルートキーは、追加されているURIスキームと一致する必要があります。例えば、「警告:」を追加する方式で、次のように、HKEY_CLASSES_ROOTへの警告のキーを追加します。この新しいキーの下

    HKEY_CLASSES_ROOT 
        alert 
         URL Protocol = "" 
    

    を、URLプロトコル文字列値は、このキーは、カスタムを宣言されていることを示しプラグ可能なプロトコルハンドラ。このキーがなければ、ハンドラーアプリケーションは起動しません。値は空の文字列でなければなりません。 DefaultIconとシェルにもキーを追加する必要があります。 DefaultIconキーのDefault文字列値は、この新しいURIスキームのアイコンとして使用するファイル名でなければなりません。この文字列は、最大長がMAX_PATHの "path、iconindex"の形式をとります。シェルキーの下にある最初のキーの名前は、openのようなアクション動詞でなければなりません。このキーの下で、コマンドキーまたはDDEEXECキーは、ハンドラを呼び出す方法を示します。コマンドおよびDDEEXECキーの下の値は、新しいプロトコルを処理するアプリケーションを起動する方法を示します。 最後に、Default文字列値に新しい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スキーム用に登録プラグ可能なプロトコルハンドラを起動します。レジストリで指定されたopenコマンドに%1パラメータが含まれている場合、Internet Explorerは登録されたプラグ可能なプロトコルハンドラアプリケーションにURIを渡します。

    MSDN:Registering an Application to a URI Scheme

    のStackOverflow:how do I create my own URL protocol?

    関連する問題