ARM64版の確認は完了
Ver1.4.5の「ユーティリティ」には、去年開発して単体で公開していたTiWebRemoteと今回新規開発したTiProcessAudioが追加される。
その他のソフトについては、基本的には、機能追加なんかはしない予定だったのだが、TiTrayExtenderについては、ちょっとした機能追加を行った。
その機能追加というのは、ランチャーに登録したソフトとカスタムメニュー項目への「スタートアップ」属性の追加だ。
この「スタートアップ」属性を指定しておくと、TiTrayExtenderの起動時に、それらのソフトを自動実行させる事が出来るのだが、似た様な機能としては、従来の「チェックメニュー」がある。
「チェックメニュー」として作成したメニュー項目を実行中にTiTrayExtenderを終了すると、次回起動時に、そのメニュー項目を自動実行させる事が出来るので、普通は、今回追加した様な、スタートアップ機能の代わりとして使えるのだが、試してみた所、TiWebRemoteでは上手く機能しなかった。
何故、機能しなかったのか、というを確認してみた所、「チェックメニュー」では、起動したソフトのプロセスの状態を監視し、そのプロセスが存在しなくなっていたら、自動的に、チェックを外す機能があったからだ。
つまり、そもそも、「チェックメニュー」というのは、例えば、メモ帳を起動し、要らなくなったら、メニュー項目を再度実行する事で、メモ帳を強制終了できる様な機能として開発していたので、起動したプロセスが存在しなくなったら、強制終了する必要もなければ、する事も出来ないので、起動したプロセスが、外部で終了させられた場合には、自動的にチェックを外す機能を入れていた訳だ。
問題は、TiWebRemoteは、手動で終了させていないにも関わらず、チェックメニューのチェックが外れてしまっていた事だったのだが、これには、正当な理由があった。
具体的には、TiWebRemoteは、例えば、管理者権限で動作する「タスクマネージャー」なんかが表示された環境でも、画面キャプチャーと操作を継続させるためには、管理者権限で起動する必要がある。
それだけであれば、別に、起動直後にプロセスが存在しなくなる事はないのだが、UACダイアログの表示と操作まで可能にするためには、その権限がある別ユーザーとして、TiWebRemoteを起動し直す必要がある訳だ。
なので、最初に管理者権限で起動されたTiWebRemoteは、そんな別ユーザーの権限を持たせたTiWebRemoteを起動する為に存在しているので、新しいTiWebRemoteを起動したら、自分自身は、プロセスを終了させている訳だ。
と、言う事で、TiWebRemoteを真面目に使いたければ、管理者権限で実行する必要があり、その場合には、起動直後に、起動したプロセスは消滅してしまうので、チェックメニューだと、上手く動作させる事が出来ない訳だ。
何故なら、次回のTiTrayExtenderの起動時に、TiWebRemoteを同時に起動させたい場合には、チェックメニューをチェック状態にしておかなければならないのだが、前述の様に、管理者権限で起動したTiWebRemoteは、チェックメニューのチェックが自動的に外れてしまうからだ。
なので、チェックメニューの様に、自動的に、自動起動フラグをリセットしてしまわない属性として、今回、「スタートアップ」を追加した訳だ。
この属性が指定されていれば、TiTrayExtenderの次回起動時に、自動起動する格好になるので、TiTrayExtenderだけ、「タスクスケジューラ」に登録しておけば、TiTrayExtenderに登録するソフトのスタートアップ状態は、TiTrayExtenderで手軽に変更できる様になる。
と、言う事で、TiTrayExtenderには、当初予定していなかった機能追加が入った今日この頃だ。
ちなみに、TiWebRemoteは、DTCServiceとは違って、Windowsサービスではないので、ユーザーがログインした後でしか動作しない。
なので、TiTrayExtenderの起動と同時に起動させたとしても、どの道、再起動後には利用できなくなるよなあ、と、思っていたのだが、やってみた所、普通に利用できた。
その前提条件として、TiTrayExtenderは「タスクスケジューラ」で、ユーザーのログオン時に自動起動する様にしてあって、権限的にも、最高権限に設定してある。
そして、TiWebRemoteについては、TiTrayExtenderに登録して、管理者権限とスタートアップの両方の属性をチェックしてある。
なので、作者的には、サインイン後のデスクトップ画面になって、初めて、TiWebRemoteは起動させるのかなあ、と、思っていたのだが、起動直後の認証画面から、TiWebRemoteによるリモート操作が可能になった。
つまり、Windows11の初期認証画面というのは、実は、ロック画面で、ユーザー一人しかいない場合には、サインインは自動的に行われているのかもしれない。
まだ、確認したのは、Snapdragon X Elite搭載のVivoBook S15のみなので、別のWindows11マシンだと、挙動は異なるのかもしれないのだが・・・

