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

MFC Discussion :

sendmessage()


Sujet :

MFC

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Par défaut sendmessage()
    salut a tous.
    Je voudrais en fait faire un programme qui me permet de me loguer sur ma session sans qu'on me demande mon nom et mot de passe a chaque fois.
    J'ai récupérer le handle de la fenetre sans probleme.
    Comment simuler l'envoie du nom et du login puis simuler le click sur OK?
    J'arrive juste à fermer cette fenetre pour le moment avec SendMessage et le message WM_CLOSE.
    Merci

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    regarde ce poste :
    http://www.developpez.net/forums/vie...hlight=message
    tu dois pouvoir appliquer le meme principe

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Par défaut
    merci je l avais deja trouvé mais ca ne marche pas.
    ca compile mais ca ecrit rien du tout.
    Ma fenetre de login dispose par defaut du focus sur le nom.
    En envoyant le caractere 'e' par exemple avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PostMessage(hwnd,WM_CHAR,'e',1);
    Ca devrait m'afficher la lettre sur le nom mais ca ne fais absolument rien.

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    mais est ce que tu es sur d'avoir le handle sur l'edit de la fenetre ?verifies avec spy tu fais afficher en hexa (%x ) ton handle de fenetre recuperer et avec spy tu verifies sur la fenetre que ça correspond.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Par défaut
    ca correspond forcement pcq je fait un test. Je cherche le titre avec findwindow et je recupere le titre. si le handle retourné est bon j'affiche le titre sur un messagebox. donc c ok.
    la preuve c ke le message WM_CLOSE ferme la fenetre.

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    non ce n'est pas une preuve ,
    tu fermes la fenetre parce que tu as le handle de fenetre principal mais le edit à l'interieur de la fenetre ou tu saisis c'est pas le meme regarde avec spy .

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Par défaut
    je connai pa spy++.
    voila mon code. Peut tu l essayer stp sur une fenetre bidon ke tu creer avec le Wizard par exemple. Tu la laisse comme elle est(bouton Ok et Cancel, elle s'appelle Dialogue par défaut.).
    Ce code ne marche meme pas pour le message VK_TAB ki est sensé simuler l appui de tab.
    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
    16
    17
    18
    19
    20
    #include "stdafx.h"
     
    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {
     
    char buf[100];
    char buf1[100];
     
     
    HWND h1=FindWindow(NULL,"Dialogue");
    GetWindowText(h1,buf1,100);
    HWND hAct=SetActiveWindow(h1);
    MessageBox(NULL,buf1,"titre",NULL);
    PostMessage(hAct,WM_CHAR,VK_TAB,1);
    return 0;
     
    }
    voila tout.
    Peut tu me dire ce ki ne va pas?

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    le code est correct tu recuperes le titre de la fenetre dialogue mais ou j'emets un doute ce handle pour moi ne correspond pas a un edit .
    c'est comme si tu prenais une appli boite de dialogue avec un edit dedans
    tu recuperes le titre de la boite mais tu envoies des msg claviers au handle de la boite et pas à l'edit a l'interieur de la boite ...
    spy++ est livre avec les utilitaires de visual .
    si tu l'a pas dis le moi ça fait 500K.


  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Par défaut
    si je l ai. Mais admettons ke j ai pas le bon handle comment le recuperer??
    tu saurais le faire???
    Merci bien

  10. #10
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    je ferais à la suite du handle de la fenetre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    HWND hwndEdit=GetWindow(hAct,// handle to original window
                              GW_HWNDNEXT // relationship ou eventuellement GW_CHILD
    );
    voir doc pour les autres descripteurs.
    et j'utiliserais GetClassName pour verifier la classe d'apartenance du handle trouver .


  11. #11
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    moi je voudrais savoir comment il fait pour lancer son programme sans lancer une cession au prealable ???

    tous les programmes dans "demarrer" se lance une fois qu'on est loggué

  12. #12
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    c'est vrai que vu l'heure etc j'ai pas pense à ce pb

  13. #13
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Par défaut
    ce n est pas une session mais un style d intranet.
    Cela dit je bloque toujours.

  14. #14
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    le sendmessage doit se faire sur l'edit et non sur la fenetre

  15. #15
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Par défaut
    oui d'accord mais comment faire aujuste???

  16. #16
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    recuperer le handle de l'edit

  17. #17
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut le code ci dessus permet apres avoir trouver la fenetre parent d'iterer sur les controles de cette fenetre .
    il affiche dans une boite de dlg le handle en hexa le texte du controle ainsi que sa classe permettant de verifier que l'on est bien en presence d'un edit window.
    un fois ça et que l'on sait ce que l'on cherche on peut envoyer des messages à l'edit.
    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 hWnd=::FindWindow(NULL,"Dialogue");
    	char szClassName[100],szText[50];
    	CString strMess;
    	bool bFirst=true;
    	while(hWnd)
    	{
    		if(bFirst)	hWnd = ::GetWindow(hWnd, GW_CHILD);
    		else		hWnd = ::GetWindow(hWnd, GW_HWNDNEXT);
    		bFirst=false;
    		::GetClassName(hWnd,szClassName,sizeof(szClassName));
    		if(hWnd) ::GetWindowText(hWnd,szText,sizeof(szText));
    		strMess.Format("hwnd:%x %s:%s",hWnd,szText,szClassName);
    		AfxMessageBox(strMess);
    	}

  18. #18
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Par défaut
    oui la drogue c est mal mais je demandais comment faire en fait.
    farscape tu es bien gentil mais je travaille sans MFC. C'est trop compliqué pour moi.
    merci

  19. #19
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut ,
    tu les a vus ou les mfc ?
    a part la cstring et afxmessagebox (pour faciliter l'ecriture ) pour afficher mes resultats tout le reste c'est des api 32 de base .
    on remplace:
    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 hWnd=::FindWindow(NULL,"Dialogue");
       char szClassName[100],szText[50];
       char szMess[80];
       bool bFirst=true;
       while(hWnd)
       {
          if(bFirst)   hWnd = ::GetWindow(hWnd, GW_CHILD);
          else      hWnd = ::GetWindow(hWnd, GW_HWNDNEXT);
          bFirst=false;
          ::GetClassName(hWnd,szClassName,sizeof(szClassName));
          if(hWnd) ::GetWindowText(hWnd,szText,sizeof(szText));
          sprintf(szMess,"hwnd:%x %s:%s",hWnd,szText,szClassName);
          MessageBox(NULL,szMess,"TRACE",MB_OK);
       }

  20. #20
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 101
    Par défaut
    1-pourquoi tu utilise l'opérateur de portée au fait pour une API???
    2-comment avec un projet API application fait tu pour ajouter des objets MFC. Ca ne compile pas.
    Dans ce cas précis que faut il inclure? G deja posé cette question mais g pa eu de réponse.
    merci
    a+

Discussions similaires

  1. [DELPHI6][API] SendMessage
    Par Desraux dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 07/06/2005, 11h32
  2. DLL et SendMessage
    Par LordBob dans le forum MFC
    Réponses: 5
    Dernier message: 12/05/2005, 18h35
  3. Simuler saisie clavier SendMessage et WM_KEYDOWN
    Par VoLc0m dans le forum Windows
    Réponses: 8
    Dernier message: 11/05/2005, 15h31
  4. Réponses: 19
    Dernier message: 10/05/2005, 10h44
  5. SendMessage bloquant l'exécution du programme
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 03/05/2003, 19h26

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