IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

FindWindow et ClassName


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Sant�

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Par d�faut FindWindow et ClassName
    Bonjour � tous,

    voil� mon probl�me: je voudrais stopper une application (d�velopp�e par mes soins) � l'aide d'une seconde application. Voici ce que j'ai cod�:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
            HWND hHandle = FindWindow("TApplication", NULL);
     
            DWORD dwTmp;
            if(hHandle == NULL)
            {
              dwTmp = GetLastError();
            }
     
            PostMessage(hHandle,	// handle of destination window
                        WM_CLOSE,	// message to post
                        0,	// first message parameter
                        0 	// second message parameter
            );
     
            return;
    D'apr�s ce que j'ai compris pour l'utilisation de la fonction FindWindow, il lui faut en premier param�tre, le nom de la classe, puis en second, un �ventuel param�tre du nom de la fen�tre (http://tcharles.developpez.com/simul/#handleprecis)

    J'ai donc regard� du c�t� de la fonction Application->ClassName du programme que je veux fermer, et il m'a retourn� la valeur TApplication.

    Le probl�me est que le soft qui me permet de fermer mon premier programme (avec le code ci-dessus) est �galement d�velopp� avec Builder, et donc, sa ClassName est aussi TApplication. Du coup, quand je le lance, il se ferme lui-m�me (logique...)

    Par contre, je n'ai pas eu la main sur le programme que je voulais fermer.

    Avez vous une id�e qui pourrait m'aider � retrouver le Handle de mon soft? Comment faire pour conna�tre le nom de la fen�tre? Et si celui-ci change au cours du d�roulement du programme?

    N'est-t'il pas possible de changer le nom du ClassName, et ainsi remplacer TApplication par un nom perso? (comme "Media Player 2" pour le m�dia player cf http://tcharles.developpez.com/simul/#handleprecis)

    Merci de vos conseils !

  2. #2
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par d�faut
    utilises un bat ou ouvre un cmd avec des parametres

    tskill titre_de_la_fenetre /A

    ++

  3. #3
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Salut schneed
    Regarde ce lien il y est decrit l'execution d'une commande DOS qui permet d'arreter un ordinateur distant d'un reseau local

  4. #4
    Membre confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Sant�

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Par d�faut
    Bonjour, et merci pour ce d�but de r�ponses !

    Pour l'utilisation de tskill, c'est vrai, c'est pas mal, je connaissais pas, et c'est efficace, mais est-ce que �a 'ferme' l'application, ou �a force l'arr�t brutalement? (en gros, est-ce que le destructeur sera appel� comme quand j'envoie le signal WM_CLOSE ?)

    Je vais essayer d'utiliser tskill avec ShellExecute, histoire de voir ce que cela donne.

    La finalit� du syst�mes est
    * d'arr�ter l'application principale
    * modifier quelques fichiers sp�cifiques / de config
    * red�marrer l'application principale

    le tout avec une belle image qui s'affiche durant ces op�ration

    Merci en attendant, et si vous avez des infos pour ce r�cup�rer le handle de la fen�tre du programme principal, je suis preneur !

  5. #5
    Membre confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Sant�

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Par d�faut
    Je viens de faire l'essai en mettant un point d'arr�t dans mon destructeur, et en 'tskillant' l'application, �a ne passe malheureusement pas par le destructeur, donc cette solution n'est pas viable: je ne lib�re pas mes ressource

  6. #6
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par d�faut
    Dans ton application principale tu peux faire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Application->Title = "UnNomFacilementReconnaissable";
    et dans ton appli secondaire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
      HWND myHandle = FindWindow("TApplication","UnNomFacilementReconnaissable");

  7. #7
    Membre confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Sant�

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Par d�faut
    Yeah! Merci Sat83

    En fait le probl�me que j'avais au d�but quand j'utilisais FindWindow, est que j'avais en second param�tre le nom de l'application
    et que �a ne fonctionnait pas du tout. C'est pour �a que je m'�tais rabbatu sur le nom de la classe. Effectivement, avec un bon titre, �a marche nickel !

    En avant pour la modif de mes applis

    Merci encore � vous

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Trouver un la handle d'une fen�tre cach�e sans FindWindow()
    Par Jean-Philippe Shields dans le forum Windows
    R�ponses: 3
    Dernier message: 24/02/2006, 12h08
  2. FindWindow(0, "Untitled - Notepad")
    Par devmat dans le forum MFC
    R�ponses: 3
    Dernier message: 11/01/2006, 18h32
  3. ClassName pour pointeur
    Par sony351 dans le forum C++Builder
    R�ponses: 7
    Dernier message: 10/08/2005, 09h43
  4. R�ponses: 15
    Dernier message: 17/01/2005, 17h08
  5. probleme FindWindow
    Par abignon dans le forum MFC
    R�ponses: 2
    Dernier message: 28/01/2004, 12h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo