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 :

ShellExecute ne fonctionne pas


Sujet :

C++Builder

  1. #1
    Membre exp�riment�
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    219
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Andorre

    Informations forums :
    Inscription : Juin 2004
    Messages : 219
    Par d�faut ShellExecute ne fonctionne pas
    Bonjour

    J'ai un probl�me avec ShellExecute et c'est le suivant. Je dois contr�ler 2 app externes pour les positionner convenablement dans l'�cran. Pour le faire, j'appelle 2 fois a cette fonction (1 pour chaque application que je dois lancer).

    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
    21
     
    HWND __fastcall TStep3::EjecApp(AnsiString aFile, bool Wait)
    {
      bool Exit = false;
      int MSec = 0;
      HWND aHandle = 0;
      AnsiString aTitle = "";
     
      ShellExecute(this->Handle, "open", (TmpDir + aFile).c_str(), NULL, NULL, SW_NORMAL);
     
      if ( !Wait ) return aHandle;
     
      do {
        Sleep(200);
        MSec = MSec + 200;
        if (MSec >= 2000) Exit = true;
        aHandle = LocatedWindows(aTitle, aPartialTitle);
      } while ( (aHandle != 0) | Exit );
     
      return aHandle;
    }
    Bon, si Wait et false tout va bien, mais si est true ShellExecute ne fonctionne pas la deuxi�me fois. Le probl�me est dans la fonction LocatedWindows (cherche dans toutes les fen�tres du Desktop un titre pour localiser le handle n�cessaire de la fen�tre pour SetWindowPos) mais je n'arrive a voir pourquoi

    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
    21
    22
    23
    24
    25
    26
    27
     
    HWND __fastcall TStep3::LocatedWindows(AnsiString aTitle)
    {
      HWND nHwnd = 0;
      HWND nInitHwnd = 0;
      HWND nCurrWnd = 0;
      int nLength = 0;
      char * aTitulo = "";
     
      nHwnd = GetDesktopWindow();
      nInitHwnd = GetWindow( nHwnd, GW_CHILD );
      nCurrWnd = GetWindow( nInitHwnd, GW_HWNDFIRST );
      while ( nCurrWnd != 0 )
      {
        nLength = GetWindowTextLength(nCurrWnd);
        if (nLength > 0)
        {
          GetWindowText(nCurrWnd, aTitulo, 255);
          if ( UpperCase(aTitulo) == UpperCase(aTitle) )
            return nCurrWnd;
        }
     
        nCurrWnd = GetWindow( nCurrWnd, GW_HWNDNEXT );
      }
     
      return 0;
    }
    Quelqu'un peut m'aider?

    Merci en avance

  2. #2
    Membre �prouv�
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    190
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 190
    Par d�faut
    Bonjour,

    Tu n'as pas allou� d'espace m�moire pour ton buffer aTitulo.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #define ATITULO_MAX_LENGTH 256
     
    ...
     
    char aTitulo[ATITULO_MAX_LENGTH];
     
    ...
     
    GetWindowText(nCurrWnd, &aTitulo, ATITULO_MAX_LENGTH);
    Cordialement,

    Benjamin

  3. #3
    Membre exp�riment�
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    219
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Andorre

    Informations forums :
    Inscription : Juin 2004
    Messages : 219
    Par d�faut
    lol,

    Merci Grosbenji, c'est juste �a

    Merci encore

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

Discussions similaires

  1. R�ponses: 0
    Dernier message: 25/05/2012, 16h50
  2. ShellExecute ne fonctionne pas avec VLC
    Par Fenyx dans le forum VBA Access
    R�ponses: 7
    Dernier message: 23/06/2008, 13h03
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    R�ponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    R�ponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incr�mentant)
    Par tripper.dim dans le forum SQL
    R�ponses: 7
    Dernier message: 26/11/2002, 00h10

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