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 :

Probléme de code non portable


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 80
    Points : 63
    Points
    63
    Par défaut Probléme de code non portable
    Bonjour,
    j'ai crée une fonction qui renvoi le chemin d'un fichier pour l'enregistrer.
    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
    void SaveFile(char name[],const CHAR Filter[])
    {
    HWND cons;
    char buf[30]={'\0'};
    GetConsoleTitle(buf,30);  // c'est ici que se situe le probléme !
    if(buf[0]=='\0')
    {
    cons = FindWindow ("Type32_Main_Window",NULL); 
    }
    else
    cons = FindWindow (NULL,buf);
    
    OPENFILENAME opensavefile;
    CHAR szFile[MAX_PATH]={'\0'};
    
    ZeroMemory(&opensavefile, sizeof(OPENFILENAME));
    opensavefile.lStructSize = sizeof(OPENFILENAME);
    opensavefile.hwndOwner = cons;
    opensavefile.lpstrFile = szFile;
    opensavefile.nMaxFile = MAX_PATH;
    opensavefile.lpstrFilter =Filter;
    opensavefile.nFilterIndex = 1;
    opensavefile.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
    if (GetSaveFileName(&opensavefile)==TRUE)
    {
    int y=0;
    for(;szFile[y]!='\0';y++)
    {
            name[y]=szFile[y];
    }
    }
    Pour utiliser la fonction GetSaveFileName() il me faut l'Handle du programme qui l'utilise et il se trouve qui la seul solution pour la recupérer est d'effectuer GetConsleTitle() puis FindWindow().
    Cependant le fonction GetConsoleTitle() ne fonctionnne pas sur le poste ou je travaille mais je l'ai tester sur deux autre machine et elle fonctionne très bien !!! Cela vient-il de qq chose en paarticulier ?
    j'ai remarquer que quand j'ai selectionner la console, la fenètre d'enregistrement n'a pas le focus. Y a-t-il une option pour interdire l'accés a la console ?

    Merci

  2. #2
    mat.M
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GetConsoleTitle(buf,30);  // c'est ici que se situe le probléme !
    si je mets un point d'arret sur cette ligne , est-ce que buf est bien renseigné ?

    Pour utiliser la fonction GetSaveFileName() il me faut l'Handle du programme
    essayer en passant NULL pour le HWND ; voir le MSDN pour cela car selon l'OS c'est peut-étre différent

  3. #3
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    Depuis NT5 y'a GetConsoleWindow, sinon:
    http://support.microsoft.com/kb/124103/en-us
    mais à priori tu n'en n'as pas besoin. NULL devrait marcher.
    hwndOwner
    Handle to the window that owns the dialog box. This member can be any valid window handle, or it can be NULL if the dialog box has no owner

Discussions similaires

  1. Problème de code JSF non interprété
    Par tmanta7 dans le forum JSF
    Réponses: 1
    Dernier message: 15/11/2010, 13h41
  2. Réponses: 2
    Dernier message: 13/03/2009, 11h11
  3. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 11h00

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