2016年12月3日土曜日

[Windows] Visual C++で簡易スクリーンセーバーを作る方法

How to create simple screen saver

Windowsは一定時間キーボードやマウスを操作しないとスクリーンセーバーが起動し、モニターの焼き付きを防ぐ機能があります。
スクリーンセーバーは一定時間経過しないとを起動しないので、任意のタイミングでモニターへの信号を遮断する簡易的なスクリーンセーバーを作ってみました。


環境

  • Windows 10
  • Visual Studio 2015 Community
    ※Windows XPとVisual C++ 2008 Expressで作ったものをビルドし直しただけ


Visual Studio 2015にVisual C++ インストールオプションを追加する

Visual Studio 2015 は初期設定のままではVisual C++がインストールされませんでした。
Visual C ++ 2015用の共通ツールを追加インストールしました。
blog.fujiu.jp Visual C++で簡易スクリーンセーバーを作る


Win32 コンソール アプリケーションとしてプロジェクトを作る

プロジェクトはWin32 コンソール アプリケーションとして作ります。

アプリケーション設定は初期設定のまま進めます。


処理内容

プログラムが起動したらモニターへの信号を遮断し続けます。
モニター信号の信号はSendMessage関数を使います。
0.1秒くらいマウスを動かし続けるとモニター信号の遮断を停止しアプリが終了します。
標準ライブラリーだけでできました。
Releaseビルドしてできたexeファイルへのショートカットをタスクバーにピン留めすればワンクリックで省エネできます。

SendMessage関数を使っているところだけ記載します。

EcoMoni.cpp


全ソースはGitHubにプッシュしました。
https://github.com/mtk-f/EcoMoni/tree/master/EcoMoni


関連ブログ

Visual Studio Community 2015 をISOファイルからWindows10にインストールする方法
[Android] Xamarin でアプリを作ってみました
[Azure] クエリちゃんの動画投稿数をツイートするサービス をGitHubに公開するまで
ProTools First のwavファイルはPlaySound関数で再生できるか?
[C#] タスクトレイにバルーンチップを表示するアプリ
[ASP.NET] ポストバック処理で実行するJavaScriptを選ぶ方法
[ASP.NET] 動的に追加したイベントが動作しない
[ASP.NET] 動的に追加したラベルやテキストボックスが消える現象の対策

以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿