スクリーンセーバー(Screensaver) は、コンピュータのコンソールに長時間ユーザによる入力がなかったとき、ディスプレイを保護するために自動的にアニメーション等を表示させる機能である。OSやハードウェアに埋め込まれていたり、OSのユーティリティソフトウェア等として動作する。

## 概要

元々は、ディスプレイといえばCRT(ブラウン管)がほとんどであった時代で、CRTの焼き付きを防ぐためのユーティリティとして使用されていた。CRT時代の後期には改良が進んだため焼き付きが発生しにくくなり、次第にエンターテイメント的な要素が強くなった。液晶ディスプレイが主流となった現在でも使われることがあるが、本来の焼き付き防止としての役割はほぼ失われ、代わりに「アクセサリー」としてや、離席中に作業画面を他人から勝手に見られないようにする、というセキュリティ上の理由で使うことが多い。このセキュリティ対策としてのスクリーンセーバーの活用については後述する。

Windowsの場合は、コンピュータの使用状況にかかわらず、キーボード、マウスなどGUIの入力が一定時間無い場合に起動する。画面の変化は検知していないため時計ソフトや動画再生ソフト、ゲームなどが表示されていても、スクリーンセーバーは起動する。その場合に抑制したい場合はアプリケーション作成者が「SetThreadExecutionState」APIでスクリーンセーバーの起動を抑制する。WindowsでGUI入力と判断されていない入力デバイス(シリアルポートを読み取り、その値をアプリケーションレベルで読み出し、画面描画するなど)を使っていてもOSは入力していないと判断しスクリーンセーバーが起動する。

設定を変えることによりBOINCを利用した分散コンピューティングの参加やアンチウイルスソフトウェアを起動することができる。

## セキュリティ対策としての活用

スクリーンセーバーの多くは作業中の画面の上からフルスクリーンで再生される。これは本来、プログラム上の理由によるものである。Windowsの場合スクリーンセーバーはそれ自体で一つの独立した実行ファイルであり、実行時は、このプログラムをフルスクリーンで実行している(プレビューとして呼び出された場合は、指示された範囲内にアプリケーションが小さくスクリーンセーバーを表示する。)。このため、スクリーンセーバーで作業中の画面を覆い隠すことなく実行するには、スクリーンセーバーの背景に透かしを入れる必要があり、当時の技術では、プログラムとしてかなり難しくなってしまう。このため、スクリーンセーバーの多くは、作業中の画面を表示できず、覆い隠すことになる。もちろん、「概要」で前述した通り、本来の目的は、CRTの保護であるため、透過技術を用いたスクリーンセーバーも用意されている。だが、透過型のスクリーンセーバーの場合、作業中の画面もそのまま表示されてしまうため、プライバシーの保護というセキュリティー上の観点でスクリーンセーバーを利用する場合には、適さない。

こうしたプログラム上の理由により、多くのスクリーンセーバーでは作業中の画面を覆い隠すことになるのだが、この作業中の画面を覆い隠すことにより、作業者が離席したときに他人に作業中の画面が見られることを防ぐことができるというセキュリティー上の効果が見出されるようになった。OSメーカーも昨今のセキュリティー上の理由からスクリーンセーバーを利用することを認めたためなのか、ユーザが離れた隙に別のユーザが操作しようとしたときのために、パスワードを入力しないとスクリーンセーバーの動作を終了できないようにしたものもあり(あるいはOS自体の機能としてスクリーンセーバーからの復帰にパスワードを設定できる)、企業によっては、情報セキュリティ対策の一環として、使用を義務付けていることも多い。

## 利用の衰退

前述の通り液晶ディスプレイが主流となった現在では、スクリーンセーバーは本来の目的から離れた利用をされているケースが多くなってきており、主たる役目は終えつつある。また、通常の起動時と同様に電力を消費するスクリーンセーバーは、省電力志向も含め、徐々に廃れつつある。また、前述したプライバシーの保護というセキュリティー上の理由によるスクリーンセーバーの利用であったとしても、ディスプレイの消灯により目的を達成することができる。そのため、特にモダンなOSにおいてはディスプレイのスリープモードがサポートされているため、スクリーンセーバーに取って代わっている。例えばWindows 7では既定の設定においてはスクリーンセーバーが設定されず、ディスプレイの電源オフが設定されている。また、Linuxのデスクトップ環境であるGNOME 3 においても標準ではスクリーンセーバーが廃止され、黒画面によるブランクスクリーンに変更された。

日本マイクロソフトによる節電策の検証では、Windows 7においては、ブランクによるスクリーンセーバーが最も消費電力が少ないとしている。また、3D効果を利用したスクリーンセーバーなどは、CPUやグラフィックカードの消費電力を増加させる要因として推奨していない。

## Microsoft Windows

### 例

- 60 年代アメリカ.scr、サイエンス.scr ‐ 画面に渦巻きやブラックホール、ガラス球等が現れる(オプションで設定可)。
- フライング Windows.scr - Windowsロゴが大量に飛んでくる。
- ライン アート.scr - 複数の線分によるアニメーション。
- 宇宙飛行.scr - 宇宙飛行と言っても白い星に見立てたドットがフライング Windowsのように飛んでくるだけである。
- 3D 飛行物体 (OpenGL).scr - OpenGLを使用し、3Dポリゴンの物体やテクスチャが画面上を動くもの。Windows XPでは、表示される物体を「Windowsロゴ」に設定している場合、時々文字付きのロゴが現れる。
- 3D 迷路 (OpenGL).scr - OpenGLを使用し(実際はバグのためにハードウェアアクセラレーションが効かない)、ランダムに発生させた迷路内を移動する映像が流れる。ただし、ゴールまでの最適な経路を推測するなどはしておらず、進行方向の右側(あるいは左側)の壁に沿って進む(右手法又は左手法)という単純なアルゴリズムを使用している。そのため非常に方向オンチな動きで、簡単なルートでも横道にそれたりする。その動きから長く見ていると酔ってくる事がある。途中、謎の小動物とすれ違う事がある。回転岩に当たると天地が逆転し、動き方も右手法が左手法に、左手法が右手法になる。好きなテクスチャを選択可能(サンプルからもパソコン内のビットマップ画像からも選択できる)。アニメーションするテクスチャを使うと、かなりシステムに負担が掛かる。迷路の表示のON・OFFの設定もできる。

### セキュリティホール

Microsoft Windowsでは、スクリーンセーバーの拡張子は.scr (screen saver) だが、その中身は.exeと同じ実行ファイルである。つまり、スクリーンセーバーが起動するというのは、スクリーンセーバーに関連付けられた「スクリーンセーバー・プレイヤー」が実行されるのではなく、スクリーンセーバーそのものが実行されるということである。したがって、アプリケーションに可能なこと(ファイル削除、システムダウンなど)はスクリーンセーバーにも可能であり、コンピュータウイルスやワーム、トロイの木馬として悪用されることもある。

しかし、このことは周知されているとは言いがたい。ダウンロードしたりメールに添付されてきたりしたスクリーンセーバーに対しては、.exeファイルと同様に警戒すべきなのだが、あたかも動画ファイルを開くような気分で起動させるユーザーが意外にも多く問題視されている。

## Mac OS X

AppleのコンピュータOSのmacOSでも同様の機能が存在する。
Classic Mac OSにはスクリーンセーバが搭載されておらず、2001年のMac OS X 10.0から搭載された。
スクリーンセーバの拡張子は.saverである。

- Flurry
- Arabesque
- Shell
- 今日の一言
- Drift(ドリフト) - macOS Catalinaから追加された。
- ハロー - macOS Big Surから追加されたiMacシリーズ限定のスクリーンセーバ。macOS Montereyから全Macシリーズで利用可能となった。
- Monterey - macOS Montereyから追加されたスクリーンセーバ。
- Ventura - macOS Venturaから追加されたスクリーンセーバ。
- スローモーション - macOS Sonomaから搭載された壁紙をスクリーンセーバとして使用できる。

SonomaのスクリーンセーバはApple TVからの移植である。