HOME     掲示板     メール     販売  

Links:

最近の投稿

カテゴリー

広告

サイト内検索

外部リンク

アーカイブ

広告

Windows Store版 X Button Maker ver.3.2リリース

えらい時間がかかりましたが、やっとリリースする事が出来ました
以下のページからダウンロードできます。
https://www.microsoft.com/store/productid/9N410HXFTRHB

従来版との違いは
1.64bit Windows上でのみ実行可能
2.IME ON時のウィンドウ表示はできない
3.多言語版のカスタマイズができない
4.中ボタンのマウスジェスチャーはたぶんできない
5.「変更したいキーまたはマウスジェスチャーの登録」で出てくるウィザードダイアログで「出力する文字または起動するファイル」とタイトルされたページの「テスト…」の使い方を変更
6.「アプリケーション毎の定義の追加」で「マウス移動による情報取得の停止」チェックは、マウスの左ダブルクリックからマウスの4番目もしくは5番目のキーに変更。
7.特定アプリケーションの定義において、32bitアプリか64bitアプリかの区別をあえてしないことにした。

5以外、Windows Store版での制限に起因するものです。今回たまたま別の方法でフォーカスイベントをキャプチャできる方法があったのを思い出し、それはWindows Store版で制限されていなかったので、当初対応は無理だと思っていたのを撤回して修正して提出することができました。加えて以前のエントリーでグローバルフックは制限がかけられていると説明しましたが、低レベルのマウスとキーボードフックは問題なかったのもWindowsStore版に対応できた理由になります。とはいえ、将来それもできなくなるかもしれませんが。
 BattenXではオプションで対応になった低レベルマウスフックは、Windows Store版X Button Makerでデフォルトで使われることになり(というかそれがないとマウスジェスチャーは対応できない)、モダンアプリのマウスジェスチャーも可能になっています。

正直言って既にリリースされているデスクトップ版を使っている人にはほとんど意味がありません。

5は、使い方が明らかに間違えると判断しましたので変えました。具体的には「テスト…」を押した後のダイアログが出ているときに、マウスの4番か5番目のボタンを押すか、直前のページで指定した変更するボタンを実行することで、キーまたは文字列などを送出するようにしました。
 デスクトップ版はBattenXも同じですが、そのダイアログが終了した後に右クリックか指定のキーを押す仕様になっています。これは絶対に間違えます。作った本人でさえ間違えたのですから。なぜそのようにしたのか、作ったのが何年も前なのでわからないのですが、多分この機能を使っている人は、私を含めほとんどいないので誰も気にしてなかったのでしょう。
右クリックを4,5番目のボタンに変えたのは、右クリックはうまくいかない場合がほとんどだったので変えました。

つまりWindows10では、右ボタンのマウスジェスチャーもほとんどうまくいかないことを意味します。これは残念ながらマウスジェスチャーは実質マウス左ボタンしかできない事を意味します。
このソフトはシステムをハッキングするようなソフトなので、色々制限が出てしまうのは仕方ないのかもしれません。

6.について、従来版はマウスカーソルを移動しただけでアプリの情報取得ができましたが、Windows Store版ではマウス左クリックする必要があります。

7.については、デスクトップ版においては、アプリが32bitか64bitかの区別はプログラム側の都合でそうしたのであり、今回WindowsStore版では64bit/32bitの区別は特にしなくてもできるようなったので、ユーザ視点からすればそのような区別は意味がないと判断し、変更しました。したがって、アプリが同じで32bit版64bit版両方使うユーザの場合、定義できるアプリの数が多くなることを意味します。

個人的にはデスクトップアプリをWindowsStore対応するのにこれほどてこずるとは思いませんでした。対応ツールが半完成品で、Microsoftが設定した愚かな仕様のために、一度DesktopAppConverterでストアアプリ版にしたものを解凍して内部のXMLファイルを修正すると言うバカバカしい事を強要させることに心底あきれてしまいました。修正箇所もMicrosoft社員に直接尋ねないと分からない内容です。Web上でも通り一遍説明されているようですが、ストアアプリ化したアーカイブファイルを.ZIPにリネームして解凍する必要があると説明したページは見たことがありません。仮にあったとしても、完成度があまりにも低すぎます。これがVisualStudioを作った同じメーカーのツールなのかと思ってしまいます。

これも技術的な話ですが、技術的な制限のために64bit版Windows上でのみ対応となってしまいましたが(一応断っておきますが、従来どおり32bitアプリでも定義はできます)、設定ダイアログも今回64bitアプリになりました。初めて64bitのMFCを使ったのですが、仮想関数のパラメーターは注意するべきです。古いバージョンから使っている場合、DWORDという型はDWORD_PTR(32bit出力の場合DWORD,64bit出力だと多分DWORD64に変わってるのでしょう)に変わっているものがありますので、古いMFCを使ったソースコードを使っている方は意図したように仮想関数が呼ばれなくなります。
へルプファイルが出ないので、この問題を突き止めるのに三日ぐらい費やしてしまいました。