BroadcastSystemMessage 函式 (winuser.h)

傳送訊息給指定的收件者。 收件者可以是應用程式、可安裝驅動程式、網路驅動程式、系統層級設備磁碟機,或這些系統元件的任何組合。

若要在定義要求時接收其他資訊,請使用 BroadcastSystemMessageEx 函 式。

語法

long BroadcastSystemMessage(
  [in]                DWORD   flags,
  [in, out, optional] LPDWORD lpInfo,
  [in]                UINT    Msg,
  [in]                WPARAM  wParam,
  [in]                LPARAM  lParam
);

參數

[in] flags

類型: DWORD

廣播選項。 此參數可以是下列一或多個值。

意義
BSF_ALLOWSFW
0x00000080
可讓收件者在處理郵件時設定前景視窗。
BSF_FLUSHDISK
0x00000004
在每個收件者處理郵件之後排清磁片。
BSF_FORCEIFHUNG
0x00000020
即使逾時期間過了或其中一位收件者未回應,仍會繼續廣播訊息。
BSF_IGNORECURRENTTASK
0x00000002
不會將訊息傳送至屬於目前工作的視窗。 這可防止應用程式接收自己的訊息。
BSF_NOHANG
0x00000008
強制非回應應用程式逾時。如果其中一個收件者逾時,請勿繼續廣播郵件。
BSF_NOTIMEOUTIFNOTHUNG
0x00000040
只要收件者沒有回應,就會等候訊息的回應。 不會逾時。
BSF_POSTMESSAGE
0x00000010
張貼訊息。 請勿與 BSF_QUERY搭配使用。
BSF_QUERY
0x00000001
一次將郵件傳送給一位收件者,只有在目前的收件者傳回 TRUE時,才會傳送給後續收件者。
BSF_SENDNOTIFYMESSAGE
0x00000100
使用 SendNotifyMessage 函式傳送訊息。 請勿與 BSF_QUERY搭配使用。

[in, out, optional] lpInfo

類型: LPDWORD

包含和接收郵件收件者相關資訊之變數的指標。

當函式傳回時,此變數會收到這些值的組合,識別哪些收件者實際收到郵件。

如果此參數為 Null,函式會廣播至所有元件。

此參數可以是下列一或多個值。

意義
BSM_ALLCOMPONENTS
0x00000000
廣播至所有系統元件。
BSM_ALLDESKTOPS
0x00000010
廣播至所有桌面。 需要 SE_TCB_NAME 許可權。
BSM_APPLICATIONS
0x00000008
廣播至應用程式。

[in] Msg

類型: UINT

要傳送的訊息。

如需系統提供的訊息清單,請參閱 系統定義的訊息

[in] wParam

類型: WPARAM

其他特定訊息資訊。

[in] lParam

類型: LPARAM

其他特定訊息資訊。

傳回值

類型: long

如果函式成功,傳回值為正值。

如果函式無法廣播訊息,則傳回值為 –1。

如果 dwFlags 參數 BSF_QUERY ,而且至少有一個收件者 傳回BROADCAST_QUERY_DENY 對應郵件,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

如果未指定 BSF_QUERY ,函式會將指定的訊息傳送給所有要求的收件者,忽略這些收件者傳回的值。

系統只會針對範圍 0 中的系統訊息 (封送處理,以 (WM_USER-1) ) 。 若要傳送其他訊息 (這些 > = WM_USER) 至另一個進程,您必須執行自訂封送處理。

範例

如需範例,請參閱 終止進程

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 winuser.h (包含 Windows.h)
程式庫 User32.lib
Dll User32.dll

另請參閱

BroadcastSystemMessageEx

概念

訊息和訊息佇列

參考

SendNotifyMessage