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では、メニューバーの操作などができません。
誰かキーフック使って作ってくれるといいなぁ…
最後に
2chの SHARP BrainのWindows CEを活用する スレには貴重な情報がありました。ありがとうございます。
風邪ひいて頭が痛くて熱出しながら書いた記事なので、おかしいところがあるかもしれません。
何かあったらコメントまで。