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 :

GetOpenFileName et réseau local


Sujet :

Windows

  1. #1
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 002
    Billets dans le blog
    2
    Par défaut GetOpenFileName et réseau local
    Bonjour !

    Connaîtriez-vous une astuce pour forcer le dialogue Windows à directement commencer aux favoris réseau / voisinage réseau ou, mieux encore, à l'arborescence des ordinateurs proches ?

    Merci d'avance !
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  2. #2
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Peut être en lui donnant comme répertoire de début l'ID de ce que tu veux (reste à obtenir ce dernier ).
    Si c'est juste pour récupérer un répertoire (et non un fichier), y'a une autre boite qui permet de limiter l'arborescence au reseau.

  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 002
    Billets dans le blog
    2
    Par défaut
    Merci pour ta réponse !
    Citation Envoyé par Aurelien.Regat-Barrel
    Si c'est juste pour récupérer un répertoire (et non un fichier), y'a une autre boite qui permet de limiter l'arborescence au reseau.
    Dans comdlg32.dll ? Laquelle, svp ?
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  4. #4
    Expert confirmé

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

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    En fait c'est SHBrowseForFolder, que tu initialises avec CSIDL_NETWORK.
    Inspire toi de ça:
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    LPITEMIDLIST PidlBrowse(HWND hwnd, int nCSIDL, LPSTR pszDisplayName)
    {
        LPITEMIDLIST pidlRoot = NULL;
        LPITEMIDLIST pidlSelected = NULL;
        BROWSEINFO bi = {};
        LPMALLOC pMalloc = NULL;
    
        SHGetMalloc( &pMalloc );
    
        if ( nCSIDL )
        {
            SHGetFolderLocation( hwnd, nCSIDL, NULL, NULL, &pidlRoot );
        }
        else
        {
            pidlRoot = NULL;
        }
    
        bi.hwndOwner = hwnd;
        bi.pidlRoot = pidlRoot;
        bi.pszDisplayName = pszDisplayName;
        bi.lpszTitle = NULL; //"Choose a folder";
        bi.ulFlags = 0;
        bi.lpfn = NULL;
        bi.lParam = 0;
    
        pidlSelected = SHBrowseForFolder( &bi );
    
        if ( pidlRoot )
        {
            pMalloc->Free( pidlRoot );
        }
        pMalloc->Release();
        return pidlSelected;
    }
    
    void SHBrowseForFolder_Network( HWND hParent )
    { 
        CoInitialize( 0 );
    
        IMalloc * imalloc = 0;
        if ( FAILED( SHGetMalloc ( &imalloc ) ) )
        {
            return;
        }
    
        LPITEMIDLIST pidlNetwork = 0; 
        if ( SHGetSpecialFolderLocation(
            hParent,
            CSIDL_NETWORK,
            &pidlNetwork ) != S_OK )
        {
            imalloc->Release();
            return;
        }
    
        BROWSEINFO bi = { 0 };
        bi.lpszTitle = "MESSAGE PERSONNEL";
        bi.hwndOwner = hParent;
        bi.ulFlags =  BIF_BROWSEFORCOMPUTER | BIF_NEWDIALOGSTYLE | BIF_NONEWFOLDERBUTTON;
        bi.pidlRoot = pidlNetwork;
    
        LPITEMIDLIST pidl = SHBrowseForFolder( &bi );
        if ( pidl != 0 )
        {
            TCHAR path[ MAX_PATH ];
            if ( SHGetPathFromIDList( pidl, path ) )
            {
                MessageBox( hParent, path, "Résultat", 0 );
            }
    
            imalloc->Free( pidl );        
        }
        imalloc->Free( pidlNetwork );
        imalloc->Release();
    }
    J'ai pas trop testé, véridie quand même, regarde les flags possibles. En particulier SHGetPathFromIDList peut assez facilement échouer.

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 002
    Billets dans le blog
    2
    Par défaut
    Aurélien !
    Je vais tester la chose.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

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

Discussions similaires

  1. Configurer IB sur réseau local
    Par tintin22 dans le forum Installation
    Réponses: 4
    Dernier message: 05/05/2005, 01h00
  2. Activer/Desactiver une connexion au réseau local
    Par Yodagobah dans le forum MFC
    Réponses: 7
    Dernier message: 05/01/2005, 17h17
  3. Configurer un réseau local avec 3 pc Win xp
    Par stkam dans le forum Développement
    Réponses: 3
    Dernier message: 26/02/2004, 19h13
  4. Redimensionnement des Paquets IP sur un Réseau Local
    Par Bonoboo dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h40

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