スクリーンセーバーを起動させ・・・ – プログラミング – Home

スクリーンセーバーを起動させ・・・
 
通知
すべてクリア

[解決済] スクリーンセーバーを起動させ・・・


T・E
 T・E
(@T・E)
ゲスト
結合: 18年前
投稿: 5
Topic starter  

環境 WinXP sp2 VC++6.0

こんにちわ。T・Eと申します。

現在、スクリーンセーバーを起動させるという、
プログラムを作成しています。

さらに、伝言板のようにテキストを指定したいと思っていますが、
どのように指定してよいか、わかりません。

どなたかご存知の方、お教えください。
よろしくお願いします。

ちなみに、セーバーの起動は、以下のように行なっています。

HWND hWnd = ::GetForegroundWindow();
::SendMessage( hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0L );


引用未解決
トピックタグ
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

>HWND hWnd = ::GetForegroundWindow();
>::SendMessage( hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0L );
これでうまくいかない理由はよくわかりませんが
こんなページありました。
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B403844


返信引用
T・E
 T・E
(@T・E)
ゲスト
結合: 18年前
投稿: 5
Topic starter  

subaruさん レスありがとうございます。

言葉足らずでした。申し訳ありません。

>HWND hWnd = ::GetForegroundWindow();
>::SendMessage( hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0L );
でスクリーンセーバーの起動はできています。

さらに、伝言板のようにテキストを指定し、
起動させたいと思っています。

この伝言板のテキストを変更させることは、
プログラム上からできないのでしょうか?


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>さらに、伝言板のようにテキストを指定し、
>起動させたいと思っています。
レジストリから指定できるかも。

Xpの場合

HKEY_CURRENT_USER\Control Panel\Screen Saver.Marquee

の Text の値がそれにあたります。


返信引用
T・E
 T・E
(@T・E)
ゲスト
結合: 18年前
投稿: 5
Topic starter  

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);
-------------------------------------------------------------

みなさん、ありがとうございました!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました