通過網頁調起用戶端程式

來源:互聯網
上載者:User

標籤:event   classes   text   ica   enable   and   lan   處理   one   

 

果凍棟吖原創內容:未經允許禁止轉載~

怎麼像百度雲那樣通過網頁調起用戶端程式?

先說下我的經曆,愚蠢的我直接同C#CS程式調起本地程式的方法,寫在了網頁上,顯然,這樣是不對的,這樣調起的是伺服器的程式,並不是用戶端程式。

那麼,具體是怎麼操作的呢?

代碼有很多不足之處,肯定會有更好的辦法,如果您有什麼建議,請聯絡我QQ:1772829123或者評論。請各位大佬不吝賜教!

網頁的代碼挺簡單,

MyApp: 是要調起的程式,需要加註冊表資訊
aadmin,123321是傳遞的參數,實際是用字串傳遞過去的,程式開啟後接收的參數是“MyApp:aadmin,123321”。
這個我不知道怎麼處理,直接數組方式傳遞,如果道友知道,希望指導一下!

主要是修改註冊表的資訊。

<input type="button" value="開啟我的應用程式" onclick="openMyApp()"/><script>  function openMyApp(){     window.location.href=‘MyApp:aadmin,123321‘;  }</script>

註冊表修改需要一個檔案,來增加程式的註冊表資訊,不然沒法調起。這裡寫了一個增加的,一個刪除的。

增加的:

Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\MyApp]@="MyApp""URL Protocol"="你的軟體路徑"[HKEY_CLASSES_ROOT\MyApp\DefaultIcon]@="你的軟體路徑,1"[HKEY_CLASSES_ROOT\MyApp\shell][HKEY_CLASSES_ROOT\MyApp\shell\open][HKEY_CLASSES_ROOT\MyApp\shell\open\command]@="\"軟體路徑\" \"%1\""

刪除的:

Windows Registry Editor Version 5.00[-HKEY_CLASSES_ROOT\MyApp]

這樣,就修改好註冊表資訊了,不過實際程式不存在是調用不起來的哦

程式的代碼是這樣的:

首先要修改應用程式的主進入點,也就是Program.cs

        static void Main(string[] args)        {            Application.EnableVisualStyles();            Application.SetCompatibleTextRenderingDefault(false);            string str = string.Empty;            if (args.Length > 0)            {                str = args[0].ToString();                Application.Run(new Form1(str));            }            Application.Run(new Form1());        }

 

通過接收參數來取得網頁傳遞過來的值。

重載Form1的建構函式

public partial class Form1 : Form    {        public string userName = string.Empty;        public string userPwd = string.Empty;        public Form1()        {            InitializeComponent();        }        public Form1(string str)        {            str = str.Replace("myapp:", "");            string[] args = str.Split(‘,‘);            if (args.Length>=2)            {                userName = args[0].ToString();                userPwd = args[1].ToString();            }            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            this.txtUserName.Text = userName;            this.txtUserPwd.Text = userPwd;        }    }

這裡注意下,當參數傳遞過來的時候MyApp會全部變為小寫~

最後,看一下運行效果:

選擇開啟,就會看到使用者名稱和密碼自動填寫上了,只是測試,介面細節請忽略~

 

通過網頁調起用戶端程式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.