Ouvrir un fichier en lecture qui est déjà utilisé par un autre programme....

[Résolu]
Signaler
Messages postés
44
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
20 octobre 2005
-
Messages postés
44
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
20 octobre 2005
-
Salut tout le monde,

Voilà je chercher à ouvrir un fichir .doc alors que Word est l'utilise.
Je sais que c'est possible parce que j'ai un logiciel du type UltraEdit
(pspad) qui arrive à l'ouvrir, masi moi j'y arrive pas. J'ai besoin de
ça pour un TFileStream, et donc ça focntionne à partir du moment où le
fichier est fermé.

J'ai testé avec la fonction win32 CreateFile, mais soit ça marche pas, soit j'ai mi les mauvaises options.



HANDLE handle = CreateFile("c:\\temp\\doc4.doc",


GENERIC_READ,


FILE_SHARE_READ,


NULL,


NULL,


NULL,


NULL


);
Bon c'est en C++ sous builder, mais le problème ne vient pas de là....

Es ce que quelqu'un a une idée?

Merci

2 réponses

Messages postés
44
Date d'inscription
samedi 28 juin 2003
Statut
Membre
Dernière intervention
20 octobre 2005

Bon voilà c résolu, en fait il fallait rajouter FILE_SHARE_WRITE, maintenant ça marche. Merci pour tout.
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
Ouvrir un fichier requiert une autorisation (ok!) mais aussi une manière de l'ouvrir (ah!). Les ouvertures exclusives ont pour but de gérer cette manière. Ton pb est situé au niveau de FILE_SHARE_READ. Il faut que tu combines différentes valeurs avec un OR (voir aide). Pour savoir comment un fichier a été ouvert par une application, voir sysinternals.com. Mais il me semble qu'il un code source sur ce sujet assez récent ID>30000.

===========
Validez les réponses si ok...

ViewVite XP : HTML