T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« Mirror-DTCのβ1版を公開 | トップページ | トランスポーターは便利!? »

トランスポータの変更を開始

今は、Mirror-DTC Ver1.4.4の開発フェーズで、既にWindows/macOS用のβ1版を公開中だ。β1版の仕様は、クライアント/サーバーについては、正式版相当なのだが、トランスポータは、まだ、未更新なので、今日から更新を始めた。

トランスポーターの更新作業は、まず、転送中のウインドウを隠す機能がないmacOS版から始めている。

ウインドウを隠す機能がないのは、Windows / Ubuntu環境とは異なり、普通のAPIを使っていたのでは、そんな事が出来なかったからなのだが、色々と調査してみると、他ソフトのウインドウを移動させる事は可能だと判った。

具体的には、AppleScriptを使えば、ネイティブプログラムを組まなくても、ウインドウの移動は可能だと判ったので、今回、クライアントに転送中のウインドウについては、ウインドウを画面の端に移動して、邪魔にならなくする事で、隠す処理の代替処理にする事にした。

作者ソフト的には、AppleScriptはTiExtenderで使っていたりするので、ネイティブプログラムからAppleScriptを利用する方法は確立してあるのだが、より簡単に処理したければ、やはり、ネイティブAPIを使えるのが望ましい。

なので、今日は、まず、ネイティブAPIを使って、ウインドウを移動する方法はないものか、と、ネットで色々と検索してみていたのだが、その結果としては、アクセシビリティー関係のAPIを使えば、他ソフトのウインドウを移動させる事が可能である事が判った。

具体的には、デスクトップ上のウインドウを列挙し、そのウインドウを所有しているプロセスのIDを取得し、そのプロセスIDを使ってアクセシビリティーAPIを使える様にし、そのプロセスのウインドウの属性を変更する形で、ウインドウ移動が可能になる。

もっとも、macOSのウインドウはデスクトップ外に移動する事は出来なくて、移動させようとしても、デスクトップ内にウインドウの一部が残される分しか移動できない。

しかしまあ、画面の端に移動できれば、そのウインドウは邪魔にはならなくなるので、その機能を、Windows / Ubuntu版のウインドウを隠す機能の代替にしようとしているのだが、今日の時点で、テストしてみた所では、ウインドウ移動は上記のアクセシビリティーAPIで行えたので、後は、チャンと作り込むだけ、みたいな感じになっている。

ちなみに、トランスポーターに対するVer1.4.4のメインの更新内容としては、現行版だと、1モニターのPC環境をエミュレートしているのに対し、8モニターまでエミュレートできる様にする。

つまり、トランスポーターに接続するMirror-DTC クライアントでは、8ディスプレイを切り替えながら使える様になるので、今回、クライアントで拡張された最大モニタ数8を、実際のモニターを接続しなくても、ユーザー的には、利用可能になる、という事になる。

まあ、こんな機能が必要か? という気はしないでもないのだが、クライアントにディスプレイ8まで切り替えられる機能を搭載しておいて、殆どのユーザーは2モニターまでしか使った事すらない! なんてのは、許容される感じがしない訳だ。

なので、作者的には、そんなユーザーでも、8ディスプレイを切り替えながら利用できる環境として、今回、トランスポーターにマルチディスプレイをエミュレートできる機能を搭載する事にした訳だ。

実際の所、このエミュレーションの本質的な所は簡単に実装できるので、今日の時点で、マルチモニター環境を構築できる事はソースコードに手を入れながら確認できた。

なので、後は、この機能を使える格好に実装していくだけなのだが、その為には、GUIの変更なんかも必要になるので、変更には数日を要する事にはなりそうだ。

« Mirror-DTCのβ1版を公開 | トップページ | トランスポーターは便利!? »

2024年5月
      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