超元祖ヨシヲ公式ブログ改β 〜マラビンタの夜明け〜

TESTACH のシクロフレームで組んだロードバイクに乗ってます。メンテナンスとかサイクリング日記とか。
PICマイコンを使った電子工作ネタ、電動ラジコンヘリ、Windowsアプリケーション開発とか気が向いたら何でも乗せる見境なしblog。旧ブログタイトルは ヨシヲたんの日記 。

Win32 MFC 開発

Windows Update が有効に設定されているかを VBScript で調べる

VBScriptから、WindowsUpdateの自動更新が有効になってるかを調べたかったので、ググってスクリプト書きました。
日本語の情報があんまりなかったんで、短いスクリプトだけど載せといてもいいかなーと。

Dim AutomaticUpdates, AutomaticUpdateSettings, msg
Set AutomaticUpdates = CreateObject("Microsoft.Update.AutoUpdate")
Set AutomaticUpdateSettings = AutomaticUpdates.Settings
Select Case AutomaticUpdateSettings.NotificationLevel
Case 0: msg = "未設定"
Case 1: msg = "無効"
Case 2: msg = "ダウンロード前に通知する"
Case 3: msg = "インストール前に通知する"
Case 4: msg = "インストールをスケジュール"
End Select
MsgBox "Windows Update の状態: " & msg

こんだけです。
詳しいことはMSDNのWUA APIリファレンスを参照。
http://msdn.microsoft.com/en-us/library/aa387292(v=VS.85).aspx

COMインタフェースとProgIDの対応が載ってなかったんですがレジストリ見たら大体わかります。

YMZ294 その6 - Visual C# 2008 Express

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をインストールしてゴニョゴニョ…

うーんこれは!
やっべえくらい簡単ですよ!

vs2008

夕方くらいからいじり始めましたが、調べながら作ってなんとなくメモ帳っぽい動作をするものができました。
YMZ294ボードとRS232Cでコマンドやりとりも一応できています。
もうなんというかググればクラスとかステートメントの使い方は大体出てきちゃうし、Intellisenseがやたらと賢いので2〜3文字入力してTab押すだけで終わっちゃったりといろいろ楽すぎです。
今までのMFC開発は何だったんだwwwみたいな。

クラスライブラリもなんかやたら充実してるしファイルの扱いは腰抜けるほど簡単だし正規表現も使えるしフォームはアンカー機能とかドック機能まで標準で付いちゃってるし。
いやー、現代のソフト開発ってこんなだったんですな!

と言いつつもMMLのコンパイル部分はまだ全然書けていないのでこれからがんばります。
並行してPICの方のプログラムも進めないと…。まだLFOとか実装してないし。

W-ZERO3用テト○ス

ごめんなさい。
YTaskMgrとか直さずにこんなん作ってました。

ZTris

会社で仕事終わってからExcel VBAでテトリス作ってみたら意外と面白かったので、こりゃZERO3用に作るべと思って製作開始。
(フリーの納得できるテトリスが見つからなかったというのもありますが)
DirectX使えばいいんでしょうけど、なんかめんどくさそうなのでフレームバッファ直描きです。(なれればこっちのほうがめんどいと言われそうですが)
「一応動く」という段階になったので公開してみます。
一応動くレベルなので不具合満載と思われます。あくまでもテスト公開です…。

内容説明。

  • 縦画面専用です。
  • タイトル画面では上下キーで項目選択、決定キーで決定ですが INFINITY GAME(延々プレイするモード)とQUIT(終了)しか選べません。
  • 今のところスコアはありません。何時間遊んでも落下速度が上がったりもしません。
  • ゲーム画面では左右でブロックを左右に移動、下キーでブロックを下に移動、決定キーでブロックを時計回りに回転、上キーでハードドロップ(一気に下まで落として固着させる)です。
  • ゲームオーバーもありません。左ソフトキーで終了してください。
  • 下キーおよび自然落下で地面に落ちても約1秒(60フレーム)の間は左右移動と回転ができます。このとき上または下キーでブロックを固着させることができます。
  • ブロックの出が偏っているような気がします。(単純にrand()です)
  • 終了するときになんかハングアップすることがある気がする。
  • ゲーム中に電話が掛かってきてもゲーム画面のままです。大変です。(ぉ
  • ゲーム中にキーボードを引き出すなどして画面を回転させると方向キーが横仕様になってまともに操作できなくなります。

そんなところで。
覚悟のある人だけちょっと試してみてくださいみたいな。

http://www.easy-creator.net/will-storage/ztris001.zip


2007/5/1 0:34 追記
X01HTでは多分動きません。
ロウフレームバッファ直描きで、その上VGA画面前提なので…。
ピクセルフォーマットがRGB555でも検証できてないので怪しいところ。
em-oneでは動くかもしれないけど画面の下が余ると思います。

Vistaびみょー・・

Windows Vista Ultimate 入れましたよ。

びすたーん

VisualStudio2005も動いてZERO3の実機でのデバッグも動いてるっぽいです。(スクショはエミュレータですが)
ActiveSyncはインスコしなくてよし。

まあなんというかVistaですけど・・・
今の段階ではネタOSという表現が適切かと思います(ぉ

使ってて新鮮だけど必ずしも必要かと言われると…。
新し物好きでなければXPで十分やりたいことはできる感じ。

とりあえず今Vistaで困っていること

  • キャプチャボード(ELSA EX300TV)とふぬああが使えない(AVIUtlは動いた)
  • XviDの動画が画面動かなかった…けど今日再生したら動いた。何コレ。
  • Outlook2000が微妙に動作が変・ZERO3と同期できない。

そのぐらいですかね。
でもキャプチャとOutlookはかなり重要なので痛い。

ソフトはまだまだ入れてないのがたくさんあるのでこれからいろいろと露呈してくるかも。

YTaskMgr ver-1.21 の不具合

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というキーに関する情報は今までも色々見てみたんですが…

VK_PROCESSKEY (E5)
Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key

くらいしか書いてません。謎。
しかも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をアップしたら寝ます。
明日が休みでよかった…

このblogについて
このblogは、私のホームページ内の日記コンテンツ…でしたが、もう何年もこっちがメインです。
ホームページはこちら。
http://www31.ocn.ne.jp/~yoshio2/
2ちゃん系掲示板に書き込むときのトリップは ◆GBrDo4K0i. を使用しています。
GoogleAds
最新コメント
ついったー
リンク
すなけ日記
なんて言ったらいいかよく分からないお友達、すなけさんのblog(ぉ
自転車メンテとかマニアドリンクとかトラベラーズノートとか。
hazimelog
湘南のガチムチおにぎり、はじめちゃんのblog。SCOTT FOIL Team Issueとか買っちゃってとどまる事を知らない。
不器用工房
自転車で通勤しているアニメ大好きなギタリスト、S木さんのHP。
月別アーカイブ
livedoor プロフィール

ヨシヲ

  • ライブドアブログ