J'ai développé une application qui génère des fichiers au format RTF, que
l'on peut ouvrir dans Word.
Mais si le fichier est ouvert dans Word, et que le programme essaye de le
regénérer, il plante, ne pouvant écrire dans un fichier déjà ouvert par une
autre application.
Existe t-il un moyen pour mon application de "savoir" si le fichier est
ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
(je programme en VC++ 6.0 & MFC)
--
N'oubliez pas de vérifier mon adresse si vous voulez me répondre !
-------------------------------------------------------------------
Existe t-il un moyen pour mon application de "savoir" si le fichier est ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
L'ancienne KB 172240 marche avec Word.
Bruno.Barral
-- N'oubliez pas de vérifier mon adresse si vous voulez me répondre ! ------------------------------------------------------------------- "Christian ASTOR" a écrit dans le message news: 3f9c2670$0$6982$
Bruno.Barral wrote:
> Existe t-il un moyen pour mon application de "savoir" si le fichier est > ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
L'ancienne KB 172240 marche avec Word.
Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
Merci !
--
N'oubliez pas de vérifier mon adresse si vous voulez me répondre !
-------------------------------------------------------------------
"Christian ASTOR" <castorix@club-internet.fr> a écrit dans le message news:
3f9c2670$0$6982$7a628cd7@news.club-internet.fr...
Bruno.Barral wrote:
> Existe t-il un moyen pour mon application de "savoir" si le fichier est
> ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
L'ancienne KB 172240 marche avec Word.
Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
-- N'oubliez pas de vérifier mon adresse si vous voulez me répondre ! ------------------------------------------------------------------- "Christian ASTOR" a écrit dans le message news: 3f9c2670$0$6982$
Bruno.Barral wrote:
> Existe t-il un moyen pour mon application de "savoir" si le fichier est > ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
L'ancienne KB 172240 marche avec Word.
Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
Merci !
FrekoDing
Dans le post bnj5li$2cs$, Bruno.Barral ***adoo.fr> ecrivait :
Bruno.Barral wrote:
Existe t-il un moyen pour mon application de "savoir" si le fichier est ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
L'ancienne KB 172240 marche avec Word.
Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
http://support.microsoft.com/?id=XXXXXX ou XXXXXX designe le numero de l'article donc ici http://support.microsoft.com/?id2240
Merci !
de rien ! @+
Dans le post bnj5li$2cs$1@news-reader2.wanadoo.fr,
Bruno.Barral <barral.b@wan***adoo.fr> ecrivait :
Bruno.Barral wrote:
Existe t-il un moyen pour mon application de "savoir" si le fichier
est ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
L'ancienne KB 172240 marche avec Word.
Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
http://support.microsoft.com/?id=XXXXXX ou XXXXXX designe le numero de
l'article
donc ici http://support.microsoft.com/?id2240
Dans le post bnj5li$2cs$, Bruno.Barral ***adoo.fr> ecrivait :
Bruno.Barral wrote:
Existe t-il un moyen pour mon application de "savoir" si le fichier est ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
L'ancienne KB 172240 marche avec Word.
Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
http://support.microsoft.com/?id=XXXXXX ou XXXXXX designe le numero de l'article donc ici http://support.microsoft.com/?id2240
Merci !
de rien ! @+
lo
"Bruno.Barral" a écrit
J'ai développé une application qui génère des fichiers au format RTF, que l'on peut ouvrir dans Word.
Mais si le fichier est ouvert dans Word, et que le programme essaye de le regénérer, il plante, ne pouvant écrire dans un fichier déjà ouvert par une autre application.
Existe t-il un moyen pour mon application de "savoir" si le fichier est ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
Essayer d'ouvrir le fichier avec CFile::shareExclusive comme flag.
CFile : Opens the file with exclusive mode, denying other processes both read and write access to the file. Construction fails if the file has been opened in any other mode for read or write access, even by the current process.
Donc si le fichier est déjà ouvert par word, vous ne devriez pas etre capable de l'ouvrir vous aussi. Dans ce cas, ne lancez pas le traitement.
Loic.
"Bruno.Barral" a écrit
J'ai développé une application qui génère des fichiers au format RTF, que
l'on peut ouvrir dans Word.
Mais si le fichier est ouvert dans Word, et que le programme essaye de le
regénérer, il plante, ne pouvant écrire dans un fichier déjà ouvert par une
autre application.
Existe t-il un moyen pour mon application de "savoir" si le fichier est
ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
Essayer d'ouvrir le fichier avec CFile::shareExclusive comme flag.
CFile : Opens the file with exclusive mode, denying other processes both read
and write access to the file. Construction fails if the file has been opened
in any other mode for read or write access, even by the current process.
Donc si le fichier est déjà ouvert par word, vous ne devriez pas etre capable
de l'ouvrir vous aussi. Dans ce cas, ne lancez pas le traitement.
J'ai développé une application qui génère des fichiers au format RTF, que l'on peut ouvrir dans Word.
Mais si le fichier est ouvert dans Word, et que le programme essaye de le regénérer, il plante, ne pouvant écrire dans un fichier déjà ouvert par une autre application.
Existe t-il un moyen pour mon application de "savoir" si le fichier est ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
Essayer d'ouvrir le fichier avec CFile::shareExclusive comme flag.
CFile : Opens the file with exclusive mode, denying other processes both read and write access to the file. Construction fails if the file has been opened in any other mode for read or write access, even by the current process.
Donc si le fichier est déjà ouvert par word, vous ne devriez pas etre capable de l'ouvrir vous aussi. Dans ce cas, ne lancez pas le traitement.
Loic.
Christian ASTOR
Bruno.Barral wrote:
L'ancienne KB 172240 marche avec Word.
Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
Celle-là, comme toutes les anciennes, a été supprimée. Elle est soit sur des sites mirror, soit sur les CD MSDN d'Octobre 2001 La fonction de la KB recopiée ci-dessous doit fonctionner lorsque le fichier est ouvert ds Word, car contrairement au Notepad par ex, Word ne fait pas de CloseHandle() juste après le ReadFile() (il crée juste la copie commençant par ~ et, là, fait un CloseHandle() sur la copie après le WriteFile())
// Attempt to open the file exclusively. theFile = _lopen(filename, OF_READ | OF_SHARE_EXCLUSIVE);
if (theFile == HFILE_ERROR) // Save last error... lastErr = GetLastError(); else // If the open was successful, close the file. _lclose(theFile);
// Return TRUE if there is a sharing-violation. return ((theFile == HFILE_ERROR) && (lastErr == ERROR_SHARING_VIOLATION)); }
Bruno.Barral wrote:
L'ancienne KB 172240 marche avec Word.
Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
Celle-là, comme toutes les anciennes, a été supprimée.
Elle est soit sur des sites mirror, soit sur les CD MSDN d'Octobre 2001
La fonction de la KB recopiée ci-dessous doit fonctionner lorsque le
fichier est ouvert ds Word, car contrairement au Notepad par ex, Word ne
fait pas de CloseHandle() juste après le ReadFile()
(il crée juste la copie commençant par ~ et, là, fait un CloseHandle()
sur la copie après le WriteFile())
Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
Celle-là, comme toutes les anciennes, a été supprimée. Elle est soit sur des sites mirror, soit sur les CD MSDN d'Octobre 2001 La fonction de la KB recopiée ci-dessous doit fonctionner lorsque le fichier est ouvert ds Word, car contrairement au Notepad par ex, Word ne fait pas de CloseHandle() juste après le ReadFile() (il crée juste la copie commençant par ~ et, là, fait un CloseHandle() sur la copie après le WriteFile())
// Attempt to open the file exclusively. theFile = _lopen(filename, OF_READ | OF_SHARE_EXCLUSIVE);
if (theFile == HFILE_ERROR) // Save last error... lastErr = GetLastError(); else // If the open was successful, close the file. _lclose(theFile);
// Return TRUE if there is a sharing-violation. return ((theFile == HFILE_ERROR) && (lastErr == ERROR_SHARING_VIOLATION)); }
Bruno.Barral
Merci. Où puis-je trouver la KB courante ?
-- N'oubliez pas de vérifier mon adresse si vous voulez me répondre ! ------------------------------------------------------------------- "Christian ASTOR" a écrit dans le message news: 3f9d7044$0$6972$
Bruno.Barral wrote:
>>L'ancienne KB 172240 marche avec Word.
> Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
Celle-là, comme toutes les anciennes, a été supprimée. Elle est soit sur des sites mirror, soit sur les CD MSDN d'Octobre 2001 La fonction de la KB recopiée ci-dessous doit fonctionner lorsque le fichier est ouvert ds Word, car contrairement au Notepad par ex, Word ne fait pas de CloseHandle() juste après le ReadFile() (il crée juste la copie commençant par ~ et, là, fait un CloseHandle() sur la copie après le WriteFile())
// Attempt to open the file exclusively. theFile = _lopen(filename, OF_READ | OF_SHARE_EXCLUSIVE);
if (theFile == HFILE_ERROR) // Save last error... lastErr = GetLastError(); else // If the open was successful, close the file. _lclose(theFile);
// Return TRUE if there is a sharing-violation. return ((theFile == HFILE_ERROR) && (lastErr == ERROR_SHARING_VIOLATION)); }
Merci.
Où puis-je trouver la KB courante ?
--
N'oubliez pas de vérifier mon adresse si vous voulez me répondre !
-------------------------------------------------------------------
"Christian ASTOR" <castorix@club-internet.fr> a écrit dans le message news:
3f9d7044$0$6972$7a628cd7@news.club-internet.fr...
Bruno.Barral wrote:
>>L'ancienne KB 172240 marche avec Word.
> Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
Celle-là, comme toutes les anciennes, a été supprimée.
Elle est soit sur des sites mirror, soit sur les CD MSDN d'Octobre 2001
La fonction de la KB recopiée ci-dessous doit fonctionner lorsque le
fichier est ouvert ds Word, car contrairement au Notepad par ex, Word ne
fait pas de CloseHandle() juste après le ReadFile()
(il crée juste la copie commençant par ~ et, là, fait un CloseHandle()
sur la copie après le WriteFile())
-- N'oubliez pas de vérifier mon adresse si vous voulez me répondre ! ------------------------------------------------------------------- "Christian ASTOR" a écrit dans le message news: 3f9d7044$0$6972$
Bruno.Barral wrote:
>>L'ancienne KB 172240 marche avec Word.
> Où puis-je trouver la KB (Knowledge Base si j'ai tout suivi ?) ?
Celle-là, comme toutes les anciennes, a été supprimée. Elle est soit sur des sites mirror, soit sur les CD MSDN d'Octobre 2001 La fonction de la KB recopiée ci-dessous doit fonctionner lorsque le fichier est ouvert ds Word, car contrairement au Notepad par ex, Word ne fait pas de CloseHandle() juste après le ReadFile() (il crée juste la copie commençant par ~ et, là, fait un CloseHandle() sur la copie après le WriteFile())
// Attempt to open the file exclusively. theFile = _lopen(filename, OF_READ | OF_SHARE_EXCLUSIVE);
if (theFile == HFILE_ERROR) // Save last error... lastErr = GetLastError(); else // If the open was successful, close the file. _lclose(theFile);
// Return TRUE if there is a sharing-violation. return ((theFile == HFILE_ERROR) && (lastErr == ERROR_SHARING_VIOLATION)); }
Bruno.Barral
"lo" a écrit dans le message news: bnjgvl$mhf$
"Bruno.Barral" a écrit > J'ai développé une application qui génère des fichiers au format RTF,
que
> l'on peut ouvrir dans Word. > > Mais si le fichier est ouvert dans Word, et que le programme essaye de
le
> regénérer, il plante, ne pouvant écrire dans un fichier déjà ouvert par
une
> autre application. > > Existe t-il un moyen pour mon application de "savoir" si le fichier est > ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
Essayer d'ouvrir le fichier avec CFile::shareExclusive comme flag.
CFile : Opens the file with exclusive mode, denying other processes both
read
and write access to the file. Construction fails if the file has been
opened
in any other mode for read or write access, even by the current process.
Donc si le fichier est déjà ouvert par word, vous ne devriez pas etre
capable
de l'ouvrir vous aussi. Dans ce cas, ne lancez pas le traitement.
Merci, cela fonctionne parfaitement !
"lo" <slowlo@caramail-et-spiritueux.com> a écrit dans le message news:
bnjgvl$mhf$1@s1.read.news.oleane.net...
"Bruno.Barral" a écrit
> J'ai développé une application qui génère des fichiers au format RTF,
que
> l'on peut ouvrir dans Word.
>
> Mais si le fichier est ouvert dans Word, et que le programme essaye de
le
> regénérer, il plante, ne pouvant écrire dans un fichier déjà ouvert par
une
> autre application.
>
> Existe t-il un moyen pour mon application de "savoir" si le fichier est
> ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
Essayer d'ouvrir le fichier avec CFile::shareExclusive comme flag.
CFile : Opens the file with exclusive mode, denying other processes both
read
and write access to the file. Construction fails if the file has been
opened
in any other mode for read or write access, even by the current process.
Donc si le fichier est déjà ouvert par word, vous ne devriez pas etre
capable
de l'ouvrir vous aussi. Dans ce cas, ne lancez pas le traitement.
"Bruno.Barral" a écrit > J'ai développé une application qui génère des fichiers au format RTF,
que
> l'on peut ouvrir dans Word. > > Mais si le fichier est ouvert dans Word, et que le programme essaye de
le
> regénérer, il plante, ne pouvant écrire dans un fichier déjà ouvert par
une
> autre application. > > Existe t-il un moyen pour mon application de "savoir" si le fichier est > ouvert dans Word par l'utilisateur, afin d'éviter le plantage ?
Essayer d'ouvrir le fichier avec CFile::shareExclusive comme flag.
CFile : Opens the file with exclusive mode, denying other processes both
read
and write access to the file. Construction fails if the file has been
opened
in any other mode for read or write access, even by the current process.
Donc si le fichier est déjà ouvert par word, vous ne devriez pas etre
capable
de l'ouvrir vous aussi. Dans ce cas, ne lancez pas le traitement.
Merci, cela fonctionne parfaitement !
AMcD
Bruno.Barral wrote:
Merci. Où puis-je trouver la KB courante ?
Je doute de tout comprendre, mais bon, si ce lien t'aide...