今回は、Windows環境でスクリーンショットツール「WinShot」を使用する際に、デスクトップ全体のキャプチャが正しく撮れない問題とその解決方法について解説します。
特に、Windowsの表示スケール設定が100%以外に設定されている環境で発生する問題に対して、高DPI設定の変更による効果的な対応方法を詳しくご紹介します。
WinShotとは
WinShotは、Windows環境で広く利用されているフリーのスクリーンショット取得ツールです。軽量で動作が速く、デスクトップ全体やアクティブウィンドウ、指定範囲など、様々な形式でのキャプチャに対応しています。長年にわたり多くのユーザーに支持されてきた定番ツールですが、近年の高解像度ディスプレイ環境では、一部の問題が発生することがあります。
問題の症状
WinShotを使用してデスクトップ全体のキャプチャを実行した際、以下のような症状が発生することがあります。
- デスクトップ全体をキャプチャしたはずが、画面の一部しか撮影されない
- 実際の解像度よりも小さい画像サイズでキャプチャされる
- 画面の左上部分のみが切り取られた状態で保存される
- キャプチャした画像が期待した解像度(例:1920×1200)にならない
これらの症状は、特にWindowsの表示スケール設定を100%以外に設定している環境で顕著に現れます。例えば、表示スケールを150%に設定している場合、実際の画面解像度が1920×1200であるにもかかわらず、キャプチャされる画像サイズが想定よりも小さくなってしまうことがあります。
問題が発生する原因
この問題の根本的な原因は、WindowsのDPI(Dots Per Inch)スケーリング機能とWinShotの互換性にあります。
高DPIスケーリングとは
現代のWindows環境では、高解像度ディスプレイの普及に伴い、DPIスケーリング機能が標準的に使用されています。この機能は、高解像度ディスプレイ上で文字やアイコンが小さくなりすぎないよう、表示サイズを拡大する仕組みです。
Windowsの「ディスプレイ設定」で「テキスト、アプリ、その他の項目のサイズを変更する」という項目があり、ここで100%、125%、150%、175%などのスケール値を選択できます。多くのユーザーが、見やすさを向上させるために125%や150%といった拡大設定を利用しています。
WinShotとDPIスケーリングの不整合
WinShotは開発された時期が古く、高DPIスケーリングに対する完全な対応が実装されていません。そのため、Windowsが提供するDPIスケーリング情報をそのまま適用してしまい、以下のような動作が発生します。
具体例:150%スケール環境での動作
実際の物理解像度が1920×1200ピクセルのディスプレイで、Windowsの表示スケールを150%に設定している場合を考えてみましょう。
- Windows側は論理解像度として1280×800ピクセル(1920÷1.5×1200÷1.5)として画面を扱います
- WinShotがこの論理解像度情報を取得してキャプチャを実行します
- 結果として、実際の物理解像度である1920×1200ではなく、1280×800のサイズでキャプチャされてしまいます
このメカニズムにより、デスクトップ全体のキャプチャを実行したつもりが、実際には画面の一部(左上の約67%の領域)しか撮影されないという現象が発生するのです。
DPI仮想化の影響
Windowsには「DPI仮想化」という機能があり、高DPI非対応のアプリケーションに対して、自動的にスケーリングを適用します。しかし、この仕組みがWinShotのようなキャプチャツールには逆効果となり、正確な座標情報やサイズ情報の取得を妨げる要因となっています。
解決方法:高DPI設定の変更
この問題を解決するには、WinShot.exeの互換性設定で「高DPI設定の変更」を適用します。この設定により、WinShotがWindowsのDPIスケーリングの影響を受けず、物理解像度を正確に認識できるようになります。
設定手順
以下の手順で、WinShotの高DPI設定を変更します。
1. WinShot.exeのプロパティを開く
- WinShot.exeがインストールされているフォルダを開きます(通常はC:\Program Files (x86)\WinShotまたはC:\Program Files\WinShot)
- WinShot.exeファイルを右クリックし、コンテキストメニューから「プロパティ」を選択します
2. 互換性タブを開く
- プロパティウィンドウが表示されたら、上部のタブから「互換性」タブをクリックします
3. 高DPI設定の変更ボタンをクリック
- 互換性タブの下部に「高DPI設定の変更」というボタンがあります
- このボタンをクリックすると、「高DPIスケールの動作を上書きします」というウィンドウが表示されます
4. 高DPIスケーリングの上書き設定を有効化
- 「高DPIスケールの動作を上書きします」にチェックを入れます
- 「拡大縮小の実行元」のドロップダウンメニューが表示されます
- ドロップダウンメニューから「アプリケーション」を選択します
この設定により、WinShotはWindowsのDPIスケーリング設定を無視し、アプリケーション独自の動作でスクリーンショットを取得するようになります。
5. 設定を保存
- 「OK」ボタンをクリックして、高DPI設定の変更ウィンドウを閉じます
- 続いて、プロパティウィンドウの「OK」または「適用」ボタンをクリックして設定を保存します
設定後の動作確認
設定変更後、WinShotを再起動し、デスクトップ全体のキャプチャを実行してください。Windowsの表示スケールが150%に設定されている環境でも、物理解像度である1920×1200ピクセルで正確にキャプチャが取得できるようになります。
取得した画像ファイルのプロパティを確認し、解像度が期待通りになっているかを確認することをお勧めします。画像ファイルを右クリックして「プロパティ」を選択し、「詳細」タブで「幅」と「高さ」の値を確認できます。
設定変更による影響
この高DPI設定の変更は、WinShotの動作に以下のような影響を与えます。
正の影響
- デスクトップ全体のキャプチャが物理解像度で正確に取得できるようになります
- 表示スケール設定に関係なく、一貫した動作が期待できます
- キャプチャした画像の品質が向上します
留意点
- WinShotのウィンドウやメニュー表示が、表示スケール設定の影響を受けなくなるため、高DPI環境ではやや小さく表示される場合があります
- ただし、これはWinShotの操作画面のみの影響であり、キャプチャ機能そのものには問題ありません
- 設定後にWinShotの起動や動作に問題が発生した場合は、設定を元に戻すことで対応できます
その他の表示スケール環境での適用
この解決方法は、150%以外の表示スケール設定(125%、175%、200%など)でも有効です。高DPI環境でWinShotを使用する際の標準的な設定として推奨されます。
表示スケールを変更した場合でも、一度この設定を適用しておけば、継続して正確なキャプチャが可能です。複数のディスプレイ環境や、異なる解像度のモニターを使用している場合でも、この設定により安定した動作が期待できます。
まとめ
WinShotでデスクトップ全体のキャプチャが正しく撮れない問題は、Windowsの高DPIスケーリング機能との互換性問題が原因です。WinShot.exeの互換性設定で「高DPI設定の変更」を適用し、「拡大縮小の実行元」を「アプリケーション」に設定することで、この問題を解決できます。
この設定により、Windowsの表示スケールが150%などに設定されている環境でも、1920×1200といった物理解像度全体を正確にキャプチャできるようになります。高解像度ディスプレイが一般的になった現在、この設定はWinShotを快適に使用するための必須の対応と言えるでしょう。
設定手順は比較的簡単で、一度設定すれば継続して効果が得られますので、WinShotでキャプチャの問題が発生している方は、ぜひこの方法をお試しください。


コメント