Obtenir le handle de fenêtre en C #

J’ai la classe suivante déclarée:

public partial class MainWindow : Window 

Et je dois récupérer le handle de la fenêtre une fois que la fenêtre en a une. Comment puis-je faire cela et où dois-je mettre la fonction de requête?

Ce que j’ai essayé jusqu’à présent était:

 IntPtr hwnd = new WindowInteropHelper(this).Handle; 

Mais le handle que je récupère est 0, ce qui pourrait être parce qu’il a été planté dans OnInitialized – peut-être que la fenêtre n’est pas encore prête à ce stade. Et oui, il est connecté via WPF, merci de le signaler!

Merci

Dans la méthode OnInitialized le OnInitialized n’a pas encore été créé. Mais vous êtes sur la bonne voie. Si vous placez votre appel dans l’événement Loaded , le handle aura été créé et il devra renvoyer le handle correct.

Le premier endroit où vous pouvez obtenir le handle est OnSourceInitialized

  [DllImport("user32.dll", EntryPoint = "FindWindowEx")] public static extern int FindWindowEx(int hwndParent, int hwndEnfant, int lpClasse, ssortingng lpTitre); int hwnd = FindWindowEx(0, 0, 0, title);//where title is the windowtitle //verification of the window if (hwnd == 0) { throw new Exception("Window not found"); }