スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« とりあえず、完成 | トップページ | 使い込み中 »

安全対策を強化したり

今は、Mirror-DTCの次バージョン用に、Mirror-DTC Transporterを開発しているのだが、完成したので、とりあえず、単体リリースの準備中だ。TransporterにはMirror-DTCの冠を被せてあるで、次バージョン以降では本体の配布パッケージに同梱する予定なのだが。

今日は、Readme.txtを書いたりしていたのだが、「使用方法」を書いていると、「- ご注意 -」、も、書いておきたくなった。なので、書いていたのだが、Transporterが異常終了すると、それなりに悲惨な状態になる。

具体的には、デスクトップ上には、存在はしているものの、見えない状態のまま取り残されたウインドウが存在する格好になる訳だ。

まあ、Transporterはそれほど複雑なソフトでもないので、作者が使っている分には、異常終了はしない筈なのだが、作者以外が使っていると、異常終了する場合もあるかもしれない。

つまり、一般向けに公開すると作者が想定しない様な環境で利用する人も出て来るので、そういった人が使った場合には、簡単に異常終了するケースも出て来るかもしれないので、異常終了した場合には、ウインドウは非表示状態のまま残るので注意する様に! みたいな話も、書いておいた訳だ。

もっとも、「非表示状態のまま残るので注意しろ! 」、と、だけしか書いておかないと、だったら、「そんな危険なソフトは使わないだけだ!」みたいな感じになるかもしれない。

なので、Readme.txtには、万が一、Transporterが動作中に異常終了した場合に、非表示状態になっているウインドウを再度表示させる方法なんかについても書いておいたのだが、Transporterがデスクトップ上のウインドウを非表示状態にする手法は二通りあって、その基本としているのは、ウインドウの拡張スタイルにレイヤード属性を追加して、そのウインドウを透明にする手法だ。

異常終了した場合の事を鑑みれば、より安全な手法としては、ウインドウの表示位置をデスクトップ外にしてしまう、という手法があって、実際、AG-デスクトップレコーダーのウインドウ録画では、ウインドウを隠す指定をされた場合には、この手法を使って隠している。

にも関わらず、Transporterでは、この手法は基本手法とはしなかったのだが、その理由は、Windows10でFirefoxのウインドウを隠すと、YouTubeなんかの動画再生画面は停止してしまうからだ。

つまり、Windows10では、何時の頃からか、どうせ見えていない領域の描画はやめてしまえ、みたいな感じで、表示領域外に描画されるウインドウの更新は行われなくなってしまった感じなので、表示領域内に表示しつつ、見えなくする為の手法として、そのウインドウを透明化する手法を採用する事にした訳だ。

もっとも、例えば、Visual Studioのウインドウは、上記の手法を使ってレイヤード化しようとしても失敗するし、Windows10上で、その同梱ブラウザである所のMicrosoft Edgeを、レイヤードウインドウ化して見えなくすると、何故か、デスクトップ上でのマウス操作、特に、その右クリックが正しく行えなくなったりもした。

と、いう事なので、Transporterでも、転送対象ウインドウをレイヤードウインドウにして透明化する手法ではなく、昔ながらの、ウインドウを移動させる手法で、ウインドウを非表示化している場合もある。

で、話を戻すと、転送対象ウインドウを非表示化した状態で、Transporterが異常終了すると、非表示化されたウインドウはそのままの状態にされるので、操作不可能な状態に陥ってしまう訳だ。

しかし、透明化されたウインドウというのは、見えないだけで、普通に存在し続けているので、再度、Transporterを起動して選択し、選択を解除すれば、表示状態に戻せる。

もっとも、ウインドウを非表示領域に移動する事で非表示状態にしていたウインドウに関しては、再度、Transporterで選択する事は可能なのだが、デスクトップ上の表示領域は非表示領域のままなので、Mirror-DTCクライアントでは表示できても、デスクトップには表示できない。

ただし、この様な場合には、タスクバーでウインドウのアイコンを右クリックし、表示されるポップアップメニューから「移動」を選択すれば、表示領域に移動できるので、再度表示する事は可能だ。

と、いう事なので、通常は、Transporterが動作中に異常終了しても、非表示状態になっていたウインドウは再度表示可能と出来るのだが、タスクバーでの操作が必要、というのは不便なので、その様な場合用に、Transporterに新たな機能を追加する事にした今日この頃だ。

« とりあえず、完成 | トップページ | 使い込み中 »

2019年9月
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          

広告

プライバシーポリシー

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

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

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

    ポリシーと規約 - Google