スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« よりシンプルに | トップページ | 強調表示の追加 »

仮想キーボードの微修正とか

今はTiExtenderの開発フェーズで、バイナリは完成したので、MacBook Late2009 (OS X 10.9) なんかでも動作確認したのだが、仮想キーボードがMirror-DTCクライアントでの利用時に問題が出た以外は、普通に動作した。なので、後はその修正とドキュメンの作成になる。

何故、仮想キーボードがMirror-DTCクライアントでの利用時に問題が出たのか、というと、OS XとWindowsでは、キーボード入力に対する扱いが異なっているからだ。

具体的には、OS Xの場合、シフトキーやオプションキーなんかは修飾キー扱いになっていて、アプリ側から見れば、これらのキーが単独で押されても、キー入力扱いのイベントが発生しない格好になっている訳だ。

にも関わらず、OS X版のMirror-DTCクライアントを使ってWindows PCで稼動するMirror-DTCサーバーに接続すると、シフトキーだとかオプションキー(ALTキー)の単独入力も可能になっているのだが、これは、OS X版のMirror-DTCクライアントでは、修飾キーについても、特別なイベントを取得して独立キー扱いにしてあるからだ。

と、いう事で、TiExtenderはOS X専用ソフトなので、仮想キーボードの扱いはOS X標準扱いにしようか、と、思っていたのだが、Mirror-DTC クライアントとの併用で問題が出るのは、作者的には、やはり問題ではあった訳だ。

なので、TiExtenderの仮想キーボードについても、修飾キーの扱いはMirror-DTCクライアント並にしておく事にした。

その結果、キーボードマクロでは、イベント数が増えてしまうので、使用メモリ量だとかCPU負荷が増える、という問題が出るのだが、今時のマシンでは、これらの容量だとか負荷は全く問題にならない筈なので、問題が出るとしても、それはカタログスペックだけの話にはなる筈だ。

ちなみに、何度も書いた様に、キーボードマクロのオンライン登録時には、キー入力をグローバルに監視する必要があるので、特別な権限が必要になる。

具体的には、「システム環境設定」の「セキュリティとプライバシー」の「アクセシビリティ」で、「コンピュータの制御を許可」にTiExtenderを追加する必要がある。

作者的には、こんな作業をユーザーにやらせるのは大変かなあ、と、思っていたのだが、調べてみると、OS Xには専用のAPIがあって、上記の権限を既に得られているか否かを調べると共に、得られていない場合には、適切なダイアログを表示してくれるAPIがあった。

なので、次バージョンのTiExtenderでは、キーボードマクロのオンライン登録時には、上記のAPIを使用する格好にした。

その結果、権限を与えずに利用しようとした場合には、登録の開始時に、OS Xが権限を要求している旨のダイアログを表示し、そのダイアログにはシステム環境設定の当該箇所を開けるボタンがあるので、ユーザー的には、権限を与える操作が判りやすくなった。

もっとも、それでも、権限を与えないユーザーはいる筈なので、その場合には、登録の完了時に、TiExtenderが、権限が与えられていないので登録は行えなかった、という旨の表示を行う様にした。

と、いう事で、作者的には懸念事項だった権限設定についても、世間並みの対応は取れた感じなので、後は、仮想キーボードの微修正は必要なのだが、この件については、Mirror-DTCクライアントの処理ルーチンを参考に出来るので、大した作業量にはならない筈だ。

なので、明日はドキュメントを書き始める筈なので、リリースは間近、という事になる。

= この記事に関連する公開中ソフト =

TiExtender

TiExtender

(2016/10/25追加)

« よりシンプルに | トップページ | 強調表示の追加 »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/63844299

この記事へのトラックバック一覧です: 仮想キーボードの微修正とか:

« よりシンプルに | トップページ | 強調表示の追加 »

2017年12月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google