Windows Embedded CE和Windows Mobile下ActiveSync開發

來源:互聯網
上載者:User
背景

用過Windows Mobile的人大概都有使用USB線連結手機到PC的經曆,這一般由ActiveSync來完成軟體功能。ActiveSync在Windows Embedded CE以及Windows Mobile 和PC的互操作中扮演重要的角色,使用了ActiveSync,PC就可以檢查 Windows Embedded CE以及Windows Mobile 裝置的硬體,作業系統,記憶體等等版本資訊,訪問和修改註冊表,增刪改檔案和傳輸檔案,甚至調用裝置的DLL。本文講述ActiveSync的開發。

 

什麼是ActiveSync

ActiveSync是微軟開發的資料同步程式,使得PC可以同步Windows Embedded CE以及Windows Mobile 等裝置上的文檔,郵件,日曆安排,連絡人清單等。同時ActiveSync提供手工檔案傳輸和同步功能,可以在PC上安裝和卸載Windows Embedded CE以及Windows Mobile 等裝置上程式。在Vista之後,ActiveSync被Windows Mobile Device Center所取締。

 

什麼是RNDIS

RNDIS(Remote NDIS)是另外一種比較常用的通過USB串連Windows Embedded CE裝置和PC的規範。

 

Remote NDIS Drivers for USB

圖轉自http://www.microsoft.com/whdc/device/network/ndis/rmndis.mspx

 

從開發人員的角度可以把RNDIS理解為IP over USB,C和Windows Embedded CE連結了以後會分配IP地址,可以基於這個IP網來進行開發。RNDIS廣泛應用於USB裝置中,例如ADSL裝置一般支援RNDIS,這樣連上USB就能對裝置進行配置了。

 

下載

ActiveSync只能用於XP,當前為4.5版本,下載連結如下:Download Microsoft ActiveSync 4.5

如果使用Vista,請使用Windows Mobile Device Center,目前版本為6.1,下載連結如下:Download Windows Mobile Device Center 6.1

對於ActiveSync的開發,我使用了 OpenNETCF Desktop Communication Library 庫,這是一個基於The MIT License (MIT)的開源庫。先到下面連結下載。http://rapi.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29281

 

介面

ActiveSync的功能封裝在OpenNETCF Desktop Communication Library 庫的ActiveSync類。

方法

ActiveSync類通過ConnectNow()和DisconnectNow()對裝置進行連結,斷開。

rapi.ActiveSync.ConnectNow();
rapi.ActiveSync.ShowCommSettings();
rapi.ActiveSync.DisconnectNow();

ShowCommSettings()顯示當前裝置連結狀態。

屬性

當裝置連結時候或者斷開的時候,也可以配置自動啟動程式。

rapi.ActiveSync.AutoConnect = true;
rapi.ActiveSync.AutoStartOnConnect.Add(@"C:\WINDOWS\notepad.exe");
rapi.ActiveSync.AutoStartOnDisconnect.Add(@"C:\WINDOWS\regedit.exe");

設定屬性 AutoConnect 為true,當裝置連結的時候,activesync自動連結。設定AutoStartOnConnect和AutoStartOnDisconnect,當連結或者斷開的時候,自動啟動配置的程式。

事件

通過訂閱Active和Disconnect事件來處理連結狀態變更訊息。

rapi.ActiveSync.Active += new ActiveHandler(ActiveSync_Active);
rapi.ActiveSync.Disconnect += new DisconnectHandler(ActiveSync_Disconnect);

 

 

 

void ActiveSync_Disconnect()
{
labelActiveSync.Text = "Device disconnected";
}

void ActiveSync_Active()
{
labelActiveSync.Text = "Device connected";
}

 

講到這裡,很簡單,下一篇將RAPI。

相關文章

聯繫我們

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