[予定] Windows タブレット向け ソフトウェアキーボード&マウスパッドアプリ「ちーたんタッチボード Ver 0.32」について

現在公開している Ver 0.31 で2点不具合を発見したのでその修正版を近いうちにリリースする予定です。修正内容は以下の2つになります。

  • キーが押下されている状態でちーたんタッチボードを終了しようとするとエラーが表示される現象
  • "Shift や Ctrl キーを押してトグル状態にしているときに反対側の Shift や Ctrl を押してトグルを解除しようとすると意図しない挙動になる現象
]]>

ソフトウェアキーボード&マウスパッドアプリ「ちーたんタッチボード Ver 0.31」公開しました

ちーたんタッチボード Ver 0.31 を公開しました。主にバグ修正が目的となっていますが、細かい点の改修・修正を行っています。

主な修正点は以下の通りです。

  • DirectInput を使用したゲームなどのアプリケーションで D-Pad が押しっぱなしになるような現象になっていたのを修正
  • ボードを切り替えた時にボードが画面左上に配置されてしまう現象が発生する場合があるのを修正
  • ボードの設定でボードの並び順(切り替え順)を指定できるようにした
  • キー以外の場所を押している状態でそのまま他のキー(設定やボード切り替えキーなど)に移動し離すと対象のキーが動作してしまうのを動作しないようにした

などです。

その他更新履歴、ダウンロードは以下のページを参照してください。

]]>

[予定] ちーたんタッチボード Ver 0.31 について

近日 Ver 0.31 を公開する予定です。内容は主に Ver 0.30 で発生していた不具合や細かな修正となります。

あと、アプリケーションには直接関係ありませんが、Web ページの多言語化対応の方もできてきましたので、同じ頃ぐらいにアップデートしたいと思います。

]]>

ソフトウェアキーボード&マウスパッドアプリ「ちーたんタッチボード Ver 0.30」公開しました

ちーたんタッチボード Ver 0.30 を公開しました。当初はちょっとしたプログラム改修のみを行う予定だったのですが、なんだかんだ手を入れていったらやや大きめの改修になってしまいました。なので Ver 0.30 です。

代表的な改修点は以下のものになります。

  • ボード作成 Excel ツール
  • ボードの前回の位置を記憶
  • 修飾キー(Shift や Ctrl)の動作を Windows 標準のタッチキーボードに準拠
  • ボードコンテナの設定に「KeyReleaseTimingWhenActiveWindowChange」を追加し、アクティブウィンドウを切り替えたときにトグルキーの解除タイミングを設定できるようにした
  • IME 変更時にボードの色が変更するタイミングを 200ms ほど遅延させました。これにより頻繁にボードの背景色が変更されるのを防ぎます。
  • Windows XP で起動エラーになっていた問題
  • 設定画面において色の変更が正しくなかった点
  • 設定画面で変更せずにキャンセルしても確認ダイアログが表示される問題修正(初回保存前は例外)
  • ボードやキーの「ImageRenderMode」パラメータの「Fill」の動作が「Uniform」に変更されます

ボード作成 Excel ツール

ようやくというかやっとできました。初めてちーたんタッチボードを作ってから約8か月になります。

以前の投稿でも書いたのですが当初は XAML ファイルからボードの定義を作成するように考えていました。しかし、ちーたんタッチボード用に拡張パラメータを設定しようとすると XAML だけでは限界があったので、いろいろ悩んだ結果 Excel ツールとして作成することにしました。

Excel なら図形も使えるしセルも使えるしマクロも使えるしフォームも使えると割となんでもできます。今回はレイアウトを図形で作成し、パラメータはセルにテーブル形式で入力するようにしました。そしてそれらの入力情報からマクロでボードコンテナ定義ファイル(JSON ファイル)として出力するようにしました。

ツールはダウンロードページから、使い方は別途専用ページを作成しましたのでそちらをご覧ください。

Excel 最強。

ボードの前回の位置を記憶

割と要望が多かった前回のボードの位置を記憶する機能を追加しました。これはボードを切り替えた時やちーたんタッチボードを起動したときなどに適用されます。

なぜ今まで実装していなかったのかというと、ボード切り替えのタイミングでボードが初期位置にないとボード切り替えボタンが毎回異なる場所に配置されてしまうため、連続でボードを切り替える場合に結構面倒だと思ったからです。

今回その対策については特に行っておりませんが、ボードの前回の位置を記憶するかどうかは設定画面で切り替え可能です。

修飾キー(Shift や Ctrl)の動作を Windows 標準のタッチキーボードに準拠

Shift や Ctrl の押下動作は今まで独自に考えて実装していました。普通に使う分には特に問題ないのですが、例えばエクスプローラー上でファイルを複数選択する際に Shift キーを押しながらマウス操作を行っても複数選択することはできませんでした。これは Windows 標準の動作と異なる処理を行っていたからです。

Ver 0.30 では限りなく Windows 標準のタッチキーボードと同じ動作になるように実装したので、Shift キーとマウスパッドを同時に配置してエクスプローラーでファイルを複数するような動作ができるようになりました。もちろん Ctrl や Alt も同様です。また他のアプリケーションでも同じ動作ができるようになっています。

用は今までは内側(ちーたんタッチボード)だけしか考えていなかったのを、外部アプリケーションも考えて改修してみたということです。

実はまだ Windows 標準のタッチキーボードと動作が違うところがあるのですが、あまり気にならないところなのでおいおい直していきたいと思います。

ボードコンテナの設定に「KeyReleaseTimingWhenActiveWindowChange」を追加し、アクティブウィンドウを切り替えたときにトグルキーの解除タイミングを設定できるようにした

修飾キー以外、例えばペイントソフト用にスペースキーをトグルにしたとき、トグルを解除するのを忘れたまま他のウィンドウをアクティブにしてしまうと、そのままスペースが連続して入力されてしまうという現象が前のバージョンまでありました。

Ver 0.30 ではウィンドウが切り替わったことを検知してトグルキーを解除する機能を追加しました。この設定は標準では無効になっていますが、ボードの設定で有効にすることができます。(文字キーをトグルにすることはほとんどないため)

配布しているペイント用のボードにはこの設定を適用しています。

Windows XP で起動エラーになっていた問題

すみません、いつの間にかエラーになっていました。どうやら XP と WPF のアイコンの問題だったのでうまく回避するようにしました。

設定画面において色の変更が正しくなかった点

詳しくは前に投稿した記事をご覧ください。

 

他にも変更点はありますが詳しくは更新履歴のページを参照してください。

 

あと、ホームページの更新履歴のほうで「ちーたんタッチボードのページを40か国語に対応しました」って書いてしまったんですが実はまだ「概要」と「ダウンロード」ページしかできてません orz 。時間があれば追記していきたいと思います。

]]>

System.Windows.Media.Color の「scRGB」ってなんだ?

現在公開しているツール「ちーたんタッチボード」では、色情報を 0.0 ~ 1.0 の小数で持っているのですが、プログラムで ARGB として設定する際に 0 ~ 255 形式に変換する必要がありました。しかし、小数↔整数 の変換には誤差がつきものなのでどうにかならないのかなと思っていたのですが、WPF で使用されている System.Windows.Media.Color に「ScA」「ScR」のようなプロパティがあるのを見つけました。

MSDN で調べてみると渡す値は 0 ~ 1 と書いてあったので「0 ~ 255 の代わりに 0.0 ~ 1.0 の線形補間で色情報を渡せるんだ」と思い込んでしまったのが悪夢の始まりでした。

実は現在公開しているちーたんタッチボード Ver 0.23 では背景や文字の色設定を行うと設定するたびに微妙に色が変わったりする不具合が存在しています。もうお分かりかと思いますが、上記の誤解により発生している不具合です。(次に公開する Ver 0.30 では治ってます^^;)

当時原因がよくわからなくてほかのライブラリが原因なのではないかとか思ったりしていたのですが、最終的に Color 構造体に秘密があるのではないかと思い、値設定後の各パラメータのダンプを取ってみました。以下は ScX プロパティに 0.01 ずつ設定したものです。

A R G B ScA ScR ScG ScB
0 0 0 0 0.00 0.00 0.00 0.00
3 25 25 25 0.01 0.01 0.01 0.01
5 39 39 39 0.02 0.02 0.02 0.02
8 48 48 48 0.03 0.03 0.03 0.03
10 56 56 56 0.04 0.04 0.04 0.04
13 63 63 63 0.05 0.05 0.05 0.05
15 69 69 69 0.06 0.06 0.06 0.06
18 75 75 75 0.07 0.07 0.07 0.07
20 80 80 80 0.08 0.08 0.08 0.08
23 85 85 85 0.09 0.09 0.09 0.09
26 89 89 89 0.10 0.10 0.10 0.10
28 93 93 93 0.11 0.11 0.11 0.11
31 97 97 97 0.12 0.12 0.12 0.12
33 101 101 101 0.13 0.13 0.13 0.13
36 105 105 105 0.14 0.14 0.14 0.14
38 108 108 108 0.15 0.15 0.15 0.15
41 111 111 111 0.16 0.16 0.16 0.16
43 115 115 115 0.17 0.17 0.17 0.17
46 118 118 118 0.18 0.18 0.18 0.18
48 121 121 121 0.19 0.19 0.19 0.19
51 124 124 124 0.20 0.20 0.20 0.20
54 126 126 126 0.21 0.21 0.21 0.21
56 129 129 129 0.22 0.22 0.22 0.22
59 132 132 132 0.23 0.23 0.23 0.23
61 134 134 134 0.24 0.24 0.24 0.24
64 137 137 137 0.25 0.25 0.25 0.25
66 139 139 139 0.26 0.26 0.26 0.26
69 142 142 142 0.27 0.27 0.27 0.27
71 144 144 144 0.28 0.28 0.28 0.28
74 147 147 147 0.29 0.29 0.29 0.29
77 149 149 149 0.30 0.30 0.30 0.30
79 151 151 151 0.31 0.31 0.31 0.31
82 153 153 153 0.32 0.32 0.32 0.32
84 155 155 155 0.33 0.33 0.33 0.33
87 158 158 158 0.34 < /td> 0.34 0.34 0.34
89 160 160 160 0.35 0.35 0.35 0.35
92 162 162 162 0.36 0.36 0.36 0.36
94 164 164 164 0.37 0.37 0.37 0.37
97 166 166 166 0.38 0.38 0.38 0.38
99 168 168 168 0.39 0.39 0.39 0.39
102 170 170 170 0.40 0.40 0.40 0.40
105 172 172 172 0.41 0.41 0.41 0.41
107 173 173 173 0.42 0.42 0.42 0.42
110 175 175 175 0.43 0.43 0.43 0.43
112 177 177 177 0.44 0.44 0.44 0.44
115 179 179 179 0.45 0.45 0.45 0.45
117 181 181 181 0.46 0.46 0.46 0.46
120 182 182 182 0.47 0.47 0.47 0.47
122 184 184 184 0.48 0.48 0.48 0.48
125 186 186 186 0.49 0.49 0.49 0.49
128 188 188 188 0.50 0.50 0.50 0.50
130 189 189 189 0.51 0.51 0.51 0.51
133 191 191 191 0.52 0.52 0.52 0.52
135 192 192 192 0.53 0.53 0.53 0.53
138 194 194 194 0.54 0.54 0.54 0.54
140 196 196 196 0.55 0.55 0.55 0.55
143 197 197 197 0.56 0.56 0.56 0.56
145 199 199 199 0.57 0.57 0.57 0.57
148 200 200 200 0.58 0.58 0.58 0.58
150 202 202 202 0.59 0.59 0.59 0.59
153 203 203 203 0.60 0.60 0.60 0.60
156 205 205 205 0.61 0.61 0.61 0.61
158 206 206 206 0.62 0.62 0.62 0.62
161 208 208 208 0.63 0.63 0.63 0.63
163 209 209 209 0.64 0.64 0.64 0.64
166 211 211 211 0.65 0.65 0.65 0.65
168 212 212 212 0.66 0.66 0.66 0.66
171 214 214 214 0.67 0.67 0.67 0.67
173 215 215 215 0.68 0.68 0.68 0.68
176 216 216 216 0.69 0.69 0.69 0.69
179 218 218 218 0.70 0.70 0.70 0.70
181 219 219 219 0.71 0.71 0.71 0.71
184 221 221 221 0.72 0.72 0.72 0.72
186 222 222 222 0.73 0.73 0.73 0.73
189 223 223 223 0.74 0.74 0.74 0.74
191 225 225 225 0.75 0.75 0.75 0.75
194 226 226 226 0.76 0.76 0.76 0.76
196 227 227 227 0.77 0.77 0.77 0.77
199 229 229 229 0.78 0.78 0.78 0.78
201 230 230 230 0.79 0.79 0.79 0.79
204 231 231 231 0.80 0.80 0.80 0.80
207 232 232 232 0.81 0.81 0.81 0.81
209 234 234 234 0.82 0.82 0.82 0.82
212 235 235 235 0.83 0.83 0.83 0.83
214 236 236 236 0.84 0.84 0.84 0.84
217 237 237 237 0.85 0.85 0.85 0.85
219 239 239 239 0.86 0.86 0.86 0.86
222 240 240 240 0.87 0.87 0.87 0.87
224 241 241 241 0.88 0.88 0.88 0.88
227 242 242 242 0.89 0.89 0.89 0.89
230 243 243 243 0.90 0.90 0.90 0.90
232 245 245 245 0.91 0.91 0.91 0.91
235 246 246 246 0.92 0.92 0.92 0.92
237 247 247 247 0.93 0.93 0.93 0.93
240 248 248 248 0.94 0.94 0.94 0.94
242 249 249 249 0.95 0.95 0.95 0.95
245 250 250 250 0.96 0.96 0.96 0.96
247 252 252 252 0.97 0.97 0.97 0.97
250 253 253 253 0.98 0.98 0.98 0.98
252 254 254 254 0.99 0.99 0.99 0.99
255 255 255 255 1.00 1.00 1.00 1.00

見事に線形ではありませんでした。

よくよく調べてみると ARGB のほうは sRGB という規格、ScA ScR ScG ScB のほうは scRGB という規格らしいです。scRGB については以下のサイトなどを参考にしてください。簡単にまとめると、sRGB(8bit) では表現できなかった色を 12bit や 16bit などに拡張してより多くの色情報を表現できるようにしたものです。

しかし、いろいろ調べてみても sRGB と scRGB の変換方法がよくわからなかったのでコードベースで情報がないか調べてみたところ以下のサイトがありました。

確かにこのコードに当てはめると Color 構造体で出力された結果と一致しました。ですが、この変換処理と scRGB について書かれている公式との関連性がよくわかりませんでした。Microsoft が独自に定義したものかもしれませんが、それについても文面を見つけることができませんでした。

まあとりあえず現状は 0.0~1.0 と 0~255 は単純に線形変換させて対応することにし、scRGB については今回の記事で参考になったという形にとどめておきたいと思います。なにか詳しい情報があればコメントいただければと思います。

]]>

ソフトウェアキーボード&マウスパッドアプリ「ちーたんタッチボード Ver 0.23」公開しました

なかなか手が付かずに更新できていませんでしたが、小規模なバージョンアップを行いました。内容は

  • 新しいバージョンが公開されているかどうかチェック。設定で変更可能。(デフォルト OFF)
  • Windows で高負荷がかかっている状態でマウスパッドでマウスカーソルを移動した際、マウスカーソルが大きく移動する現象を回避 (加速モード時)

です。高負荷状態のときにマウスカーソルが飛ぶ現象は自分でも割とあったので、マウスパッド使っている方は適用してみるといいかもしれません。

今回は小規模なものなのでバージョンは +0.01 にしました。もう少し大きめな機能拡張とかも考えているのですが、実装時期はまだ未定です。実装したらたぶん 0.30 ぐらいにするんじゃないかと思っています。

公開した後に気づいたのですが、既知の不具合として、設定画面で色設定あたりを変更するたびに微妙に色が変わってしまっているような気がします。そのせいでダイアログを閉じるたびに変更破棄確認ダイアログが出てしまっているようです。これについては次のバージョンで治したいと思います。(Ver 0.22 でもでてたっぽいです・・・。)

]]>

ソフトウェアキーボード&マウスパッドアプリ「ちーたんタッチボード Ver 0.22」公開しました

0.01 だけ上げたマイナーバージョンアップです。不具合の修正や内部の仕様を変更したものなので見た目や操作などで大きく変わったところはありません。

ちーたんタッチボード本体についてはボードコンテナ定義ファイルの仕様変更に対応した修正がほとんどなので機能的には Ver 0.21 とほとんど変わっていません。「CapsLock」の送信キーを正しいものに変えたりとか、マウスパッドでマウスカーソルのキーエリアをタップしたときの挙動などが変わっています。

付属のボードコンテナ定義ファイルとダウンロードできるボードコンテナ定義ファイルのレイアウトや画像などを更新しました。こちらもそこまで変わっていませんがキーを増やしたり位置を変えたりしています。また、すべてのボードコンテナ定義ファイルにおいてちーたんタッチボード Ver 0.22 の仕様に合わせて内部のパラメータを修正しました。

一応過去のバージョンの定義ファイルも読み込めるようにはしていますが、このまま対応していくかどうかは、今後定義がどのように変わっていくかに影響されるかもしれません。

]]>

ソフトウェアキーボード&マウスパッドアプリ「ちーたんタッチボード Ver 0.21」公開しました

先日ブログに書いた通り Ver 0.21 を公開しました。不具合の修正だけなのでバージョンを 0.01 だけ上げています。

修正した不具合の内容は

  • 一部のアプリケーションでカーソルキーや特殊キーを押したときに別のキーが押されたかのように動作する不具合
  • DirectInput を使用したアプリケーションに対してキーが反応しない不具合

です。主にゲーム系のアプリケーションに対して使用したときの不具合対応となっています。

]]>