スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« サーバーの新機能は? | トップページ | 若干の不具合修正も »

キーバインド設定機能も実装

今は、Mirror-DTCのシェアウェア化を行うフェーズで、新機能は現行のクライアント/サーバー相当部分にもある。既に書いてきた様に、クライアントの新機能は、作者製ソフトとしては、ある意味、移植でしかないのだが、キーバインド設定機能は、人によっては便利な筈だ。

Windows以外の環境で利用できるMirror-DTCが最初にリリースされたのは、2011年7月25日で、それはmacOS用のJava版クライアントだった。

で、そのリリース記事は以下になるのだが、その記事によると、このWindows環境以外で利用できる最初のクライアントで、既に、キーバインドの変更機能がサポートされていた事が判る。

Mirror-DTC Client for Mac OS X/Java VMをβ公開

つまり、Mirror-DTC的には、というか、作者的には、7年も前から、既に、Windows版以外のMirror-DTCクライアントにはキーバインドの変更機能を実装していた訳だ。

にも関わらず、Windows版にはキーバインドの変更機能を実装して来なかったのだが、その理由についても、上記の記事の冒頭を見れば判るかもしれない。つまり、上記記事の冒頭には、以下の様に書かれている訳だ。

正式版は「Mirror-DTC Premium Pack」としてシェアウェア化する予定ですが、当面は、β版として無償でレジストファイルを利用可能にします。

と、いう事で、作者的には、当時から、キーバインドの変更機能というのは、シェアウェア用の機能と位置付けていた訳だ。

なので、フリー版でしかないWindows版には当該機能は実装して来なかったのだが、今回、上記のリリースから7年を経て、やっと、Mirror-DTCのシェアウェア化を行う事になったので、Windows版にもキーバインドの変更機能を実装する事にした訳だ。

で、キーバインドの変更機能というと、普通に実装すれば、難しくも無いのだが、Mirror-DTCに実装しているキーバインドの変更機能には、拡張バインドという概念があるので、実装は少し大変になる。

具体的には、通常のキーバインドの変更機能では、どれかのキーを別のキーに割り当てるだけなので、プログラム的には、変換テーブルを持たせておけば、基本的には、それだけで事は足りる。

例えば、F1キーを押すとWindowsキーが押された様にしたければ、変換テーブルにF1→Windowsの様な記述をしておき、クライアントでF1キーが入力されたら、プログラム的には、その変換テーブルを参照して、サーバーにはWindowsキーを転送してやれば、それだけで良い訳だ。

なので、こういう単純なキーバインドの変更だけなら、その設定用のダイアログを作成しなければならない点を除けば、実装は至って簡単なのだが、拡張バインドというのは、右シフトキーを押している状況では、通常とは全く別のキーバインドを適用する、というモノになる訳だ。

まあ、こういう書き方をすると、右シフトキーが押されている場合と押されいない場合で変換テーブルを切り替えれば済む話の様に聞こえる筈なのだが、実際には、それほど単純でもない訳だ。

何故なら、デフォルト設定では、拡張キーバインドでESCキーを漢字キーに変換してあるので、キー入力として、右シフトキー→Escキーが押されると、漢字キーがサーバーに送られるのだが、これは、所謂、キー Pressイベント相当の事象になる訳だ。

で、問題は、その後、押されたキーは離される訳なのだが、離される順番は、ESC→右シフトになるとは限らない訳だ。

つまり、拡張キーバインドを実現するためには、二つ以上のキー入力シーケンスが関係してくるので、内部的には、色々な記憶要素を持たせたりもしている訳だ。

と、いう事なので、上記をリリースした頃には、拡張バインド関連の挙動は、結構、不安定だったりもしたのだが、その後、細かい改良を重ねてきたので、現行のmacOS/Ubuntu版では、それなりに安心して使える格好になっている。

で、Windows版のキーバインド設定機能は、Ubuntu版からの移植になっているので、Windows版については、最初から、それなりに安心して使える格好になっている筈だ。

もっとも、Windowsユーザー的には、拡張キーバインド、なんて事を言われても、そもそも、キーバインドの意味すら判らないので、全く意味が判らない、なんて人も多いかもしれない。

なので、Windows版では、デフォルト設定では、通常のキーバインドは通常のキー配置と同一にしつつ、拡張キーバインドは禁止する様にしてある。

更に言えば、デフォルト設定では、現行版と同様にグローバルHookで漢字キーやWindowsキーなんかのOS向けのキーボード入力も横取りするので、入力した通りのキーボード入力がサーバーに転送される。

と、いう事なので、折角実装したキーバインド設定機能も、デフォルト設定では、実質的に使われない格好になるのだが、例えば、作者の様に、MacにWindowsをインストールして使っている様な人の場合、このキーバインド設定機能は、それなりに有用な筈だ。

また、キーバインドを変更すれば、実際のWindowsキーだとか漢字キーなんかを押さなくても、サーバーにそれらを転送できる様に出来るので、キー入力のグローバルHookをやめても、サーバー操作が大幅に不自由になる事は無くなる訳だ。

その結果としては、Mirror-DTCクライアントをフルスクリーン表示している場合にも、仮想デスクトップ間の移動用ショートカットキーをローカル環境で使える様に出来るので、普通のWindows 10 PCを使っている人にしてみても、使い勝手は向上するかもしれない訳だ。

« サーバーの新機能は? | トップページ | 若干の不具合修正も »

トラックバック

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

この記事へのトラックバック一覧です: キーバインド設定機能も実装:

« サーバーの新機能は? | トップページ | 若干の不具合修正も »

2018年8月
      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 のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google