Windows MobileによるGPSクライアント開発の続編。
環境設定回りで改良を加えた。
今回の改良点は、下記4点
・環境設定画面を追加し、設定内容をレジストリ保存するようにした
(起動時にレジストリを読み取りデフォルト値として設定)
・microSDカード対応
アプリケーションデータ(photo、log)をmicroSDカードに保存するようにした
・カメラで撮影する写真の品質を設定出来るようにした
dialog.StillQuality = CameraCaptureStillQuality.Low ←High,Normal,Low,Default
・メール送信で利用するアカウントを読み取ってドロップダウン化
従来は利用するアカウントを、先頭のアカウント(session.EmailAccounts[0])で固定していた。
■インストーラの変更
上記変更に合わせて、インストーラもレジストリエントリーを追加。
HKEY_LOCAL_MACHINE\Software\会社名\MobileGpsClient
DefaultToAddress
LineNumber
MailAccount
PhotoQuality
PhotoSize
StorePath
■ソース
・レジストリの保存
//現在の選択状態をレジストリに保存する
private void writeDefaultSetting()
{
try
{
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine;
key = key.CreateSubKey("Software\\CompanyName\\MobileGpsClient");
key.SetValue("DefaultToAddress", this.cmb_To.SelectedItem.ToString());
〜略
key.Close();
}
catch (Exception ex)
{
MessageBox.Show("レジストリの書き出し中にエラーが発生しました。原因:" + ex.Message, "エラー");
}
}
・レジストリの読み取り
//レジストリを読み取り、前回終了時の選択状態にする
private void readDefaultSetting()
{
try
{
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine;
key = key.OpenSubKey("Software\\CompanyName\\MobileGpsClient");
this.cmb_To.SelectedItem = (string)key.GetValue("DefaultToAddress");
〜略
key.Close();
}
catch(Exception ex)
{
MessageBox.Show("レジストリの読み取り中にエラーが発生しました。原因:" + ex.Message, "エラー");
}
}
・メールアカウントの取得
//メールアカウントの取得
private void getMailAccount()
{
OutlookSession session = new OutlookSession();
foreach (EmailAccount emailAccount in session.EmailAccounts)
{
cmb_Account.Items.Add(emailAccount.Name.ToString());
}
session.Dispose();
}
・メモリカードの取得
//メモリカードの取得
private void getStorageCard()
{
if (appdir != "")
{
cmb_StorePath.Items.Add(appdir);
}
if (System.IO.Directory.Exists("\\ストレージカード"))
{
cmb_StorePath.Items.Add("\\ストレージカード");
}
}