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 :

connaitre le chemin unc d'un fichier erreur 2250 avec WNetGetConnection


Sujet :

Windows

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Points : 1 041
    Points
    1 041
    Par défaut connaitre le chemin unc d'un fichier erreur 2250 avec WNetGetConnection
    bonjour,
    je souhaite connaitre le chemin unc d'un fichier pour cela j'ai utilisé la fonction WNetGetConnection.
    le problème est qu'elle me renvoie l'erreur 2250.
    j'ai fait un update de windows car il semblerait que c'était necessaire, mais ça ne fonctionne pas avez vous des idées ou une autre solution pour retrouver le chemin unicode.

    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Salut,

    en regardant dans le look-up de Microsoft, le code 2250 correspond à :

    This network connection does not exist.
    De plus, est-ce que ta problématique c'est bien la suivante :
    tu as un fichier toto.txt
    tu voudrais connaître le chemin complet à ce fichier, par exemple : C:\toto\toto.txt
    ?

    Karl.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Points : 1 041
    Points
    1 041
    Par défaut
    bonjour,
    je connait le chemin c:\toto.txt et je voudrais connaitre le chemin unc qui est sous la forme \\cb2\...\toto.txt demanière à pouvoir l'ouvrir de n'importe quel ordinitaur du réseau.

    merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Ok, je vois.
    Tu peux poster le bout de code où tu appelles la fonction ?

    Sur le site de Microsoft :

    Error Message:

    This network connection does not exist.

    Explanation:

    An application tried to delete or retrieve information about an established network connection (such as the user name used to establish the connection), but the network connection does not exist.

    User Action:

    Check the spelling of the connection name, and also make sure it is one that is currently connected.
    Donc question bête : as-tu bien vérifié le chemin que tu passes à la fonction ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Points : 1 041
    Points
    1 041
    Par défaut
    bonjour,
    le code que j'utilise est le meme que sur le site
    Option Compare Database


    Option Explicit
    Private Declare Sub PathStripPath Lib "shlwapi.dll" Alias "PathStripPathA" _
    (ByVal pszPath As String)
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
    "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

    Private Declare Function WNetGetConnection Lib "mpr.dll" _
    Alias "WNetGetConnectionA" _
    (ByVal lpszLocalName As String, _
    ByVal lpszRemoteName As String, _
    cbRemoteName As Long) As Long

    'Structure du fichier
    Private Type OPENFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
    End Type

    'Constantes
    Private Const OFN_READONLY = &H1
    Private Const OFN_OVERWRITEPROMPT = &H2
    Private Const OFN_HIDEREADONLY = &H4
    Private Const OFN_NOCHANGEDIR = &H8
    Private Const OFN_SHOWHELP = &H10
    Private Const OFN_ENABLEHOOK = &H20
    Private Const OFN_ENABLETEMPLATE = &H40
    Private Const OFN_ENABLETEMPLATEHANDLE = &H80
    Private Const OFN_NOVALIDATE = &H100
    Private Const OFN_ALLOWMULTISELECT = &H200
    Private Const OFN_EXTENSIONDIFFERENT = &H400
    Private Const OFN_PATHMUSTEXIST = &H800
    Private Const OFN_FILEMUSTEXIST = &H1000
    Private Const OFN_CREATEPROMPT = &H2000
    Private Const OFN_SHAREAWARE = &H4000
    Private Const OFN_NOREADONLYRETURN = &H8000
    Private Const OFN_NOTESTFILECREATE = &H10000

    Private Const OFN_SHAREFALLTHROUGH = 2
    Private Const OFN_SHARENOWARN = 1
    Private Const OFN_SHAREWARN = 0


    Public Function OuvrirUnFichier(Handle As Long, _
    Titre As String, _
    TypeRetour As Byte, _
    Optional TitreFiltre As String, _
    Optional TypeFichier As String, _
    Optional RepParDefaut As String, _
    Optional UNC As Boolean = False) As String
    'OuvrirUnFichier est la fonction a utiliser dans votre formulaire pour ouvrir _
    'la boîte de dialogue de sélection d'un fichier.
    'Explication des paramètres
    'Handle = le handle de la fenêtre (Me.Hwnd)
    'Titre = Titre de la boîte de dialogue
    'TypeRetour (Définit la valeur, de type String, renvoyée par la fonction)
    '1 = Chemin complet + Nom du fichier
    '2 = Nom fichier seulement
    'TitreFiltre = Titre du filtre
    'Exemple: Fichier Access
    'N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
    'TypeFichier = Extention du fichier (Sans le .)
    'Exemple: MDB
    'N'utilisez pas cet argument si vous ne voulez spécifier aucun filtre
    'RepParDefaut = Répertoire d'ouverture par defaut
    'Exemple: C:\windows\system32
    'Si vous laissé l'argument vide, par defaut il se place dans
    'le répertoire de votre application
    'UNC = Définit le chemin retourné
    'Vrai : Chemin UNC \\serveur\partage\dossier\fichier
    'Faux : Chemin local Disque\dossier\fichier
    Dim StructFile As OPENFILENAME
    Dim sFiltre As String

    'Construction du filtre en fonction des arguments spécifiés
    If Len(TitreFiltre) > 0 And Len(TypeFichier) > 0 Then
    sFiltre = TitreFiltre & " (" & TypeFichier & ")" & Chr$(0) & _
    "*." & TypeFichier & Chr$(0)
    End If
    sFiltre = sFiltre & "Tous (*.*)" & Chr$(0) & "*.*" & Chr$(0)


    'Configuration de la boîte de dialogue
    With StructFile
    .lStructSize = Len(StructFile) 'Initialisation de la grosseur de la structure
    .hwndOwner = Handle 'Identification du handle de la fenêtre
    .lpstrFilter = sFiltre 'Application du filtre
    .lpstrFile = String$(254, vbNullChar) 'Initialisation du fichier '0' x 254
    .nMaxFile = 254 'Taille maximale du fichier
    .lpstrFileTitle = String$(254, vbNullChar) 'Initialisation du nom du fichier '0' x 254
    .nMaxFileTitle = 254 'Taille maximale du nom du fichier
    .lpstrTitle = Titre 'Titre de la boîte de dialogue
    .flags = OFN_HIDEREADONLY 'Option de la boite de dialogue
    If ((IsNull(RepParDefaut)) Or (RepParDefaut = "")) Then
    RepParDefaut = Application.CurrentProject.Path
    PathStripPath (RepParDefaut)
    .lpstrInitialDir = Left(CurrentDb.Name, Len(CurrentDb.Name) - _
    Len(Mid$(RepParDefaut, 1, InStr(1, RepParDefaut, vbNullChar) - 1)))
    Else: .lpstrInitialDir = RepParDefaut
    End If
    End With

    If (GetOpenFileName(StructFile)) Then 'Si un fichier est sélectionné
    Select Case TypeRetour
    Case 1
    OuvrirUnFichier = Trim$(Left(StructFile.lpstrFile, _
    InStr(1, StructFile.lpstrFile, vbNullChar) - 1))
    If UNC Then OuvrirUnFichier = fnctGetUNCPath(OuvrirUnFichier)
    Case 2: OuvrirUnFichier = Trim$(Left(StructFile.lpstrFileTitle, _
    InStr(1, StructFile.lpstrFileTitle, vbNullChar) - 1))
    End Select
    End If

    End Function




    Private Function fnctGetUNCPath(ByVal PathName As String) As String
    Const MAX_UNC_LENGTH As Integer = 512
    Dim strUNCPath As String
    Dim strTempUNCName As String
    Dim lngReturnErrorCode As Long

    strTempUNCName = String(MAX_UNC_LENGTH, 0)
    lngReturnErrorCode = WNetGetConnection(Left(PathName, 2), strTempUNCName, MAX_UNC_LENGTH)

    If lngReturnErrorCode = 0 Then
    strTempUNCName = Trim(Left(strTempUNCName, InStr(strTempUNCName, vbNullChar) - 1))
    strUNCPath = strTempUNCName & Mid(PathName, 3)
    End If

    fnctGetUNCPath = strUNCPath
    End Function






    Sub essai()
    MsgBox OuvrirUnFichier(0, "Choisir un fichier", 1, , , , True)
    End Sub

    par contre tu peux le tester

    merci

Discussions similaires

  1. Connaitre le chemin absolu d'un fichier
    Par islyoung2 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 07/11/2012, 11h08
  2. Récupérer le chemin UNC d'un fichier
    Par Toutella dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 08/07/2010, 11h04
  3. Ouverture fichier - chemin UNC
    Par charlene44 dans le forum Applets
    Réponses: 17
    Dernier message: 21/06/2006, 13h46
  4. récupérer le chemin UNC d'un fichier
    Par charlene44 dans le forum Langage
    Réponses: 5
    Dernier message: 14/06/2006, 17h13
  5. ouvrir un fichier par chemin unc
    Par MrEddy dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 11/01/2006, 10h45

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