混沌雑記帳






ポケットの中で通話開始対策。IncomningCallLock_1.0.0
とはいってもうちでは遭遇したことないんだけど(笑)

初めはレジューム時にチェックして電話着信中ならロックとかしてたんだけど
どうにも電話着信中のフラグが立ってくれない。
ディレイさせればもしかするのかもしれないけど多少取ってみた所では変化無し。
というか、操作しないようにロックするのにそれが遅れてどうする、と意味がない。

よく考えたら、電話着信時って操作中でも一旦ロックしていいような?
OffHookを他に割り当ててるし、うっかりそのタイミングで来たら取っちゃうだろ。
ということで発想を転換。電話着信したらロックする、に変更。
まあこっちなら大して問題なく出来るわけで。

ただ今度は電話の着信でしか発動しないから他のトリガは別にやらないと。
まあ同じアプリ内で監視を増やすことになるわけだが。
メールに関してはmoperaUのPUSHならSMS着信を監視すればいいんだろうか?
まあメール着信時に多少変な操作したって別に問題にもならないんだが。
あとレジュームしそうなのってアラームくらいか?こっちもさほど問題じゃないなぁ。
とりあえず危険そうな電話着信だけは抑えたからあとは何か起きたら考えるか。
モバイル | Comments:0
(2010/02/06(Sat) 01:10:31)

どうもVC2005SP1で作ったアプリが動かないって話が良く出る。
特にDLLの場合、警告も出さずにロードできないから性質が悪い。
ダイナミックリンクの場合だけなのでランタイムが原因なのは確かなんだけど。

まあちょっと調べれば判ることだった。
経緯についてはここが良くまとまっていた。
要するにランタイムが更新されたのでバージョン違いになっている、と。
VC2005SP1のランタイムが入っている、だけでは不十分で
このセキュリティ更新に対応するランタイムパッケージを再導入しないと駄目ということ。

中途半端にWindowsUpdateでセキュリティホールを塞ぐだけしたせいでバージョンに混乱がおきてるとか
これに関する新しいパッケージの名前がまた判りづらいとか、MSもうちょっとどうにか出来なかったのか。
まあ原因は判ったから更新するように誘導すればいいか…。
PC関連 | Comments:0
(2010/01/22(Fri) 12:59:33)

WkTASKはタスク管理がイマイチなWindowsMobileで非常に有用なソフトだが
WM6.5での使用においてはそのままでは多少の問題点がある。
出来ればソフト自身の対応を期待したいところだが、ちょっと工夫すれば概ね問題なく使える。

まず、問題点について。
1.スタートメニュー及びその下層で×を押すと再起動しないと表示できなくなる。
2.WM6.5はタスクバーが透過するようになったが、アイコン背景が固定なので見た目が残念。
3.ロック画面になったときにも表示されたままになってしまう。
といったところが大きなところ。

まず1について。
これは単純にスタートメニューが単独のプロセスになったから。
これまでも「電話」を落としちゃいけなかったのと同様のケースなので
固有設定に「クラス名:MSSTARTMENU」で「×ボタンで閉じない」と設定すれば良い。
これに関しては他のタスク管理ソフトも同様で、うっかり閉じないようにしないと同じことが起きる。

次、2について。
WkTASKの表示は、本来表示されるアプリタイトルを隠した上でアイコンを並べている。
WM6.5においては透過ウインドウの作成が可能になったので(T-01AのWM6.1では出来てた可能性がある)
WkTASK自身がアイコン以外を透過して表示することは可能ではあるが
その場合には、元々表示されているアプリタイトルが邪魔になる。
これを避けるには壁紙とタスクバー背景から自力生成する必要があり結構面倒。
単に見た目の話なので、そういうものと割り切るか
タスクバー自体を固定色で半透過しないようにしてしまうのが手っ取り早い。

最後の3について。
単に想定されてなかったので常に表示されてるだけのこと。
ついでに言えばWM6.5のLockScreenはタスクバーが半透過固定なのでなおさら目立つ、という感じ。
これに関しては割と対応は簡単で、ロックしたら非表示にすればいい。
ロックの判断はHKLM\Software\Microsoft\Shell\LockScreenのActiveで判る。
WkTASKのウインドウは、HHTaskBar(タスクバー)の子ウインドウとして
WkTASK(アイコンの並ぶ所)、WkTASK_BT(バッテリー表示)、ActionBtn(閉じるボタンスキン時)
の3つがあるので、これらを表示/非表示切り替えすればいい。
ということで再構築用に置いておく。WkTASK_LockHide_0.1.0
非常駐ソフトでロック切り替えを検知して実行される。
僅かにタイムラグはあるものの、大きな問題ではないだろう。

ロック画面についてはもうちょっと柔軟さがあればなぁ、というのが本音。
というかまあ、要するに自分がボタン操作でレジュームしたときはロックの必要はないよってだけだが。
レジューム時にどういう理由でレジュームしたのかが判れば対応も出来るんだが…。
強いて言えば電話の時は判断つきそうだから出来るかもだけど、メールとかアラームはどうだろう。
消去法だとキリがなさそうなのが困ったところだな。
モバイル | Comments:0
(2010/01/18(Mon) 04:21:56)

WindowsMobileのGestureAPIに関する情報が少ないのと
GestureAPIで検索するとWindows7の情報が出てくる&似てるけど異なる部分があるのでメモ。

タッチスライドした場合のウインドウメッセージの発生順は以下になる。
WM_LBUTTONDOWN
WM_GESTURE(GID_BEGIN)
WM_GESTURE(GID_PAN) ←タッチ中繰り返し
WM_GESTURE(GID_END)
WM_GESTURE(GID_SCROLL)
WM_LBUTTONUP

またGID_PANについては連続する場合先頭にGF_BEGIN、末尾にGF_ENDが付く。
この二つは同時に付く場合もある。(GID_PANが一つのみの場合)
GID_SCROLLはゆっくりタッチした場合などに来ない場合がある。

陥りやすいミスとしてGID_XXXはwParamに入ってること。
Windows7だとGESTUREINFOのdwIDとなっているので要注意。
(もしかしたら改定されて今はwParamなのかも知れないがネット上だと上記がでてくる)
現時点ではGID_ROTATE、GID_SCROLLなどは定義されていない。
(WindowsMobile7でマルチタッチ用に定義が増えるのかもしれない)

・GID_PANでの処理
GESTUREINFOのptsLocationにタッチ座標がそのまま入ってくる。
(ptsLocationについては全て共通でタッチ座標が入ってると思われる)
画面をスライドさせたい場合などは前のGID_PANとの差分を取って処理するなど。

・GID_SCROLLの処理
こっちがちょっと複雑でptsLocationは最終のタッチ座標。
残りのデータはullArgumentsに纏めて入っている。
分解するためのマクロが定義されているのでこれを使う。
 GID_SCROLL_ANGLE(ullArguments)はスライドした方向を取得できる。
  GID_ROTATE_ANGLE_FROM_ARGUMENTでラジアンに変換できる。
 GID_SCROLL_DIRECTION(ullArguments)はARG_SCROLL_XXXの概ねの方向を取得。
 GID_SCROLL_VELOCITY(ullArguments)はフリックの速さを取得。
4方向のどれかで良いのならDIRECTION、斜めも必要ならANGLEを使う。
慣性スクロールなどが必要であればVELOCITYを使って処理する。
離したあともメッセージが続くということはないのでタイマーなどが必要。

また前後にWM_LBUTTONDOWN、WM_LBUTTONUPがあることの注意すること。
GID_PANでスクロールなどさせると意図せず範囲選択になってしまったりする。
この場合、タップ処理はGID_SELECTで処理すると良い。
ただし全てWM_GESTUREで処理してしまうと選択処理が出来なくなったりする。
選択が必要なアプリケーションでは、スクロール用のWM_GESTURE処理と
選択用の従来処理を切り替えられるようにする事を検討する。
なお、GID_SELECTは離してから来る。(即ちWM_LBUTTONUP直前)

GID_HOLD、GID_DOUBLESELECTでも先にGID_SELECTが来るので
切り分ける必要がある場合タイムアウト処理が必要なのはサンプルの通り。
モバイル | Comments:1
(2009/12/20(Sun) 14:14:22)

T-01AのWindowsMobile6.5アップデート(SP05)が出たので早速アップデート。
本当は何か使えなくなる危険考えて待とうかと思ってたんだけど
そうそう大きな問題は出てない感じだし、我慢できずに(笑)

全体としてはWM6.1に比べると僅かに遅い感じ?
同じリズムで操作すると追いついてこない感じがある。
ただ少し操作してると慣れてしまうくらいの差だとは思う。

特に致命的問題が出るソフトはない感じ。
数少ない、強いて言えばな問題が幾つかあるくらい。

SortInchKeyの設定で種類選択ドロップダウンが操作不能。
このドロップダウンは以前からドロップダウンが上手く出ず
項目が見えないってのがあったんだけど。
ただ上下キーで変更できてたのがそれも不能に。
まあini直接でもそれほどの問題ではないので、まあなんとか。

FileDialogChangerが何故か上手く動作しなかった。
入れなおしとかでも駄目で、他の設定後に諦め悪く入れなおしたら動いた。
良く判らないが動かないのは非常に厳しいので助かった。
駄目かと思ってArcbirdのgsGetFile直接使用を実装したのに意味なし。
まあC#からgsGetFileを直接使うっていうのは中々面倒なパターンで勉強にはなったが。

WkTASKは事前にX02T関連で聞いていた通りで
スタートメニューが独立プロセスになったらしい。
その為×ボタンで終了から除外しておかないと表示できなくなる。
あとはまあ、タスクバー表示がちょっと変わったので画面によってデザインに影響でてる。

微妙な差といえばGsFinderでドラッグ複数選択が出来るようになってる。
タップで選択していくとうっかり実行になったりするからこれは助かる。


レジストリ変更で場所を忘れてたのをメモ。

・未署名プログラムのインストール/実行時警告
HKEY_LOCAL_MACHINE\Security\Policies\Policies
0x101Aを0から1へ

・Todayの分割線非表示
HKEY_LOCAL_MACHINE\Software\Microsoft\Today
HidePluginSeparators=dword:1
モバイル | Comments:0
(2009/12/17(Thu) 23:04:16)

 

Copyright © 混沌雑記帳. All Rights Reserved. [PHPウェブログシステム3 FLEUGELzネットマニア + 独自改造]