Brynhildr

KeroRemote

リモートデスクトップエンジニアのブログ。

リモートデスクトップ「Verethragna 0.10.0」リリース




待望のファイル転送機能の追加など。

Verethragna Download

まず、ご要望の多かったファイル転送機能を実装しました。クライアントモードですとウィンドウ、サーバーモードですとダイアログ(タスクトレイのアイコンを左クリック)に対してファイルをドラッグ&ドロップすると、クライアント側のウィンドウのタイトルに転送率(%)が表示されファイルが転送されます。ファイル転送中はFPSが10程度になります。受信したファイルは「verethragna.exe」のあるフォルダに「recv」フォルダが生成されその中に格納されます。

次に、ファイル転送機能の実装に伴いまして、通信ヘッダーのバージョンが上がったため、これまでのバージョンとの通信ができなくなりました。本バージョンをご利用される時は、サーバー側のVerethragnaに関してもバージョンアップをお願いいたします。

次に、サーバーモード及びクライアントモードのメニューに「Received Files」を追加しました。「recv」フォルダをエクスプローラーで開きます。ファイル転送機能により受信したファイルの一覧をご覧になるのにお役立てください。

次に、サーバーモードのマウス制御の処理方式を変更しました。動き的にはほぼ従来と変わりはないのですが、一部のゲーム等にて全く操作できなかったものがかろうじて操作できる感じになっております。

ちなみに、一部のゲームとは「Apex Legends」等のマウスの座標を中心に固定してそこから相対移動距離によってプレイヤーの視覚操作などを行うものになりますが、ゲームをプレイすることは前提しておらず、例えばゲームの動作確認であったりとか設定の確認などを目的としております。恐らくプレイできないこともないのですが、快適に操作を行うにはゲーム毎の細かな調整が必要になることや各ゲームのレギュレーションもあるでしょうからあまり深くまで踏み込まないスタンスでございますのでご了承くださいませ。逆に今回の修正にて動かなくなったアプリなどがある可能性がありますのでその際はご報告を頂ければ幸いです。

次に、クライアントモードで「Shift + Ctrl + Alt + F12」を押下することでマウス同期機能が有効になる機能を実装しました。上記のマウス制御の処理方法に関連するのですが、マウスカーソルの位置を中心に固定するゲームの場合、クライアント側にてマウスカーソルを移動させるとサーバー側ではマウスカーソルの位置が中心にあるにも関わらずクライアント側ではウィンドウからはみ出てしまうことから、あえてクライアント側のマウスカーソルの位置をサーバー側のマウスカーソルの位置に同期させる機能となります。つまりは、サーバー側のマウスカーソルの位置に合わせてクライアント側のマウスカーソルの位置も移動させるという逆リモート操作でございます。ちょっと何を言ってるか分からないのですが。処理が複雑で開発中にすぐサーバー側もクライアント側もマウスが動かせなくなり開発機を再起動させるという事態に何度も陥ったいわくつきの機能でございます。ですのでまだ不安なのですがもし不具合等がまだ残っていましたらご報告を頂ければと幸いです。あまり使わない機能かとは思いますが。

次に、クライアントモードにコマンドラインオプション「/mousesync」を追加しました。上記のマウス同期機能を起動時から有効にさせる機能です。こちらも「Shift + Ctrl + Alt + F12」にて有効無効を切り替えることができますのでアカン!と思ったら即座の無効にしてください。

次に、クライアントモードにコマンドラインオプション「/reboot」を追加しました。接続が完了時にサーバー側のVerethragnaを再起動させてから接続します。但しこちらはサーバー側のVerethragnaがWindowsサービスに登録されていることが前提となります。

次に、サーバーモードのメニューに「Remote Control」を追加しました。クライアントからの接続時に遠隔操作をされたくない時に有効にしてください。但し、現状ですとマウスカーソルの移動のみを拒否できる仕様です。マウスクリックやキーボード入力にまで範囲を広げるかは少し検討したいと考えておりますが恐らく範囲を広げることになると思いますので既知の不具合や修正漏れと言われても仕方ないと思っておりますが正直すみません今気づきました次で直します。

次に、サーバーモードのダイアログのメニューに「Quit」がありましたが削除しました。なぜここにあったかが謎なんですが不要と判断いたしました。メニューはダイアログからではなくタスクトレイのアイコンを右クリックでお願いできればと思っております。ちょっと検討の余地はあるかなとは思っておりますがとりあえずそーいった仕様に統一したいと考えております。

次に、クライアントモードのメニューの「FPS」の「15」を削除して「45」を追加しました。「10」があるので「15」は不要かもと思った次第です。逆に「30」と「60」の間に1つ欲しいと思いましたので「45」を追加した経緯です。

次に、サーバー側の解像度によって画面が真っ暗になる時がある不具合を修正しました。解像度情報が取得するまで待つ処理だったのですが永遠に来ない時があるバグでしたすみません。

次に、クライアントモードで一部のマウスカーソルがちらつく時がある不具合を修正しました。Desktop Duplication API(DDA)の影響でマウスカーソルが描画できていないタイミングが発生することが判明しました。

次に、クライアントモードの接続直後の安定性を向上しました。デフォルトでは接続時にクライアント側の解像度がサーバー側と一致もしくは小さかった時に、映像を1/4に縮小させているのですが、その際の判定をクライアント側のウィンドウサイズにより切り替えているのですが、そのウィンドウサイズが接続時においては不安定になっていることが分かりましたので安定化させました。そのウィンドウサイズはサーバー側の解像度で判定しているのでその影響でしたが単にチューニング不足でしたすみません。

次に、起動メニューにてサーバーモードで起動する際にポート番号を空白で起動した時にポート番号を0(ゼロ)番で待機しておりましたが、空白の時は既定値の2048番で待機するよう修正しました。

次に、「ip:」と「/servermode」を同時に指定した時はこれまではクライアントモードになっていましたがサーバーモードになるように修正しました。ここだけの話、ダイアログはデフォルトはクライアントモードですので「/clientomode」は削除しておりまして、従来は「ip:」を指定した時点でクライアントモードが内部的に確定してたのですがそこに「/servermode」を指定することはありえないと思いながらもダイアログにIPアドレスに値をセットしておきたいというケースもありえると思いましたのでこのような仕様にしてみました。

あと、細かな微調整とかしました。

今回は盛沢山でございます。


コメントはまだありません ... ( 管理人承認制 )





... 不具合報告の際は、アプリのバージョンやOS等の動作環境の記載を御願い致します。

表記されている会社名・製品名・システム名などは、各社の商標、または登録商標です。
当サイトはAmazon.co.jpアソシエイトプログラムに参加しています。
© 2010-2023 KANEKO