Brainハックについて

やってみた

Brainの入手経緯については、前の記事を参照すればわかります。
とりあえず、休み中にできることをやってみた。

cegccが使えない?

答えはnoです。
独自ランタイムを使うバージョンのcegccはインポートしてる関数の関係で動きません。
これについては、ダミーDLLを作ることで解決すると思います(試してませんが)
また、mingw32ce版のcegccは正常に動きます。
これは、通常はcoredll.dllのみしかインポートしてないので、正常に動くと思われます。

フォントは?

AddFontResource関数でフォントを追加し、SendMessage関数で変更をブロードキャストすればいいようです。
逆に、フォントの削除はRemoveFontResource関数でできるようです(MSDNより)

APIフックについて

APIフックに使えるようなコードを試してみましたが、動作しませんでした。
以下に結果を載せておきます。

  WM6.0 Classic(エミュレータ Brain(PW-AC880)
SystemAPISetsテーブルを用いたAPIフック ×(異常が発生しました)
PerformCallBack4関数を用いたDLLの注入 ×(関数の戻り値がNULL)

使いやすいBrain用ソフトを作るためには

基本的には、使えるライブラリが限られてること以外はWMと作り方は一緒ですが、使いやすいソフトを作るためのTipsを挙げておきます。

gsgetfileを使う

gsgetfileを使うことで、コモンダイアログが使いやすくなります。

メイン画面がタッチできない機種のことも考える

Brainシリーズの大半の機種は、メイン画面がタッチできない機種です。
そのため、Alt・Tabキーが無いBrainでは、メニューバーの操作などができません。
誰かキーフック使って作ってくれるといいなぁ…

最後に

2chSHARP BrainのWindows CEを活用する スレには貴重な情報がありました。ありがとうございます。
風邪ひいて頭が痛くて熱出しながら書いた記事なので、おかしいところがあるかもしれません。
何かあったらコメントまで。