iT邦幫忙

DAY 33
2

Windows Mobile系列 第 33

[Windows Mobiile]OpenNETCF.Desktop.Communication Library使用範例

  • 分享至 

  • xImage
  •  

提供 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);
            }
        }  

執行結果


上一篇
[Windows Mobile]OpenNETCF.Desktop.Communication Library前置作業
下一篇
[Windows Mobile]使用 Twitterizer API 來玩 Twitter 的前置作業
系列文
Windows Mobile41
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言