Dans le cadre d'une application que je suis entrain de coder, j'aimerais que lorsque je clique sur un bouton de mon application, la fenêtre de Notepad ( ou Bloc notes ) se mette au premier Plan.
Mon programme va simuler le clavier et la souris sur cette fenêtre au premier plan. J'ai aussi lu quelque part que pour lancer des Keys.SendWait et simuler la souris on était pas obligé d'avoir la fenêtre au premier plan, il faudrait avoir le Handle de celle ci ( quelque chose dans le genre )
Si jamais on est obligé d'avoir la fenêtre au premier plan, j'aimerais savoir comment je veux faire donc que cette fenêtre soit au premier plan et ait toujours le focus.
[DllImport("USER32.DLL")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
private void button1_Click(object sender, EventArgs e)
{
// On cherche la fenêtre
IntPtr maFenetreHandle = FindWindow(null, "Nom de la fenêtre");
// Vérification de la présence de la fenêtre
if (maFenetreHandle == IntPtr.Zero)
{
MessageBox.Show("La fenetre n'est pas présente");
return;
}
// On la met au premier plan et active
SetForegroundWindow(maFenetreHandle);
// Nous pouvons simuler des keys par exemple
SendKeys.SendWait("Youuupi, j'ai réussi à mettre une fenetre au premier plan");
SendKeys.SendWait("{ENTER}");
SendKeys.SendWait("Et voilà que je simule du texte en plus !")
}
Mais pourquoi avait tu besoin de mettre une fenetre BlocNotes au premier plan ?
__________________________
Prière de ne pas oublier le magnifique tag (résolu) si votre sujet l'est !
Je ne cherchais pas à avoir la fenêtre Bloc Notes au premier plan mais une fenêtre quelconque. Mais il fallait que je donne la propriété "text" de la fenêtre cible.
C'est pour simuler des touches de clavier et des clicks de souris sur cette fenêtre en question !