Funzione SendMessageTimeoutA (winuser.h)
Invia il messaggio specificato a una o più finestre.
Sintassi
LRESULT SendMessageTimeoutA(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[in] UINT fuFlags,
[in] UINT uTimeout,
[out, optional] PDWORD_PTR lpdwResult
);
Parametri
[in] hWnd
Tipo: HWND
Handle nella finestra la cui procedura della finestra riceverà il messaggio.
Se questo parametro è HWND_BROADCAST ((HWND)0xffff), il messaggio viene inviato a tutte le finestre di primo livello nel sistema, incluse finestre disabilitate o invisibili. La funzione non restituisce fino a quando ogni finestra non è scaduta. Pertanto, il tempo di attesa totale può essere fino al valore di uTimeout moltiplicato per il numero di finestre di primo livello.
[in] Msg
Tipo: UINT
Messaggio da inviare.
Per elenchi dei messaggi forniti dal sistema, vedere Messaggi definiti dal sistema.
[in] wParam
Tipo: WPARAM
Eventuali informazioni specifiche del messaggio aggiuntive.
[in] lParam
Tipo: LPARAM
Eventuali informazioni specifiche del messaggio aggiuntive.
[in] fuFlags
Tipo: UINT
Comportamento di questa funzione. Questo parametro può essere uno o più dei valori seguenti.
[in] uTimeout
Tipo: UINT
Durata del periodo di timeout, in millisecondi. Se il messaggio è un messaggio di trasmissione, ogni finestra può usare il periodo di timeout completo. Ad esempio, se si specifica un periodo di timeout di cinque secondi e sono presenti tre finestre di primo livello che non riescono a elaborare il messaggio, è possibile avere fino a un ritardo di 15 secondi.
[out, optional] lpdwResult
Tipo: PDWORD_PTR
Risultato dell'elaborazione del messaggio. Il valore di questo parametro dipende dal messaggio specificato.
Valore restituito
Tipo: LRESULT
Se la funzione ha esito positivo, il valore restituito è diverso da zero. SendMessageTimeout non fornisce informazioni sul timeout delle singole finestre se viene usato HWND_BROADCAST .
Se la funzione ha esito negativo o timeout, il valore restituito è 0. Per informazioni dettagliate sull'errore, chiamare GetLastError. Se GetLastError restituisce ERROR_TIMEOUT, la funzione viene timeout.
Windows 2000: Se GetLastError restituisce 0, la funzione viene timeout.
Commenti
La funzione chiama la routine della finestra per la finestra specificata e, se la finestra specificata appartiene a un thread diverso, non restituisce fino a quando la routine della finestra non ha elaborato il messaggio o il periodo di timeout specificato è trascorso. Se la finestra che riceve il messaggio appartiene alla stessa coda del thread corrente, la procedura della finestra viene chiamata direttamente, il valore di timeout viene ignorato.
Questa funzione considera che un thread non risponde se non ha chiamato GetMessage o una funzione simile entro cinque secondi.
Il sistema esegue solo il marshalling per i messaggi di sistema (quelli inclusi nell'intervallo da 0 a (WM_USER-1)). Per inviare altri messaggi (quelli >= WM_USER) a un altro processo, è necessario eseguire il marshalling personalizzato.
Nota
L'intestazione winuser.h definisce SendMessageTimeout come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |
Set di API | ext-ms-win-ntuser-message-l1-1-0 (introdotto in Windows 8) |
Vedi anche
Informazioni concettuali
Riferimento
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per