環境 WinXP sp2 VC++6.0
こんにちわ。T・Eと申します。
現在、スクリーンセーバーを起動させるという、
プログラムを作成しています。
さらに、伝言板のようにテキストを指定したいと思っていますが、
どのように指定してよいか、わかりません。
どなたかご存知の方、お教えください。
よろしくお願いします。
ちなみに、セーバーの起動は、以下のように行なっています。
HWND hWnd = ::GetForegroundWindow();
::SendMessage( hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0L );
>HWND hWnd = ::GetForegroundWindow();
>::SendMessage( hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0L );
これでうまくいかない理由はよくわかりませんが
こんなページありました。
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B403844
subaruさん レスありがとうございます。
言葉足らずでした。申し訳ありません。
>HWND hWnd = ::GetForegroundWindow();
>::SendMessage( hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0L );
でスクリーンセーバーの起動はできています。
さらに、伝言板のようにテキストを指定し、
起動させたいと思っています。
この伝言板のテキストを変更させることは、
プログラム上からできないのでしょうか?
>さらに、伝言板のようにテキストを指定し、
>起動させたいと思っています。
レジストリから指定できるかも。
Xpの場合
HKEY_CURRENT_USER\Control Panel\Screen Saver.Marquee
の Text の値がそれにあたります。
Blueさん レスありがとうございます。
以下のような記述で変更できました。
(レジストリエディタで確認できました。)
-------------------------------------------------------------
HKEY hKey;
DWORD dwDisp;
char buf[] = 停止中;
RegCreateKeyEx(HKEY_CURRENT_USER,
_T(Control Panel\\Screen Saver.Marquee),
NULL,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hKey,
&dwDisp);
RegSetValueEx(hKey,_T(Text),
NULL,REG_SZ,(CONST BYTE*)buf,sizeof(buf)/sizeof(buf[0]));
RegCloseKey(HKEY_CURRENT_USER);
-------------------------------------------------------------
みなさん、ありがとうございました!