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

VB.NET Discussion :

Trouver le fichier ouvert par un programme


Sujet :

VB.NET

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2019
    Messages : 144
    Par défaut Trouver le fichier ouvert par un programme
    Bonjour,

    Je sais lister les processus ouverts, pas de soucis.

    Mais en plus lorsque je vois une application Office (Word, Excel, Access), je souhaite savoir quel fichier est utilisé par cette application.

    Malgré toutes mes recherches dans la classe Processus ne n'ai pas trouver mon bonheur.

    Merci à ceux qui pourront m'aider.

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    C'est une source en c# mais tu peux le convertir en vbnet :

    https://code.msdn.microsoft.com/wind...4839f4#content

    PS : contenu du code à retravailler pour obtenir l'information souhaitée bien entendu.

    EDIT :

    Il y a ça aussi :

    https://stackoverflow.com/questions/...file-using-net



    A++

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    La version VB.net est là

    Le lien a été corrigé.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2019
    Messages : 144
    Par défaut
    Salut,

    Merci à tous, je vais éplucher cela, et le lien VB.net ne fonctionne pas.

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Phiphi41 Voir le message
    Salut,

    Merci à tous, je vais éplucher cela, et le lien VB.net ne fonctionne pas.
    Désolé. Je viens de le corriger. J'ai été obligé de remplacer ma souris avec fil, par une souris sans fil. Mais. avec Windows 10, ce n'est pas une sinécure. En fait, c'est une souris Click-and-pray. Comme au temps du Plug-and-Pray. (Avant le Plug-and-Play de Windows 95)

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2019
    Messages : 144
    Par défaut
    Merci,

    J'ai jeté un coup d'oeil avant de tester, je pense que cela ne va pas fonctionner pour tous les cas sauf Access.

    En effet un base Access n'est pas locked quand on l'utilise, on peut toujours l'ouvrir d'autre part.

    Mais je testerai.

    Merci à tous les deux.

  7. #7
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    J'ai regardé s'il y avait d'autres solutions et je suis tombé sur ce ci :

    https://social.msdn.microsoft.com/Fo...csharplanguage

    A voir, ça m'a l'air d'être une bonne alternative.

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2019
    Messages : 144
    Par défaut
    Salut,

    Le dernier lien a l'air prometteur, je vais essayer de me dépatouiller avec cela.

    Mon collègue qui est un spécialiste Access et .net a quitté le service pour un autre et donc j'ai un peu de mal, même s'il me donne de bon coups de mains quand il a un peu de temps.

  9. #9
    Invité
    Invité(e)
    Par défaut
    bonjour,
    je ne sais pas si c'est quelque chose comme ça que tu cherche
    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
      Sub Main()
            Dim MyProcess As String = "Word.Application" 'j'ai trouvé mon process word!
            Dim wrd As Object = GetObject(MyProcess)
            If wrd IsNot Nothing Then
                For i As Integer = 1 To wrd.documents.count
                    Debug.Print(wrd.documents(i).name)
                Next
            End If
        End Sub
        Friend Function GetObject(ByVal App As String) As Object
            Try
                ' log.Debug("Begin...")
                Return Marshal.GetActiveObject(App)
            Catch ex As Exception
                    Return Nothing
                    'Log.Error("", ex)
                Finally
                    ' log.Debug("End...")
                End Try
        End Function

  10. #10
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2019
    Messages : 144
    Par défaut
    Salut,

    C'est à peu prêt cela, je testerais la semaine prochaine car là j'ai un autre soucis.

    Je vous tiens au courant.

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2019
    Messages : 144
    Par défaut
    Bonjour

    Merci, mais cela ne fonctionne pas pour Access.

    Bon je laisse tomber pour l'instant, mais je laisse ouvert au cas où, car non Résolu.

  12. #12
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2019
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2019
    Messages : 144
    Par défaut
    Bonjour

    Bon, j'ai progressé avec le code suivant, le hic c'est que si j'ai 2 voir plus bases d'ouvertes, cela ne m'affiche que la première qui a été ouverte et pas les autres, alors que si j'ai par exemple 32 bases, j'ai 3 affichages mais avec le même nom à chaque fois, pas top top comme truc.

    Il parcourt bien tous les processus, mais pourquoi n'afficher que le même 3 fois ????

    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
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
     
            For Each p As Process In Process.GetProcesses
                If p.ProcessName = "msaccess" Then
                    Dim acc As Object = GetObject("Access.Application")
     
                    MessageBox.Show(acc.CurrentProject.FullName)
     
                End If
            Next
        End Sub
        Friend Function GetObject(ByVal App As String) As Object
            Try
                ' log.Debug("Begin...")
                Return Runtime.InteropServices.Marshal.GetActiveObject(App)
            Catch ex As Exception
                Return Nothing
                'Log.Error("", ex)
            Finally
                'Log.Debug("End...")
            End Try
        End Function

Discussions similaires

  1. Réponses: 8
    Dernier message: 10/05/2008, 20h10
  2. Tester si un fichier est déjà ouvert par un programme tiers
    Par E@gle_One dans le forum Entrée/Sortie
    Réponses: 16
    Dernier message: 17/04/2008, 12h33
  3. Récupe du chemin d'un fichier ouvert par openfiledialogue
    Par hiul dragonfel dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/12/2006, 17h12
  4. Réponses: 3
    Dernier message: 25/07/2006, 18h46
  5. Nombre maximum de fichiers ouverts par processus
    Par galinoo dans le forum Windows
    Réponses: 3
    Dernier message: 27/10/2004, 18h47

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