Partager via


Fonction WerReportHang (errorrep.h)

Lance le rapport « aucune réponse » dans la fenêtre spécifiée.

Syntaxe

HRESULT WerReportHang(
  [in]           HWND   hwndHungApp,
  [in, optional] PCWSTR pwzHungApplicationName
);

Paramètres

[in] hwndHungApp

Gérez la fenêtre qui ne répond pas.

[in, optional] pwzHungApplicationName

Nom de l’application qui ne répond pas à afficher dans l’interface utilisateur Hang Reporting. Le nom est limité à 128 caractères, y compris la terminaison NULL . Si la valeur est NULL, WER tente d’obtenir le nom à partir des ressources d’image cible. S’il ne peut pas obtenir le nom de l’image, le nom de l’image est utilisé.

Valeur retournée

Retourne S_OK si la fonction a pu lancer le rapport ou un code d’erreur en cas d’échec. Notez que S_OK ne signifie pas nécessairement que le rapport « aucune réponse » s’est terminé avec succès, mais seulement qu’il a été lancé.

Notes

Attention Les applications ne doivent pas utiliser cette API pour signaler aucune réponse à partir de fenêtres de niveau supérieur ; La détection et la création de rapports sans réponse sont disponibles pour toutes les fenêtres de niveau supérieur sur Windows XP et versions ultérieures par défaut. Vous devez uniquement utiliser cette fonction pour signaler aucune réponse à partir de fenêtres enfants. En règle générale, vous n’utilisez cette fonction que lorsque la fenêtre de niveau supérieur et ses fenêtres enfants appartiennent à différents processus et qu’une non-réponse est détectée dans une fenêtre enfant.
 
Cette fonction lance le rapport d’absence de réponse, qui met ensuite fin au processus qui a créé la fenêtre. L’appelant est chargé de déterminer quand une fenêtre enfant ne répond pas et doit inviter l’utilisateur à donner son consentement avant de signaler la non-réponse. Un moyen classique de détecter une fenêtre qui ne répond pas consiste à case activée qu’elle répond aux messages de fenêtre en temps opportun. Vous pouvez utiliser la fonction SendMessageTimeout pour détecter cette condition.

Cette fonction est asynchrone ; il n’attend pas la fin du rapport d’absence de réponse. Il n’existe aucun moyen d’annuler le rapport d’absence de réponse après son démarrage.

Si vous utilisez cette fonction, il est important que vous respectiez les exigences suivantes :

  • Assurez-vous que les fenêtres enfants sont créées par un processus distinct. Une fois le rapport d’absence de réponse terminé, le processus qui a créé la fenêtre s’arrête.
  • Fournissez des indices visuels dans la fenêtre enfant qu’elle ne répond pas ; Le rapport d’absence de réponse ne fait pas sombrer la fenêtre enfant, mais affiche uniquement la boîte de dialogue de création de rapports.
  • Vérifiez que l’utilisateur souhaite arrêter la fenêtre enfant qui ne répond pas avant d’appeler cette fonction.
  • Pour que l’interface utilisateur de rapport sans réponse s’affiche devant la fenêtre qui ne répond pas, l’application doit appeler la fonction AllowSetForegroundWindow (en passant ASFW_ANY pour l’identificateur de processus) à partir du processus de la fenêtre de niveau supérieur.

Spécifications

   
Client minimal pris en charge Windows Vista avec SP1 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête errorrep.h
Bibliothèque Faultrep.lib
DLL Faultrep.dll