2021/02/05(金) [n年前の日記]
#1 [prog][windows] スクリーンセーバのラッパーを作れないものか
Windows用のスクリーンセーバを love2d 以外で作れないものか、最終的に1つのexeファイルにできて、コマンドラインオプションを取得することが可能なら、どうにかなるんじゃないか、などと考えながらググっていたけれど。
ふと、別途用意されたフルスクリーン表示用の exe ファイルを呼び出すことしかしない、スクリーンセーバのラッパーっぽいプログラムがあれば解決するのではないかなと思えてきて。
例えば…。
ふと、別途用意されたフルスクリーン表示用の exe ファイルを呼び出すことしかしない、スクリーンセーバのラッパーっぽいプログラムがあれば解決するのではないかなと思えてきて。
例えば…。
- hoge.scr と一緒に、hoge.ini も用意しておく。
- hoge.scr が実行されると hoge.ini を読み込む。
- hoge.ini には、フルスクリーン表示用、及び、設定ダイアログ表示用のプログラムのパスが書いてある。
- hoge.ini には、プレビューウインドウに表示する画像ファイルのパスも書いてある。
- hoge.scr は、/s が与えられたらフルスクリーン表示用プログラムを、/c が与えられたら設定ダイアログ表示用プログラムを呼ぶ。
- /p #### が与えられたら、#### が示すウインドウハンドルを使って画像を表示する。
◎ 似た発想のプログラムはあるっぽい。 :
ググっていたら、似たような発想のプログラムは既にあるっぽい。C# で書いてあるのかな。たぶん。
_131/screensaver-proxy: A windows screensaver proxy wrapper (to help you deploy everything as a screensaver)
git clone して、Visual Studio Community 2019 で ScreenSaver.sln を開いて、ビルドしてみた。ScreenSaver.exe と ScreenSaver.pdb ができた。.pdb はデバッグ情報ファイルらしいので、.exe さえあればいいのだろう…。
ScreenSaver.exe を lovessw.scr にリネームして、lovessw.ini を作成。必要な内容を記述。
しかし、C:\Windows\System32\ 以下に lovessw.scr と lovessw.ini をコピーしても、動かない…。スクリーンセーバ設定の選択リストには出てくるけれど、選んでもプレビューウインドウには何も表示されないし、プレビューボタンを押しても何も起動しない…。
.sln を眺めたら、Visual Studio 2010 で作られたっぽい。当時の環境じゃないと動作する exe を作れないのだろうか。よくわからん…。
_131/screensaver-proxy: A windows screensaver proxy wrapper (to help you deploy everything as a screensaver)
git clone して、Visual Studio Community 2019 で ScreenSaver.sln を開いて、ビルドしてみた。ScreenSaver.exe と ScreenSaver.pdb ができた。.pdb はデバッグ情報ファイルらしいので、.exe さえあればいいのだろう…。
ScreenSaver.exe を lovessw.scr にリネームして、lovessw.ini を作成。必要な内容を記述。
しかし、C:\Windows\System32\ 以下に lovessw.scr と lovessw.ini をコピーしても、動かない…。スクリーンセーバ設定の選択リストには出てくるけれど、選んでもプレビューウインドウには何も表示されないし、プレビューボタンを押しても何も起動しない…。
.sln を眺めたら、Visual Studio 2010 で作られたっぽい。当時の環境じゃないと動作する exe を作れないのだろうか。よくわからん…。
[ ツッコむ ]
以上、1 日分です。