提供 OpenNETCF.Desktop.Communication Library 使用範例
更多文章,請到我在點部落所建立的部落格「.NET菜鳥自救會」閱讀
http://www.dotblogs.com.tw/chou/
1 裝置檔案複製到本機電腦
程式碼
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using OpenNETCF.Desktop.Communication;
namespace WindowsFormsRAPI
{
public partial class Form1 : Form
{
RAPI m_rapi; // 宣告 RAPI 物件 m_rapi
public Form1()
{
InitializeComponent();
m_rapi = new RAPI(); // m_rapi 實例化
}
// 連線
private void btnConnect_Click(object sender, EventArgs e)
{
m_rapi.Connect(true); // 建立與裝置的同步連接
}
// 斷線
private void btnDisConnect_Click(object sender, EventArgs e)
{
m_rapi.Disconnect(); // 中斷與裝置的連接
}
// 將 PC 中的檔案複製到裝置
private void btnCopyToDev_Click(object sender, EventArgs e)
{
try
{
// 判斷是否連線
if (!m_rapi.Connected)
{
MessageBox.Show("尚未與裝置連線!");
return;
}
m_rapi.CopyFileToDevice(@"C:\PDAFile.txt", @"\My Documents\PDAFile.txt", true); // PC的檔案複製到裝置
}
catch ( Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
執行結果
2 將裝置中的檔案複製到 PC
將 1 的程式多加 Button 控制項,用以將 1 從本機複製到裝置的檔案,複製回本機電腦中,程式碼如下
// 將裝置中的檔案複製到 PC
private void btnCopyToPC_Click(object sender, EventArgs e)
{
try
{
// 判斷是否連線
if (!m_rapi.Connected)
{
MessageBox.Show("尚未與裝置連線!");
return;
}
m_rapi.CopyFileFromDevice(@"D:\PDAFile.txt", @"\My Documents\PDAFile.txt", true); // 將裝置中的檔案複製到PC
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
執行結果
3 檢索裝置的電源狀態
多加 Button 控制項,用以顯示裝置目前剩餘的電池百分比,程式碼如下
private void btnPower_Click(object sender, EventArgs e)
{
try
{
// 判斷是否連線
if (!m_rapi.Connected)
{
MessageBox.Show("尚未與裝置連線!");
return;
}
SYSTEM_POWER_STATUS_EX sps = new SYSTEM_POWER_STATUS_EX();
m_rapi.GetDeviceSystemPowerStatus(out sps); // 檢索裝置的電源狀態
MessageBox.Show(sps.BatteryLifePercent.ToString() + "%", "剩餘電池百分比");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
SYSTEM_POWER_STATUS 裡面可用的取得的資訊如下圖所示,而程式使用的是 BatteryLifePercent
執行結果
4 檢索裝置的系統詳細訊息
多加 Button 控制項,用以顯示裝置最小與最大定址空間,程式碼如下
// 檢索裝置的系統詳細訊息
private void btnOSver_Click(object sender, EventArgs e)
{
try
{
// 判斷是否連線
if (!m_rapi.Connected)
{
MessageBox.Show("尚未與裝置連線!");
return;
}
SYSTEM_INFO osv = new SYSTEM_INFO();
m_rapi.GetDeviceSystemInfo(out osv); // 檢索裝置的系統詳細訊息
MessageBox.Show("最小定址空間 : " + osv.lpMinimumApplicationAddress.ToString() + " 最大定址空間 : " +
osv.lpMaximumApplicationAddress.ToString(), "定址空間"); // 取得最小與最大定址空間
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
執行結果