スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 今日は少し苦労した | トップページ | トリプルモニタへの配慮 »

更にもう一日の我慢

今は、Windows用AmuseGraphicsの開発フェーズなのだが、他ソフトの不具合対応も必要なので、中々、先に進まない。今日も、Win版Mirror-DTC Ver1.3.1の変更作業を行っていたのだが、ファイル転送機能の強化は他OS版並にはなったのだが、Win版では更に作業が必要だ。

現在、Mirror-DTCはWindows版以外にmacOS/Ubuntu版も存在していて、クライアントに限れば、Android版もあるのだが、それらの中で内部構造的に最も複雑なのはWindows版になる。

これは何故なのか、というと、Windows版のみ、通常のクライアント/サーバーに加えて、権限絡みの問題に対応するために、DTCServiceもあるからなのだが、DTCServiceをインストールした場合にも、サーバー機能自体は簡易サーバーと同じMCSrv.exeが実行している。

しかし、このMCSrv.exeは、他OS版とは違って、DTCServiceの設定用ダイアログとしても機能する様になっている。

また、管理者権限で起動するかユーザー権限で起動するかで、微妙に内部動作が変わる様にもしているのだが、これは、Windowsの場合、今時の認識とは少し異なるデスクトップを状況に応じて使い分けているからだ。

つまり、Windows版サーバーでは、UACダイアログなんかの別デスクトップ表示時にも、画面キャプチャーを行える様にデスクトップの自動切り替え機能を搭載しておく必要がある分、本来のサーバー機能についても、他OS版より複雑になる訳だ。

と、いう事で、Windows版では、あのUNIXライクな環境である所のUbuntuやmacOSにさえない複雑な権限制御やUACダイアログ等の別デスクトップ表示対応が必要になるので、今時の若い人なんかがWindows版Mirror-DTCサーバーの様なソフトをゼロから作るのは至難の業になる筈だ。

何故なら、これが大昔なら、まだ、Windowsというのは日曜プログラマーにとってもメジャーな環境だったので、上記の様な特殊事情に関する情報も、ネットを検索すれば簡単に手に入ったのだが、今時のプログラミングといえば、iOSだとかAndroidアプリ開発、という感じになっているので、上記の様な情報は手に入りづらくなっているからだ。

更に言えば、Windows向けのソフト開発についても、Win32APIなんてのは過去の遺物だから、マトモなソフトを作りたければ.Netを使え、みたいな事を言う人が殆どになったかもしれないのだが、.Netでは、Mirror-DTCサーバーの様なソフトを作る事は不可能な訳だ。

と、いう事で、Mirror-DTCサーバーというのは、特にWindows版については、複雑なソフトになる訳なのだが、他OS版と比べてWindows版がより複雑になっているもう一つの理由として、DTCServiceインストール時にはタスクバーにアイコンを表示している、というモノがある。

上記はDTCService Helperの事を指しているのだが、このHelperはタスクバーにアイコンを表示したり、接続情報を表示したりするのだが、実際の所としては、そんな機能よりも、より重要な機能を持たされている訳だ。

具体的には、DTCServiceインストール時にも、ファイル転送要求があった場合には、そのファイル選択ダイアログはログイン中のユーザー権限で動作させているのだが、Helperというのは、この権限を実現する為に存在させている訳だ。

つまり、DTCService実行時にも、サーバー機能はMCSrv.exeが受け持つのだが、この時のMCSrv.exeはUACダイアログにも対応させる必要があるので、システム権限で動作させている。

なので、このMCSrv.exeからファイル選択ダイアログを表示すると、デスクトップなんかはシステムのデスクトップになるので、ログイン中ユーザーのデスクトップからファイルを転送しようとしてファイル選択ダイアログでデスクトップを指定しても、そこには、ある筈のファイルが無かったりする訳だ。

と、言う様な問題を回避するために、DTCServiceでの動作時には、MCSrv.exeは、ログインユーザーの権限で行った方が良い処理については、Helperに依頼して処理させている。

なので、ファイル転送機能の強化については、他OS版では、クライアント/サーバーに対する対応のみで良かったのだが、Windows版については、前述のHelperに対しても対応が必要になる訳だ。

そして、Helperとサーバーは独自プロトコルで通信しているので、その通信系の見直しも必要になって来る。

と、いう事なので、Windows版のファイル転送機能の強化については、クライアント/簡易サーバーについては完了したのだが、DTCServiceでの動作時用にHelper関連の変更も必要になるので、作業完了までには、もう一日は我慢して作業する必要がある感じだ。

« 今日は少し苦労した | トップページ | トリプルモニタへの配慮 »

トラックバック

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

この記事へのトラックバック一覧です: 更にもう一日の我慢:

« 今日は少し苦労した | トップページ | トリプルモニタへの配慮 »

2018年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