カントリーモーニング(仮)

しがないサラリーマンが不定期に更新する雑記帳。
<< 【X01T】へ ダイナマイトエクスプレス(その2)。 | main | 【X01T】モバイルライト点灯アプリ(その2)。 >>
スポンサーサイト

一定期間更新がないため広告を表示しています

| - | | - | - | pookmark |
【X01T】モバイルライト点灯アプリ。
機種変更する前の機種では、
カメラキーのダブルクリックでモバイルライト(フラッシュライト)を
点灯させることが可能だった。

X01T では、同様のことが出来ないか少し検索してみたが、
なさそうだったので、学習がてら
モバイルライトを点灯させるアプリを作成してみることにした。

自分の備忘録の意味もこめて下記に纏めます。

【作成環境用意】
まず、準備として、以下をインストール。

1. Microsoft Visual Studio 2005 Pro 90日評価版
→ MicrosoftのHPからイメージをダウンロードし、
DVDからのインストール。
# ファイル容量が大きく(2.8Gbyte程度)、我が家の
# ネット環境では、ダウンロードに10時間かかりました。。

2. .NET Compact Framework 2.0
→ NETCFSetupv2.msi のインストール

3. Windows Mobile 6 Professional SDK
→ Windows Mobile 6 Professional SDK Refresh.msi
のインストール

4. Windows Mobile 6 Localized Emulator Images
→ Windows Mobile 6 Professional Images (JPN).msi

ここまで構築するも、私の環境では、新規プロジェクト作成時、
-------------------------------
ライン: 4034
文字: 3
エラー:オブジェクトがありません。
コード:0
URL: file:〜MFC/Application/html/1041/default.htm
-------------------------------
とエラーが発生(なぜか VBでは発生せず、VCのみ)。

同様の症状を検索した結果、IE7が影響している様子。
いくつか考えられることを試してみるも、解決せず。

ひとまず IE7をアンインストールことで次ステップに
進めたため放置(放置プレイ)。

【プロジェクト作成】
[ exe 形式 ]
新しいプロジェクト → Visual C++(プロジェクトの種類) :スマートデバイス
MFC スマートデバイスアプリケーション

【アプリ作成】
1. モバイルライトとはなんぞや
モバイルライトを点灯させる方法を検索するも
関連する記述がなかなかない。

モバイルライト≒LED か?
との推測の元、まずは、LEDを点ける方法を探すことに。

2. モバイルライトは LEDか。
LED の点灯方法 について。
LED の制御は、NLedSetDevice() という API を
使用することで可能であることを確認。

引数の設定内容は、
NLedGetDeviceInfo() というAPI を使用することで、確認。
-------------------------------
NLED_SETTINGS_INFO の設定内容は下記

.LedNum = 2; //lcd ID (X01Tは1がvibe, 2がLED)
.OffOnBlink = 3; //on 2〜, off 0
-------------------------------
上記 API で LEDだけならず、バイブの設定も可能だった。
が、肝心のモバイルライトは、ぴくりともしない。。

3. モバイルライトは、フラッシュライトだ。
再度、デバイスを操作する関連ページを調べるうちに、
操作する方法は下記あたりではないかと予想をつける。
・レジストリの値変更で操作
・専用イベント送信で操作
・操作用APIを使用しての操作

継続、調べるうちに、X01HT用には、VJCandela(外国製)という
モバイルライトを点けるアプリがあることを発見。

その説明内でモバイルライトは、FlashLight と説明されている。
FlashLight関連で 検索するうち、
DeviceIoControl() という 操作用APIがあることを発見!

引数に設定する IOControlID の値がネックだったが、
いろいろ試して、動作することを確認。

4. フラッシュライトは、フレッシュマンだ。
先のVJCandela に、フラッシュライトの寿命が縮まるので、
使用方法には気をつけてね、というような注意書きがある。

そこで、タイマを設け、アプリ起動後、1分で消灯する仕様に。
タイマには、SetTimer(), OnTimer(), KillTimer()というAPIを使用。

5. できあがり
SunPunch.lzh(V0.09)
====================================
SunPunch V0.90 2008.2.3
Noriaf
====================================
X01T の モバイルライトを点灯させるだけのソフト
【構成】
SunPunch.exe のみ(X01T専用 実行ファイル)
【インストール】
適当なフォルダへ格納し、ショートカットを作成し、キー割り当て等で使用下さい。
【実行方法】
SunPunch.exe を実行すると、モバイルライトが点灯します。
実行後、1分で消灯します。
【アンインストール】
exeファイル および 作成したショートカットを削除下さい。
【備考】
モバイルライトの寿命を縮める可能性もありますので、
使用は自己責任でお願いします。



あなたももりもり開発隊長。
Windows Mobile 5.0 アプリケーション開発 Beginner's Book (Gihyo Technology)
Windows Mobile 5.0 アプリケーション開発 Beginner's Book (Gihyo Technology)

| X01T | 12:57 | comments(5) | trackbacks(0) | pookmark |
スポンサーサイト
| - | 12:57 | - | - | pookmark |
デザイングッズストア。
CALENDAR
S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< August 2017 >>
SPONSORED LINKS
AMAZON RECOMMEND
ハァハァCD
ハァハァCD (JUGEMレビュー »)
オムニバス,白雪みるく,河原木志穂,くーたん,森永まみ,たぬまゆみ
SELECTED ENTRIES
CATEGORIES
ARCHIVES
RECENT COMMENT
デザイングッズストア。
心頭MakeUp Tシャツ。
2009_09_18_11_39_28
コメント
はじめまして。
最近Windows Mobile用アプリの開発を勉強しています。
そこで質問なのですが「dwIoControlCode」の値はどのように確認されたのでしょうか?
いろいろと試していますが、うまくいきません。
| とおりずがり | 2008/02/15 10:08 PM |
>とおりずがり さん
はじめまして。
先に記述した VJCandela 関連で調べると、
ソースコードが書かれたページもヒットします。

そのコードを参考に、forループで
dwIoControlCodeのアドレスを インクリメントしてみました、としておきます。

コードの詳細は、ここに記述してよいものか判断つかなかったため
伏せておりますが、方法としては上記のような感じとなります。
| のりアフ | 2008/02/15 10:43 PM |
助言ありがとうございました。
なんとか点灯させることが出来ました。ヽ(´ー`)ノ
| とおりずがり | 2008/02/19 10:21 PM |
こんにちは。danと申します。
ライトを点灯するだけのプログラム・・・探していました。ダウンロードし、便利に使わせていただいております。
一度使ってライトが1分後に消灯してもプログラムは終了しないため、2回目に点灯させるためには設定→システム→メモリ→実行中のプログラム を使って一度強制終了させてから再びSunPunchを走らせなくてはなりません。これは私のX01T個体の問題でしょうか、それとも現行V0.90はそういった作りでしょうか?
お時間がおありなときで結構ですので、消灯処理とともにアプリケーションを終了する、あるいはCTRL-QまたはOKが押されたらライトを消してアプリケーションを終了する・・・としていただけたらとても嬉しく思います。
| dan | 2008/06/22 9:52 PM |
>danさん
はじめまして。

下記内容、すみませんが、ご指摘通り、
V0.90 では、現行動作の設計になっております。

いただきましたように、
消灯処理とともにアプリケーションを終了する方が
使い勝手はよさそうで、
終了方法は、再考の余地がありますね。。

ただ、手元に現状、作成環境がないため、
申し訳ございませんが、バージョンアップが困難です。。。

代わりに、私が使用している方法を展開させていただきます。

AppClose という 最前面のアプリを閉じるアプリが
あるのですが、そのソフトと組み合わせて使用しております。

任意のキーに割り当てるとワンタッチでアプリ終了可能ですので、
重宝しております(AppCloseの作者さん、感謝です)。

ご参考になれば、幸いです。
| のりアフ | 2008/06/23 7:39 AM |
コメントする









この記事のトラックバックURL
http://norinoriafter.jugem.jp/trackback/4
トラックバック
ブロカン
サンプル・モニターの口コミ広告ならブロカン
おしゃれショップ「かさぶた人生」
MOBILE
qrcode
LINKS
PROFILE