2017年11月18日土曜日

入力した文字が画面に飛び出すデスクトップアクセサリ改


【WPF】 文字が飛び出すデスクトップアクセサリにて紹介したアプリケーションを作り直しました。タイピングの速度についていくため高速化したとともに、キー入力の際にドラムやピアノの音が出るようになりました。





ダウンロード

実行ファイル →
https://github.com/seinosuke/LaunCharCpp/releases/download/0.1.0/LaunChar.zip

ソースコード →
https://github.com/seinosuke/LaunCharCpp


動作環境

Windows10での動作を確認しました。
Windows7では背景の透過処理が行われないという問題が発生しており、現在原因を調査中です。

また、実行には DirectX のランタイムが必要となります。
「コンピューターにd3dx9_43.dllがないため、プログラムを開始できません。
この問題を解決するには、プログラムを再インストールしてみてください。」
というエラーが発生する場合は

https://www.microsoft.com/ja-jp/download/details.aspx?id=35&

からDirectXエンドユーザーランタイムWebインストーラ dxwebsetup.exe をダウンロードしてインストールを行ってください。


使い方

LaunChar.exe を起動するだけです。他のウィンドウで作業をしていると、キーボードで打った文字が画面上に飛び出してきます。

タスクバーや[Alt]+[Tab]などでLaunCharウィンドウをアクティブにし特定のキーを入力することで、文字のジャンプ力やキーの音の切り替えなどができます。

  • [Alt] + [M] : キーの入力音切り替え
  • [Alt] + [J] : 文字のジャンプ力切り替え
  • [Alt] + [Q] : アプリケーションを終了


クレジット

ピアノ音やドラム音などのwavファイル群はフリー音楽素材魔王魂さまのものを使用しています。
魔王魂素材利用規約

おわりに

描画するウィンドウは最前面にセットしつつ、背景を透過しマウスイベントを貫通させています。デスクトップマスコットなど、いろいろ遊べそうな予感。Windows7で背景が透過されない問題について、7ではできるけど10では動かないみたいな話はよくありますが、その逆は初めてなので正直どうしようという感じです。

WS_EX_LAYERED | WS_EX_TRANSPARENT で CreateWindowEx()して
SetLayeredWindowAttributes(hwnd, RGB(0, 0, 128), 0, LWA_COLORKEY);
みたいにしています。

0 件のコメント:

コメントを投稿