私たちの環境は、dpiに対応していない、時代遅れですが絶対にミッションクリティカルなWin32アプリケーションを際立たせています。 800x600ディスプレイ用に最適化されています。現在、ほとんどのユーザーは、1280x1024から1680x1050の範囲のネイティブ解像度の17 "-20"ディスプレイを使用しています。ただし、このレガシーアプリケーションのテキストが小さすぎるため、これらのディスプレイは800x600で動作します。もちろん、これはOffice2007の画面にまったく収まらないことも意味します。
ほとんどのワークステーションはまだWindowsXPを実行していますが、一部はWindows 7を使用しており、今後さらに増える予定です。ユーザーの約3分の1がMSターミナルサービスを介してリモートでアプリを実行し、残りはローカルで実行しています。
ディスプレイのネイティブ解像度で最適に動作する他のアプリケーションに影響を与えることなく、1280x1024の画面全体に表示されるように、この特定のアプリケーションを約170%にスケーリングするために使用できる方法を知っている人はいますか? Mac OS Xでこれを行う方法は知っていますが、Windowsでこれを行う方法を見つけたことがありません。
もちろん、これは理想的にはグループポリシーを介してプッシュできるものです。そのようなものが存在する場合は、カスタムMSIパッケージを作成して、ある種のディスプレイ仮想化レイヤーを使用してレガシーアプリケーションを再展開することもできると思います。
あなたへの2つの提案:
Windows 7でローカルにアプリケーションを実行しているユーザーの場合、コンピューターにWindows XP Mode)をインストールし、そこにアプリケーションをインストールすることを検討してください。
ターミナルサービスからアプリケーションを実行しているユーザーの場合、W2K8 TSリモートアプリを使用してアプリケーションを公開するか、W2K3で2Xなどのサードパーティソフトウェアを使用して、ネイティブ解像度でアプリを公開することを検討してください。
何かが足し合わない。以前はどのようなモニターを使用していましたか?従来、古いCRTの「理想的な解像度」は100 dpi近くの解像度を維持していました。これは、ほとんどのデスクトップLCDがネイティブ解像度に使用するものでもあります。アプリを大幅に小さくするのではなく、大きなモニターで占めるデスクトップスペースを少なくするだけです。
さて、ユーザーが800x600で17インチまたは19インチのCRTを実行している場合、それは別の話です。
そうは言っても、Win 7の高dpiサポートを単純に使用してみましたか?私の理解では、高dpiをあまり認識していない古いアプリをスケーリングすることになるでしょう。完璧ではありませんが、非ネイティブ解像度でLCDを実行するよりも悪くなることはありません。
または、ユーザーの全体的なdpiが低いモニターを探すこともできます。 22 "1680x1050または19" 1280x1024モニターは、少しブーストします。
画面のDPI(フォントサイズ)の設定を大きくしたWindowsターミナルサーバーをセットアップし、そこにアプリケーションをインストールします。次に、ユーザーに(通常のDPI画面で)アプリをリモートで実行してもらいます。