最新文章專題視頻專題關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

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

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:38:57
文檔

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

Web系統(tǒng)通過EXE文件實現(xiàn)讀取客戶電腦MAC等硬件信息且兼容非IE瀏覽器:對于一般情況來說,我們用得最多的可能是使用ActiveX控件的方法來實現(xiàn),但此方案只適用于IE瀏覽器。為了能兼容不同的瀏覽器,如FireFox等,我們就需要考慮到一種比較通用的方法。此方法我們可以參考在很多網(wǎng)站中,會在網(wǎng)頁的某個地方給一個鏈接來直接啟動Q
推薦度:
導(dǎo)讀Web系統(tǒng)通過EXE文件實現(xiàn)讀取客戶電腦MAC等硬件信息且兼容非IE瀏覽器:對于一般情況來說,我們用得最多的可能是使用ActiveX控件的方法來實現(xiàn),但此方案只適用于IE瀏覽器。為了能兼容不同的瀏覽器,如FireFox等,我們就需要考慮到一種比較通用的方法。此方法我們可以參考在很多網(wǎng)站中,會在網(wǎng)頁的某個地方給一個鏈接來直接啟動Q

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

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

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

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

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

   LoginID,MacAddress  兩個字段就可以了。

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

  具體如下:

 /// <summary>
 /// 應(yīng)用程序的主入口點。
 /// </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ù),來實現(xiàn)與exe的參數(shù)的傳遞.

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

在頁面加載完成后,先自動生成一個唯一的LoginID,并將此LoginID插入到表LoginTempInfo中,此時其MacAddress是空的。

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

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

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

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

5,通過以上5步,就可以實現(xiàn)Web系統(tǒng)獲取客戶端的MAC地址來做限定驗證.

特別注意,客戶端在安裝exe程序時,必須同步注冊一下注冊表信息:

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\""

附件做了個簡單的例子,來實現(xiàn)Web系統(tǒng)與本地exe的通訊。(說明:附件只是一個參考例子)

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

附件下載地址://www.gxlcms.com/softs/200002.html

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com

文檔

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

Web系統(tǒng)通過EXE文件實現(xiàn)讀取客戶電腦MAC等硬件信息且兼容非IE瀏覽器:對于一般情況來說,我們用得最多的可能是使用ActiveX控件的方法來實現(xiàn),但此方案只適用于IE瀏覽器。為了能兼容不同的瀏覽器,如FireFox等,我們就需要考慮到一種比較通用的方法。此方法我們可以參考在很多網(wǎng)站中,會在網(wǎng)頁的某個地方給一個鏈接來直接啟動Q
推薦度:
標(biāo)簽: 計算機 瀏覽器 客戶
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top