- Platform SDK+Visual C++6.0か、Visual Studio .NET(2002/2003のいずれでもいいはずです)。この中にあるwtsapi32.hが必要になります。libはダイナミックリンクをするのが普通だと思うので、なくてもかまいません。
- Windows 2000 Server/Windows XP/Windows Server 2003のいずれか。欲を言えば、すべてがあるといいです。コンソールセッションへの接続、簡易ユーザ切り替え(XPのみ)、アプリケーションモードとリモート管理モード(Serverのみ)など、判定が重要になる場合があります。
- あるとうれしいMetaFrame。基本的にTerminal Serviceで動作するマルチユーザープログラムはMetaFrame上で動作します。しかし、シームレスウィンドウや、コンテンツリダイレクトの機能を味わってしまうとTerminal Serviceには戻れません。アプリケーションを違和感なく使えることと、Terminal Serviceに比べて特に狭帯域における性能もよいので、ユーザなどに提案する場合はこちらがおすすめです。個人ではちょっと手が出にくい値段ですが。
Terminal Service対応プログラムを作るには(前準備編)
序文
会社では忘れた頃に「MetaFrame対応のプログラムってどうやって作るの?」と聞かれます。一言で「複数の人が同時にアクセスしているから、それを考えることと、Terminal Serviceで動いているかどうかの判定を行えばいいです」と言っているのですが、だれもこれでは理解してくれません(当たり前?)。
Windows 2000時代のものですが、MicrosoftのOptimizing Applications for Windows 2000 Terminal Services and Windows NT Server 4.0, Terminal Server EditionというページにTSAppDev.docというWordファイルがありますので、この中から解説します。
Windows Server 2003で変更になったところや、MetaFrame固有の話は適宜補足します。
必要環境