WEB程式調用用戶端程式

來源:互聯網
上載者:User

標籤:c   style   class   blog   code   java   

最近一個項目中要點擊WEB頁面上的連結啟動自己編寫的程式,而且還要接收參數,google了1.5小時,終於初步實驗通過了。

嘗試google了:web send message windows form, bs call cs program, custom protocol...多個關鍵字組合,發現這種技術叫

registered URL protocol,在這篇文章裡介紹得比較詳細:

http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx

 

1)首先寫一個測試程式:

using System;using System.Collections.Generic;using System.Text;namespace Alert{  class Program  {    static string ProcessInput(string s)    {       // TODO Verify and validate the input        // string as appropriate for your application.       return s;    }    static void Main(string[] args)    {      Console.WriteLine("Alert.exe invoked with the following parameters.\r\n");      Console.WriteLine("Raw command-line: \n\t" + Environment.CommandLine);      Console.WriteLine("\n\nArguments:\n");      foreach (string s in args)      {        Console.WriteLine("\t" + ProcessInput(s));      }      Console.WriteLine("\nPress any key to continue...");      Console.ReadKey();    }  }}

我把程式編譯成edss.exe

2)用notepad編輯一個檔案,改名為edss.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\EDSS]
@="URL:EDSS Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\EDSS\DefaultIcon]
@="\"D:\\alert\\edss.exe\""

[HKEY_CLASSES_ROOT\EDSS\shell]

[HKEY_CLASSES_ROOT\EDSS\shell\open]

[HKEY_CLASSES_ROOT\EDSS\shell\open\command]
@="\"d:\\alert\\edss.exe\" \"%1\""

運行edss.reg後,總是提示有些登錄機碼寫入不成功,折騰了半天,看了http等協議的定義,最後終於發現是360在幹擾。

關閉360安全衛士,註冊表終於寫入成功了!

原來是360安全衛士阻止最後一個登錄機碼的寫入:

[HKEY_CLASSES_ROOT\EDSS\shell\open\command]
@="\"d:\\alert\\edss.exe\" \"%1\""

3)在IE中輸入edss://hello,ie瀏覽器彈擊一個安全警告視窗,確認後就正常啟動了我的應用程式

4)在chrome中試了一下不成功,後來發現在chrome中不能直接輸入edss://hello來啟動,必須寫一個html頁面。

馬上編寫了一行html頁面:<a href=‘edss://hello‘> start my windows program </a>

chrome也可以啟動我的windows程式了!

其它瀏覽器以後再試。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.