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

Windows Discussion :

[API windows] Problème d'argument de type LPSTR


Sujet :

Windows

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [API windows] Problème d'argument de type LPSTR
    Bonjour,

    Je travaille sur un petit programme permettant de retourner les coordonnées d'une fenêtre dont le nom est passé en paramètre.

    Voici mon problème :

    Je tente de récupérer les arguments d'appel de mon programme grâce à LPWSTR GetCommandLineW() et LPWSTR* CommandLineToArgvW(LPCWSTR, int *).

    Je veux ensuite passer en 2eme argument de la fonction HWND WINAPI FindWindow(LPCTSTR, LPCTSTR) le second champ de cette LPWSTR* que je caste donc en LPSTR (donc (LPSTR)commande[1]).

    Le problème est qu'en appelant le programme il me renvoie ceci (il n'a pas trouvé la fenêtre nommée "Fenetre") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    C:\Users\Sabotaz\FindWindow>FindWindow.exe Fenetre
    Fenetre
    2000082261 -2 19851693 2000334401
    alors qu'en passant directement la chaine "Fenetre" à la fonction FindWindow() il me renvoie bien ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    C:\Users\Sabotaz\FindWindow>FindWindow.exe Fenetre
    Fenetre
    0 1366 22 728
    Voici la totalité de mon code :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    
    #include <windows.h>
    #include <stdio.h>
    
    int WINAPI WinMain (
                    HINSTANCE cetteInstance,
                    HINSTANCE precedenteInstance,
                    LPSTR lignesDeCommande,
                    int modeDAffichage
                )
    {
    
    HWND fenetre;
    WINDOWINFO infoFenetre;
    
    LPWSTR* commandes;
    int nbCommandes;
    
    LONG gauche, droit, haut, bas;
    
    commandes = CommandLineToArgvW(GetCommandLineW(), &nbCommandes);
    
    infoFenetre.cbSize = sizeof(WINDOWINFO);
    
    printf("%ws\n", commandes[1]);
    
    //fenetre = FindWindow(NULL, (LPSTR)commandes[1]);
    fenetre = FindWindow(NULL, "Fenetre");
    
    GetWindowInfo(fenetre, &infoFenetre);
    
    gauche = infoFenetre.rcClient.left;
    droit = infoFenetre.rcClient.right;
    haut = infoFenetre.rcClient.top;
    bas = infoFenetre.rcClient.bottom;
    
    printf("%i %i %i %i\n", gauche, droit, haut, bas);
    
    LocalFree(commandes);
    
    return 0;
    }

    Merci de votre aide, et en espérant avoir été assez clair,

    Sab.

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 671
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 671
    Points : 13 065
    Points
    13 065
    Par défaut
    FindWindowW si tu utilises des paramètres wideChar.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci, j'avais pensé à utiliser GetCommandLine() au lieu de GetCommandLineW(), mais comme CommandLineToArgv() n'existe pas je m'étais retrouvé bloqué là aussi.
    Merci encore,
    Sab

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Problème d'argument de type contrôle dans call
    Par Pomine dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/12/2009, 10h38
  2. [API windows.h] Problème de type sous Visual 2005
    Par Astraya dans le forum Windows
    Réponses: 3
    Dernier message: 17/07/2007, 23h14
  3. (API Windows) Problème d'affichage de boutons
    Par pioupiou74 dans le forum Windows
    Réponses: 4
    Dernier message: 29/06/2007, 15h52
  4. API windows : problème menu
    Par Gregbeacher dans le forum Windows
    Réponses: 4
    Dernier message: 13/06/2007, 16h35
  5. problème avec "API Windows en C"
    Par Vince-le-fou dans le forum Windows
    Réponses: 2
    Dernier message: 23/11/2005, 16h22

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