日本語の情報があんまりなかったんで、短いスクリプトだけど載せといてもいいかなーと。
こんだけです。
詳しいことはMSDNのWUA APIリファレンスを参照。
http://msdn.microsoft.com/en-us/library/aa387292(v=VS.85).aspx
COMインタフェースとProgIDの対応が載ってなかったんですがレジストリ見たら大体わかります。
TESTACH のシクロフレームで組んだロードバイクに乗ってます。メンテナンスとかサイクリング日記とか。
PICマイコンを使った電子工作ネタ、電動ラジコンヘリ、Windowsアプリケーション開発とか気が向いたら何でも乗せる見境なしblog。旧ブログタイトルは ヨシヲたんの日記 。
EEPROMとのI2C接続もうまくいってるっぽいので、そろそろWindows側アプリに手を出しますよ。
Windowsアプリ側でMMLを書いてコンパイルしてRS232CでYMZ294ボード(上のEEPROM)に曲データを転送して演奏、が目指している形なので、そろそろMMLコンパイラを作らないといけないのですよ。
というわけでVisualStudioを起動…
あれ?
よく考えたらPC組み替えてからVisualStudioをインストールしてなかった!
なんてこったい。
というわけでCDを出してきてVS2005を…って2005?
今出てるのは2008が最新版でしょ。
それになんか無料で使えるExpress Editionがあって、がんばればWin32開発もできるって聞いたような。
というわけでVC++2008Expressをダウンロード&インストール。
で、インストール終わったんで、ファイル→新規作成→プロジェクト…っと…えー?
「Win32 MFC アプリケーション」が選べないっていうかリストにありません。
で、なんか調べてみたらMFCは有料版じゃないと使えないらしい。残念。
じゃあもうこうなったらCLR上で動くアプリでもいいよ。この際だから古くさいMFCとか捨てちゃってみるのもアリだと思うしね!
と思ってプロジェクトを新規作成してみましたが…
なんかワケわからん演算子とかが増えていたりして、なんというかその…
そこまでしてC++を使い続けるんですか?
みたいな感じがしてきたので、C#を使う事にしました。もうヤケクソです。
というわけでVC#2008 Expressをインストールしてゴニョゴニョ…
うーんこれは!
やっべえくらい簡単ですよ!
夕方くらいからいじり始めましたが、調べながら作ってなんとなくメモ帳っぽい動作をするものができました。
YMZ294ボードとRS232Cでコマンドやりとりも一応できています。
もうなんというかググればクラスとかステートメントの使い方は大体出てきちゃうし、Intellisenseがやたらと賢いので2〜3文字入力してTab押すだけで終わっちゃったりといろいろ楽すぎです。
今までのMFC開発は何だったんだwwwみたいな。
クラスライブラリもなんかやたら充実してるしファイルの扱いは腰抜けるほど簡単だし正規表現も使えるしフォームはアンカー機能とかドック機能まで標準で付いちゃってるし。
いやー、現代のソフト開発ってこんなだったんですな!
と言いつつもMMLのコンパイル部分はまだ全然書けていないのでこれからがんばります。
並行してPICの方のプログラムも進めないと…。まだLFOとか実装してないし。
ごめんなさい。
YTaskMgrとか直さずにこんなん作ってました。
会社で仕事終わってからExcel VBAでテトリス作ってみたら意外と面白かったので、こりゃZERO3用に作るべと思って製作開始。
(フリーの納得できるテトリスが見つからなかったというのもありますが)
DirectX使えばいいんでしょうけど、なんかめんどくさそうなのでフレームバッファ直描きです。(なれればこっちのほうがめんどいと言われそうですが)
「一応動く」という段階になったので公開してみます。
一応動くレベルなので不具合満載と思われます。あくまでもテスト公開です…。
内容説明。
そんなところで。
覚悟のある人だけちょっと試してみてくださいみたいな。
http://www.easy-creator.net/will-storage/ztris001.zip
2007/5/1 0:34 追記
X01HTでは多分動きません。
ロウフレームバッファ直描きで、その上VGA画面前提なので…。
ピクセルフォーマットがRGB555でも検証できてないので怪しいところ。
em-oneでは動くかもしれないけど画面の下が余ると思います。
Windows Vista Ultimate 入れましたよ。
VisualStudio2005も動いてZERO3の実機でのデバッグも動いてるっぽいです。(スクショはエミュレータですが)
ActiveSyncはインスコしなくてよし。
まあなんというかVistaですけど・・・
今の段階ではネタOSという表現が適切かと思います(ぉ
使ってて新鮮だけど必ずしも必要かと言われると…。
新し物好きでなければXPで十分やりたいことはできる感じ。
とりあえず今Vistaで困っていること
そのぐらいですかね。
でもキャプチャとOutlookはかなり重要なので痛い。
ソフトはまだまだ入れてないのがたくさんあるのでこれからいろいろと露呈してくるかも。
YTaskMgr 1.21 公開しました。昨日。
主な目的はZERO3Actionへの対応だったわけですが…
アップした翌日に試してみたらZERO3Action常駐してる状態で長押しするとメインウインドウが閉じてしまうことが判明orz
すみません。直します。
というわけで、せっかくなのでキー入力関係のメッセージが見えるツールを作ろうと思って作りました。
http://www.easy-creator.net/will-storage/KeyTest.zip
からDLできます。
ちなみに、このプログラムは WM_KEYDOWN が来たら無条件で SHRecognizeGesture します。
というわけで見てみましたが・・・・・・・
んんんー?
W-ZERO3は決定ボタンを長押ししても、キーコード0x0DのWM_KEYDOWNが来ない。くるのは0xE5です。
この0xE5というキーに関する情報は今までも色々見てみたんですが…
くらいしか書いてません。謎。
しかもIME PROCESSって…。変換キーのこと?
で、決定ボタンを離すと0x0DのKEYDOWNとKEYUPが一緒に来る。なんだこれ。
で、長押ししている間0x0DのKEYDOWNが来ないので、0x0DのKEYDOWNにあわせてSHRecognizeGestureを発行するようにすると長押ししても長押しのグルグルが出ないという事態になります。
というわけなのでZERO3用に作るなら良く分からないけど0xE5が来たらSHRecognizeGestureするようにしないといけません。納得いきませんが。
ZERO3Actionを常駐させると極めて普通な動作になりますね。
キーを押したらKEYDOWNが来て、離したらKEYUPが来る。
当たり前じゃんと言われそうですがZERO3Actionがないとなぜかこうなりません。なんのこっちゃ。
というわけで、普通に押したのはWM_KEYUPで判断、長押しはWM_CONTEXTMENUで判断すれば・・・
と思ったのですが、ソフトキーのメニューを操作してもWM_KEYUPが来てしまうようなのですよ・・・。
というわけで…
長押しはWM_CONTEXTMENUで判断。
普通に押したのは、0xE5または0x0Dのキーが押されてから、0x0Dのキーが離されるまでの間にWM_CONTEXTMENUおよびWM_COMMANDが来なかったら普通に押したと判断。ということにしたところうまく動いているようです。めんどい…
というわけでver-1.22をアップしたら寝ます。
明日が休みでよかった…
ヨシヲ