プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

スタートボタン文字列の取得/設定

2007年09月12日 16時40分17秒 | タスクバー関連

スタートボタンの文字列を取得設定するには次のようにします。(戻る)

  1. タスクバーのウインドウ・ハンドルを取得
  2. (1)よりButtonというクラス名のハンドルを取得
  3. WM_GETTEXTで取得、WM_SETTEXTで設定を行う

ウインドウ・ハンドルの取得はFindWindowEx()関数を使います。
スタートボタンの取得と設定はSendMessage()関数で行います。

プロトタイプ宣言

HWND FindWindow(
    LPCTSTR     lpClassName,        // ウインドウのクラス名
    LPCTSTR     lpTitleName         // ウインドウのタイトル名
);

HWND FindWindowEx(
    HWND        hwndParent,         // 親ウインドウのハンドル
    HWND        hwndChildAfter,     // 子ウインドウのハンドル
    LPCTSTR     lpClassName,        // ウインドウのクラス名
    LPCTSTR     lpTitleName         // ウインドウのタイトル名
);

LRESULT SendMessage(
    HWND        hWnd,               // ウインドウ・ハンドル
    UINT        uMsg,               // メッセージ定数
    WPARAM      wParam,             // メッセージの1つ目のパラメータ
    LPARAM      lParam              // メッセージの2つ目のパラメータ
);

サンプル

TCHAR   szBuff[ 1024 ];     // バッファ領域
int     nLength;            // 文字列の長さ
HWND    hTaskBar;           // タスクバー用
HWND    hStart;             // スタートボタン用

// タスクバーのウインドウ・ハンドルを取得
hTaskBar = FindWindow( TEXT("Shell_TrayWnd"), NULL );

// スタートボタンのウインドウ・ハンドルを取得
hStart = FindWindowEx( hTaskBar, NULL, TEXT("Button"), NULL );

// 文字列の取得
nLength = (int)SendMessage( hStart, WM_GETTEXT, (WPARAM)sizeof(szBuff), (LPARAM)szBuff );

// 文字列の設定
SendMessage( hStart, WM_SETTEXT, 0, (LPARAM)TEXT("これがタイトル文字列") );
  • タスクバーのウインドウ・ハンドルhTaskBarが取得できなければFindWindowEx()関数を使わないようにして下さい。
  • スタートボタンのウインドウ・ハンドルhStartが取得できなければSendMessage()関数を使わないようにして下さい。
  • 分かりやすくするためにエラー処理は記述していません。

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« スタートボタンの有効化/無効化 | トップ | ウインドウの有効化/無効化 »
最新の画像もっと見る

コメントを投稿

タスクバー関連」カテゴリの最新記事