中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

Web系統通過EXE文件實現讀取客戶電腦MAC等硬件信息且兼容非IE瀏覽器
來源:易賢網 閱讀:1663 次 日期:2014-08-15 15:28:53
溫馨提示:易賢網小編為您整理了“Web系統通過EXE文件實現讀取客戶電腦MAC等硬件信息且兼容非IE瀏覽器”,方便廣大網友查閱!

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

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

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

為了實現以上,我們大概需要以下幾步:

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

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

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

具體如下:

01 /// <summary>

02 /// 應用程序的主入口點。

03 /// </summary>

04 [STAThread]

05 static void Main(string[] args)

06 {

07 int argsLength = args.Length;

08 MessageBox.Show(argsLength.ToString());

09 Application.EnableVisualStyles();

10 Application.SetCompatibleTextRenderingDefault(false);

11 if (argsLength == 0)

12 {

13 Application.Run(new Form1());

14 }

15 else

16 {

17 MessageBox.Show(args[0]);

18 Application.Run(new Form1(args[0]));

19 }

20 }

以上參數就是為了接收Web中的連接地址,在此地址中我們傳入一些參數,來實現與exe的參數的傳遞.

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

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

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

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

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

4,本地exe程序接收到參數:唯一登錄ID后,調用一個方法來獲取當前客戶端電腦的MAC地址,并且將此MAC地址Update到數據表LoginTempInfo中,對應的是當前登錄ID.

5,通過以上5步,就可以實現Web系統獲取客戶端的MAC地址來做限定驗證.

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

01 Windows Registry Editor Version 5.00

02 [HKEY_CLASSES_ROOT\HelloWorld]

03 @="HelloWorld Protocol"

04 "URL Protocol"=""

05 [HKEY_CLASSES_ROOT\HelloWorld\DefaultIcon]

06 @="E:\\HW_TEST\\HelloWorld.exe,1"

07 [HKEY_CLASSES_ROOT\HelloWorld\shell]

08 @=""

09 [HKEY_CLASSES_ROOT\HelloWorld\shell\open]

10 @=""

11 [HKEY_CLASSES_ROOT\HelloWorld\shell\open\command]

12 @="\"E:\\HW_TEST\\HelloWorld.exe\" \"%1\""

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

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

更多信息請查看IT技術專欄

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
主站蜘蛛池模板: 西贡区| 府谷县| 赫章县| 桃园市| 余干县| 德惠市| 金堂县| 武强县| 睢宁县| 湖州市| 霸州市| 合作市| 宾阳县| 余庆县| 灵台县| 清丰县| 灵石县| 日喀则市| 寿光市| 怀来县| 手机| 肥城市| 慈利县| 永兴县| 梧州市| 隆昌县| 化德县| 准格尔旗| 云林县| 太仓市| 泽库县| 拉萨市| 中超| 镇康县| 彭泽县| 凯里市| 申扎县| 东海县| 丰原市| 山丹县| 广元市|