濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Web系統(tǒng)通過(guò)EXE文件實(shí)現(xiàn)讀取客戶(hù)電腦MAC等硬件信息且兼容非IE瀏覽器

Web系統(tǒng)通過(guò)EXE文件實(shí)現(xiàn)讀取客戶(hù)電腦MAC等硬件信息且兼容非IE瀏覽器

熱門(mén)標(biāo)簽:太原400電話(huà)上門(mén)辦理 騰訊地圖標(biāo)注手機(jī) 400電話(huà)如何申請(qǐng)取消 浦發(fā)電話(huà)機(jī)器人提醒還款 征途美甲店地圖標(biāo)注 柳州電銷(xiāo)機(jī)器人公司 電銷(xiāo)語(yǔ)音機(jī)器人型號(hào)參數(shù) 昆明語(yǔ)音電銷(xiāo)機(jī)器人價(jià)格 百度地圖怎樣做地圖標(biāo)注

對(duì)于一般情況來(lái)說(shuō),我們用得最多的可能是使用ActiveX控件的方法來(lái)實(shí)現(xiàn),但此方案只適用于IE瀏覽器。為了能兼容不同的瀏覽器,如FireFox等,我們就需要考慮到一種比較通用的方法。此方法我們可以參考“在很多網(wǎng)站中,會(huì)在網(wǎng)頁(yè)的某個(gè)地方給一個(gè)鏈接來(lái)直接啟動(dòng)QQ來(lái)聊天”。這種方法可以實(shí)現(xiàn)Web系統(tǒng)來(lái)調(diào)用客戶(hù)端電腦的某個(gè)exe文件(前提是在客戶(hù)端必須安裝需調(diào)用的exe應(yīng)用程序)。QQ的解決方法是采用在OS中注冊(cè)一種自定義的協(xié)議,如:tencent://message/?uin=88888888Site=abc.comMenu=yes.

大家可以在瀏覽器地址欄中輸入以上地址,即可彈出一個(gè)QQ的聊天對(duì)話(huà)框,這樣即實(shí)現(xiàn)了Web系統(tǒng)與客戶(hù)端本地的exe應(yīng)用程序的通訊。

通過(guò)以上的方法,我們可以參考此方案來(lái)實(shí)現(xiàn)Web系統(tǒng)讀取到客戶(hù)端電腦的Mac地址等。

為了實(shí)現(xiàn)以上,我們大概需要以下幾步:

1,首先,我們需要在數(shù)據(jù)庫(kù)中建立一張表格,如:LoginTempInfo ,其字段有:

   LoginID,MacAddress  兩個(gè)字段就可以了。

2,建立一個(gè)WindowsForm的應(yīng)用程序(用于接收Web傳過(guò)來(lái)登錄ID,然后獲取本地的Mac地址,并Update到后臺(tái)的LoginTempInfo表中)。主要需注意的地方為:在類(lèi)Program.cs中的主方法main中傳入一個(gè)參數(shù),string[] args。

  具體如下:

 /// summary>
  /// 應(yīng)用程序的主入口點(diǎn)。
  /// /summary>
  [STAThread]
  static void Main(string[] args)
  {
   int argsLength = args.Length;
   MessageBox.Show(argsLength.ToString());
   Application.EnableVisualStyles();
   Application.SetCompatibleTextRenderingDefault(false);
   if (argsLength == 0)
   {
    Application.Run(new Form1());
   }
   else
   {
    MessageBox.Show(args[0]);
    Application.Run(new Form1(args[0]));
   }
  }

     以上參數(shù)就是為了接收Web中的連接地址,在此地址中我們傳入一些參數(shù),來(lái)實(shí)現(xiàn)與exe的參數(shù)的傳遞.

3,我們可以在Web系統(tǒng)的登錄頁(yè)Login.aspx中window.onload方法中來(lái)增加一個(gè)連接地址,如:helloworld://hello_world/Apara=abc001.

在頁(yè)面加載完成后,先自動(dòng)生成一個(gè)唯一的LoginID,并將此LoginID插入到表LoginTempInfo中,此時(shí)其MacAddress是空的。

然后再自動(dòng)執(zhí)行一個(gè)連接:helloworld://hello_world/LoginID=****  (其中****表示此次生成的唯一登錄ID).

此時(shí),會(huì)自動(dòng)調(diào)用本地的helloworld程序,并將以上:helloworld://hello_world/LoginID=****傳入到exe程序中.

在此,Web程序暫停2秒,使用setTimeout方法來(lái)實(shí)現(xiàn),2秒后,再?gòu)臄?shù)據(jù)表中取出當(dāng)前登錄ID的MAC地址(經(jīng)過(guò)第四步來(lái)完成)。

4,本地exe程序接收到參數(shù):唯一登錄ID后,調(diào)用一個(gè)方法來(lái)獲取當(dāng)前客戶(hù)端電腦的MAC地址,并且將此MAC地址Update到數(shù)據(jù)表LoginTempInfo中,對(duì)應(yīng)的是當(dāng)前登錄ID.

5,通過(guò)以上5步,就可以實(shí)現(xiàn)Web系統(tǒng)獲取客戶(hù)端的MAC地址來(lái)做限定驗(yàn)證.

特別注意,客戶(hù)端在安裝exe程序時(shí),必須同步注冊(cè)一下注冊(cè)表信息:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\HelloWorld]
@="HelloWorld Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\HelloWorld\DefaultIcon]
@="E:\\HW_TEST\\HelloWorld.exe,1"
[HKEY_CLASSES_ROOT\HelloWorld\shell]
@=""
[HKEY_CLASSES_ROOT\HelloWorld\shell\open]
@=""
[HKEY_CLASSES_ROOT\HelloWorld\shell\open\command]
@="\"E:\\HW_TEST\\HelloWorld.exe\" \"%1\""

附件做了個(gè)簡(jiǎn)單的例子,來(lái)實(shí)現(xiàn)Web系統(tǒng)與本地exe的通訊。(說(shuō)明:附件只是一個(gè)參考例子)

以上,只是我想到的比較通用的Web系統(tǒng)調(diào)用客戶(hù)端Mac地址的方法。如果大家有更好的辦法,歡迎大家提出討論。謝謝。

附件下載地址:https://www.jb51.net/softs/200002.html

標(biāo)簽:新疆 白山 張家界 江蘇 天門(mén) 蘭州 德陽(yáng) 陽(yáng)泉

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Web系統(tǒng)通過(guò)EXE文件實(shí)現(xiàn)讀取客戶(hù)電腦MAC等硬件信息且兼容非IE瀏覽器》,本文關(guān)鍵詞  Web,系統(tǒng),通過(guò),EXE,文件,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Web系統(tǒng)通過(guò)EXE文件實(shí)現(xiàn)讀取客戶(hù)電腦MAC等硬件信息且兼容非IE瀏覽器》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Web系統(tǒng)通過(guò)EXE文件實(shí)現(xiàn)讀取客戶(hù)電腦MAC等硬件信息且兼容非IE瀏覽器的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    镇沅| 绥棱县| 通榆县| 襄城县| 肥城市| 郧西县| 望江县| 屯留县| 葵青区| 大英县| 闽侯县| 深泽县| 绿春县| 宁河县| 漯河市| 延安市| 铜陵市| 嵩明县| 改则县| 宝清县| 平邑县| 桃江县| 普格县| 五寨县| 望江县| 衢州市| 金门县| 吉林省| 蛟河市| 井研县| 安阳县| 黑水县| 海口市| 余姚市| 启东市| 隆子县| 赞皇县| 鞍山市| 乌鲁木齐县| 三台县| 凤山市|