需讀取/備份/刪除 Windows Mobile 設備短信。微軟官方 API 缺失,第三方 InTheHand 庫(商業版 $49)提供 SmsMessageFolder 類,功能強大但試用版不支援。
using InTheHand.WindowsMobile.PocketOutlook;
namespace DumpSMS
{
class Program
{
private const string FILE_NAME = "sms.txt";
static void Main(string[] args)
{
if (!File.Exists(FILE_NAME))
{
OutlookSession session = new OutlookSession();
SmsMessageFolder inbox = session.SmsAccount.Inbox;
if (inbox.Count > 0)
{
SmsMessage msg = inbox[0]; // 僅演示第一條
if (msg.Body.Length > 0)
{
File.WriteAllText(FILE_NAME, msg.Body);
}
msg.Delete(); // 刪除已備份短信
}
}
}
}
}
SmsMessageFolder 等核心類| 方案 | 可行性 | 說明 |
|---|---|---|
| RapiInvoke + MAPI | 低 | 需 C++ 非託管代碼,簽名複雜 |
| Microsoft.WindowsMobile.PocketOutlook | 無 | 標準庫僅支援郵件/聯繫人,無短信 |
| AT 命令 (串口) | 中 | 通用但需設備支援、解析 PDU 格式 |
| Windows Mobile 6.5+ 系統 API | 高 | 部分新版本開放短信存取,需 P/Invoke |
| 開源 32feet.NET | 中 | InTheHand 開源版,功能受限 |