Enumération et action sur une fenêtre windows [Résolu]

Signaler
Messages postés
15
Date d'inscription
lundi 16 juillet 2001
Statut
Membre
Dernière intervention
15 décembre 2019
-
Messages postés
15
Date d'inscription
lundi 16 juillet 2001
Statut
Membre
Dernière intervention
15 décembre 2019
-
Bonsoir,
Mon problème est simple mais pas facile à expliquer.
En interaction avec une autre application (un gestionnaire de base de données qui récupère les données présentes dans le presse papier pour les analyser et les classer) qui tourne en tâche de fond, une fenêtre Windows peut s'ouvrir en fonction des actions de mon programme (dupliquât dans la base de données, ...).
Cette fenêtre demande la confirmation d'une action par "oui" ou "non".

Ce que je voudrais, c'est vérifier si une fenêtre s'est ouverte, et dans ce cas, répondre "non" à la demande.

Il doit exister des classes de contrôle des fenêtres de Windows, mais je ne les connais pas et ne sais pas les utiliser.

Merci d'avance.

6 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Salut, essaye avec les fonctions Win32 FindWindow et SendMessage.
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
using System.Runtime.InteropServices;

public
class
Win32
{

// public const int WM_SYSCOMMAND = 0x0112;
// public const int SC_CLOSE = 0xF060;


[
DllImport(
"user32.dll")]

public
static
extern
int FindWindow(
string lpClassName,
string lpWindowName);
[
DllImport(
"user32.dll")]

public
static
extern
int SendMessage(
int hWnd,
uint Msg,
int wParam,
int lParam);
}


<HR>

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever /infomsg/auteurdetail.aspx?ID=13319/infomsg/auteurdetail.aspx?ID=13319/infomsg/auteurdetail.aspx?ID=13319/infomsg/auteurdetail.aspx?ID=13319/infomsg/auteurdetail.aspx?ID=13319
Messages postés
15
Date d'inscription
lundi 16 juillet 2001
Statut
Membre
Dernière intervention
15 décembre 2019

Merci, je regarde ça et te dis si j'y arrive.

Merci
Messages postés
15
Date d'inscription
lundi 16 juillet 2001
Statut
Membre
Dernière intervention
15 décembre 2019

Désolé, mais malgré plusieurs essais, et la documentation MSDN, je n'arrive pas à trouver la classe à utiliser ("using") en C# pour avoir accès à ces deux fonctions qui ont l'air de répondre à mon besoin.

Pourriez vous m'aider ?
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Salut, tu peux faire comme ceci :

public class Win32<?XML:NAMESPACE PREFIX = O />


{




// public const int WM_SYSCOMMAND = 0x0112;


// public const int SC_CLOSE = 0xF060;


[DllImport("user32.dll")]


public static extern int FindWindow(string lpClassName, string lpWindowName);


[DllImport("user32.dll")]


public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam);




}


<HR>

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever /infomsg/auteurdetail.aspx?ID=13319/infomsg/auteurdetail.aspx?ID=13319/infomsg/auteurdetail.aspx?ID=13319/infomsg/auteurdetail.aspx?ID=13319
Messages postés
15
Date d'inscription
lundi 16 juillet 2001
Statut
Membre
Dernière intervention
15 décembre 2019

Merci beaucoup à tous les deux :)

Avec toutes ces indications, je devrais y arriver :)