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

C++ Discussion :

Detecter la fermeture d'un fichier


Sujet :

C++

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 100
    Points : 89
    Points
    89
    Par défaut Detecter la fermeture d'un fichier
    Bonjour à tous,

    J'ai fais une application java qui me genère un fichier pdf temporaire et l'ouvre, pour l'ouvrir ci-dessous mon code en java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //destination: le chemin vers le repertoire temporaire
    Runtime.getRuntime().exec("explorer.exe "+destination+"monfichier.pdf" );
    ce que je souhaite faire est de proposer à l'utilisateur d'enregistrer le fichier au moment où il ferme le fichier, or en java ce n'est pas possible, il faut donc utiliser JNI pour utiliser un programme en C++ qui detecte la fermeture du fichier; auriez vous une idée (ou de la doc) de comment procèder pour detecter la fermeture de la fenêtre( je suis sous windows).

    Merci d'avance pour vos réponse.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    Tu ne peux pas attendre la fermeture de l'application ?
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    Runtime.getRuntime().exec("explorer.exe "+destination+"monfichier.pdf" ).waitFor();

    En C++, je ne vois pas beaucoup d'autres alternatives qui ne soient pas de la bidouille.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    Bonjour,

    J'ai déja essayé avec waitfor():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int k = Runtime.getRuntime().exec("explorer.exe "+destination+"monfichier.pdf").waitFor();
    en demandant à mon programme d'ouvrir une boite de dialogue lorsque k s'annule mais ça ne marche pas.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Faut regarder sous windows du côté de ShellExecuteEx :
    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
    #include "windows.h"
    int main()
    {
        SHELLEXECUTEINFO exeContext=SHELLEXECUTEINFO();
        exeContext.cbSize = sizeof(exeContext);
        exeContext.fMask = SEE_MASK_NOASYNC|SEE_MASK_NO_CONSOLE|SEE_MASK_NOCLOSEPROCESS ;
        exeContext.lpVerb="open";
        exeContext.lpFile="fichier.pdf";
        BOOL bResult = ShellExecuteEx(&exeContext);
        if((TRUE==bResult)&&(exeContext.hProcess!=INVALID_HANDLE_VALUE))
        {
            WaitForSingleObject(exeContext.hProcess,INFINITE);
        }
    	return 0;
    }
    Ou tu peux poser la question côté forum java pour savoir s'il existe une solution 100% java.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    Bonjour,

    Merci pour ta réponse, j'avait déja posé la question sur le forum java il y presque un mois et comme je n'ai pas eu de réponse, je me suis tourné vers C++, mais finalement j'ai réussi à trouver la solution avec waitFor() mais en changeant la commande d'ouverture de mon fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Process p =Runtime.getRuntime() .exec("cmd /c monfichier.pdf")
    p.waitFor();
    Mais je vais comme même tester la solution avec la JNI, et donc je vais utiliser ton programme.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/04/2006, 18h45
  2. La fonction à la fermeture d'un fichier est exécutée 2 fois...
    Par Pierre Fauconnier dans le forum Access
    Réponses: 4
    Dernier message: 27/04/2006, 14h14
  3. [SimpleXML] Fermeture d'un fichier XML
    Par FlyByck dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 12/01/2006, 15h10
  4. Réponses: 7
    Dernier message: 12/10/2005, 09h19
  5. Detecter la fermeture d'une fenetre MsDos
    Par Akta3d dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/07/2004, 16h53

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