begin process at 2012 02 14 12:49:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Système

 > 

Fichier & Disque

 > 

fichier en execution sur le poste de l'utilisateur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

fichier en execution sur le poste de l'utilisateur

mardi 1 avril 2008 à 09:36:12 | fichier en execution sur le poste de l'utilisateur

crawler009

Bonjour,

Voila je cherche une fonction qui me permettrai de savoir si un fichier est ouvert sur le poste où l'application tourne.
J'ai trouvé ca :

Function IsFileOpen(ByVal strFic As String) As Boolean
    Dim fic As Integer
    On Error Resume Next

    fic = FreeFile()
    Open strFic For Input Access Read Lock Read Write As fic

    If Err.Number = 0 Then
        IsFileOpen = False
        Close fic
    Else
        IsFileOpen = True
    End If
End Function



Mais le problème c'est que cette fonction renvoi Vrai également si le fichier est ouvert par un autre utilisateur.
auriez-vous une solution ?

Merci !

mardi 1 avril 2008 à 13:38:28 | Re : fichier en execution sur le poste de l'utilisateur

NHenry

Membre Club Administrateur CodeS-SourceS
Bonjour

C'est normal, si ta fonction ne parvient pas à ouvrir le fichier, elle te retourne True, donc si un autre utilisateur à ouvert le fichier, c'est la cas.

Nous captons le cockpit coupable qui a capoté
VB (6, .NET1&2), C++, C#.Net1
Mon site
mardi 1 avril 2008 à 14:31:03 | Re : fichier en execution sur le poste de l'utilisateur

crawler009

Ok merci.

Et y a t il un moyen de savoir si un fichier est ouvert sur son poste sans tester son ouverture ?
Mon application test des fichiers office (doc, xls, ppt) et egalement des pdf.
mardi 1 avril 2008 à 15:15:08 | Re : fichier en execution sur le poste de l'utilisateur

NHenry

Membre Club Administrateur CodeS-SourceS
Bonjour

En théorie c'est possible, mais il faut regarder les handles ouverts par les processus, mais là ça sort de mes capacité actuelles de codage en VB6.

Nous captons le cockpit coupable qui a capoté
VB (6, .NET1&2), C++, C#.Net1
Mon site
mercredi 2 avril 2008 à 08:14:38 | Re : fichier en execution sur le poste de l'utilisateur

crawler009

Réponse acceptée !

Bon j'ai trouvé une solution.

J'ai trouvé une fonction sur ce site qui me permet de récupéré le Handle d'un fichier en fonction de son nom. Cette fonction cherche parmis les noms des fenetres actives. Elle renvoi 0 si le nom est introuvable.

**********
Public Function HwndFenetre(ByVal Texte As String) As Long
   
    ' Recherche le handle de la première fenêtre contenant
    '   le Texte dans le titre
   
    Dim Titre As String, hWnd As Long, r As Long
   
    ' Handle du bureau
    hWnd = GetDesktopWindow()
    ' Cherche la première fenêtre lui appartenant
    hWnd = GetWindow(hWnd, GW_CHILD)
    Do While hWnd <> 0
        ' Récupère le nom de la fenêtre
        Titre = String(255, " ")
        r = GetWindowText(hWnd, Titre, 255)
        Titre = Left(Titre, r)
        ' Terminé si le nom correspond
        If UCase(Titre) Like UCase("*" & Texte & "*") Then
            HwndFenetre = hWnd
            Exit Do
        End If
        ' Sinon, cherche la fenêtre suivante
        hWnd = GetWindow(hWnd, GW_HWNDNEXT)
        DoEvents
    Loop
   
End Function
**************

En combinant les fonctions IsFileOpen et HwndFenetre, on peut determiner si oui ou non un fichier a été lancé par un autre utilisateur.



Cette discussion est classée dans : fichier, poste, utilisateur, fic, isfileopen


Répondre à ce message

Sujets en rapport avec ce message

Déploiement de fichier [ par couze2003 ] Bonjour,Pour le déploiement d'un projet , je dois faire un Cd qui doit êtrecapable de copier tout un répertoire du Cd vers le poste utilisateur et lan cryptage décryptage d'un mot de passe [ par faucheuse ] Bonjour tout le monde,Je me suis mis recemment aux macros sur excel, je connais donc quelques bases et me fournit en code sur internet(bien sur je ne Limite temps d'utilisation [ par Tchecky ] Bonjour a Tous,J ai un fichier excel partagé par bcp d'utilisateur et j aimerais limité le temps de présence sur ce fichier.Trop d'utilisateur oublie InvalidOperationException [ par lefrouze ] Bonjour, J'ai réalisé un programme via Visual Basic 2005 express sur un poste. Ce programme fonctionne très bien. J'ai transféré donc le dossier cont Execution de macro sous Excel 2003 [ par killy99 ] Bonjour,j'ai un souci pour exécuter une macro. Sur mon poste tout ce passe bien que ça soit sur des fichier enregistré sur serveur, sur c: ou sur clé connaitre le mode d'acces a un fichier excel. [ par xaeris ] Bonjour tout le monde. Je réalise un application en vba dans laquelle je voudrais séparer la partie utilisateur de la partie admin du fichier. Ce qu chaine de caractère [ par fabrice2205 ] Bonsoir,Dans un programme en vba j'ouvre un fichier excel choisie par l'utilisateur pour lire des infos dedans.J'affiche donc une fenetre parcourir po VB.Net Comment coder le "Poste de travail" [ par MagDix ] Bonjour à tous Je cherche un moyen de faire afficher, dans un ListBox, tout ce qui est contenu dans mon Poste de travail Mon code fonctionne


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales