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

WinDev Discussion :

Ouverture de fichier


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 14
    Points
    14
    Par défaut Ouverture de fichier
    Salut tout le monde j'ai une préoccupation pour l'ouverture d'un fichier j'ai constaté qu'il y avait 2 option (LanceAppliAssocié et fouvre)
    Mon problème se trouve sur la fonction LanceAppliAssocié()
    Comment pourrais t-on fermé un fichier qui a été au préalable ouvert via la fonction LanceAppliAssocié() ?

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    lanceAppliAssociée et fOuvre sont très différents.
    Si tu as un fichiers xlsx, LanceAppliAssociée va ouvrir Excel, si tu as un fichier html, il va ouvrir Internet Explorer (... en principe, ça dépend de la config) En fait, lanceAppliAssociée se comporte exactement comme un double-Clic sur le fichier dans l'explorateur Windows.

    Alors que fOuvre ne va pas lancer une application tierce. fOuvre va te permettre de lire le fichier ligne à ligne. FOuvre est donc en principe réservé aux fichiers TXT.


    Pour fermer un fichier ouvert par LanceAppliAssociée, c'est galère. Si tu travailles avec un fichier TXT, pour le fermer, tu dois d'abord savoir avec quelle application il a été ouvert ( BlocNote NotePAd++ , etc etc ). Il doit y avoir un moyen d'aller chercher cette info dans les registres, mais c'est compliqué. Admettons que tu fasses l'impasse, et tu sais que c'est le BlocNote.
    Ensuite, il faut parcourir toutes les applications 'BlocNote' ouvertes. Je pense que le mot clé utile pour ça c'est Handle... En cherchant ce mot dans la doc Windev, tu vas arriver assez vite sur les fonctions qui tournent autour de ça.
    Puis s'il y a plusieurs instance de BlocNotes d'ouvertes, il faut repérer celle qui t'intéresse. Aucune idée pour ça. Enfin, il faut fermer l'application en question. Là encore, galère. Je ne connais pas la commande, mais je pense que ça se trouve. Ca ne va pas être une commande Windev à proprement parler, mais certainement un appel à une API. Et tu peux avoir encore d'autres problèmes à gérer. Si un fichier est ouvert par BlocNote, si l'utilisateur a fait 2 ou 3 modifications, et que tu cherches à fermer violemment cette instance de BlocNote, il va y avoir une boite de dialogue du type (Confirmer/Ignorer/abandonner) qui va s'ouvrir. Il faut donc que tu by-passes cette boite de dialogue.

    En toute logique, si tu as une commande LanceAppliAssociée dans ton programme, c'est que tu laisses la main à une application tierce, et donc, tu n'as aucune raison de fermer cette application.
    Il y a d'autre pistes... Mais pour développer plus, il faut que tu dises quel type de fichier tu veux ouvrir par LanceAppliAssociée (fichiers Excel, fichiers TXT , ??? ???)
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Bonjour,

    après LanceAppliAssociée, le programme par défaut prend le relais, pas d'instruction supplémentaire à mettre dans windev

    Maintenant ça dépend du verbe utilisé
    - si verbe non précisé, c'est généralement "open", et là le fichier est ouvert et affiché sur écran. c'est à vous de le fermer à travers son interface
    - si verbe précisé est "print", le fichier est ouvert, dirigé sur imprimante et fermé automatiquement.

    En matière d'instance, ça dépend du programme. Par exemple BlocNote permet multi-instance, d'autre pas, Adobe, Excel, Word
    En tout cas, vous pouvez vous en rendre compte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    LanceAppliAssociée(fRepExe()+"\Test1.txt","open")
    LanceAppliAssociée(fRepExe()+"\Test2.pdf","print")

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    lanceAppliAssociée et fOuvre sont très différents.
    Si tu as un fichiers xlsx, LanceAppliAssociée va ouvrir Excel, si tu as un fichier html, il va ouvrir Internet Explorer (... en principe, ça dépend de la config) En fait, lanceAppliAssociée se comporte exactement comme un double-Clic sur le fichier dans l'explorateur Windows.

    Alors que fOuvre ne va pas lancer une application tierce. fOuvre va te permettre de lire le fichier ligne à ligne. FOuvre est donc en principe réservé aux fichiers TXT.


    Pour fermer un fichier ouvert par LanceAppliAssociée, c'est galère. Si tu travailles avec un fichier TXT, pour le fermer, tu dois d'abord savoir avec quelle application il a été ouvert ( BlocNote NotePAd++ , etc etc ). Il doit y avoir un moyen d'aller chercher cette info dans les registres, mais c'est compliqué. Admettons que tu fasses l'impasse, et tu sais que c'est le BlocNote.
    Ensuite, il faut parcourir toutes les applications 'BlocNote' ouvertes. Je pense que le mot clé utile pour ça c'est Handle... En cherchant ce mot dans la doc Windev, tu vas arriver assez vite sur les fonctions qui tournent autour de ça.
    Puis s'il y a plusieurs instance de BlocNotes d'ouvertes, il faut repérer celle qui t'intéresse. Aucune idée pour ça. Enfin, il faut fermer l'application en question. Là encore, galère. Je ne connais pas la commande, mais je pense que ça se trouve. Ca ne va pas être une commande Windev à proprement parler, mais certainement un appel à une API. Et tu peux avoir encore d'autres problèmes à gérer. Si un fichier est ouvert par BlocNote, si l'utilisateur a fait 2 ou 3 modifications, et que tu cherches à fermer violemment cette instance de BlocNote, il va y avoir une boite de dialogue du type (Confirmer/Ignorer/abandonner) qui va s'ouvrir. Il faut donc que tu by-passes cette boite de dialogue.

    En toute logique, si tu as une commande LanceAppliAssociée dans ton programme, c'est que tu laisses la main à une application tierce, et donc, tu n'as aucune raison de fermer cette application.
    Il y a d'autre pistes... Mais pour développer plus, il faut que tu dises quel type de fichier tu veux ouvrir par LanceAppliAssociée (fichiers Excel, fichiers TXT , ??? ???)

    Tous les types de fichiers sont pris en compte surtout (Word, excel, powerpoint, publisher, texte)
    Je développe une application de gestion de documents (GED) et il y a une fonctionnalité qui consiste à accorder une permission à un utilisateur sur un document du coup il peut manipuler ce document comme il le veut mais cette permission est accordé pendant un délai de temps et quand le temps est imparti il doit fermer le document ouvert automatiquement mais avec un avertissement. Hors l'ouverture de fichier se fait avec lanceAppliassocié()

  5. #5
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Bonjour,

    J'ai beau essayé de décrypter votre message, mais je n'arrive pas à voir clair.
    Pour ne pas laisser le doute s'installer, le mieux serait de dire ce qui ne va pas dans la proposition qui vous a été faite, ou ressortir uniquement
    le paragraphe il y a d'autres pistes .... et là vous demander une aide du genre s'il vous plait ...
    Déjà, entre votre premier post et ce dernier, c'est pas la même chose.

    Et pourtant, vous n'êtes pas le dernier venu, vous connaissez bien la maison.
    votre demande, s'il y en a, semble bien à un bon de commande adressé à un fournisseur.
    Vous donnez l'impression qu'on est obligé de vous répondre.
    A mon avis, vous risquez de ne recevoir aucune réponse ...

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 174
    Points : 287
    Points
    287
    Par défaut
    Bonjour;

    Dans ton cas, ouvre les fichiers dans une fenêtre WinDev, on utilisant le champ ActiveX par exemple, comme ça tu peux la fermer automatiquement.

    Bon Dev

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par midou23175 Voir le message
    Bonjour,

    J'ai beau essayé de décrypter votre message, mais je n'arrive pas à voir clair.
    Pour ne pas laisser le doute s'installer, le mieux serait de dire ce qui ne va pas dans la proposition qui vous a été faite, ou ressortir uniquement
    le paragraphe il y a d'autres pistes .... et là vous demander une aide du genre s'il vous plait ...
    Déjà, entre votre premier post et ce dernier, c'est pas la même chose.

    Et pourtant, vous n'êtes pas le dernier venu, vous connaissez bien la maison.
    votre demande, s'il y en a, semble bien à un bon de commande adressé à un fournisseur.
    Vous donnez l'impression qu'on est obligé de vous répondre.
    A mon avis, vous risquez de ne recevoir aucune réponse ...
    Vous avez surement raison j'ai pas pour habitude de poster sur ce forum du coup il y a certaine règle qui m’échappe. Merci de m'avoir répondu, Je reformule ma question. Dans mon application j'ouvre un fichier quelconque avec la fonction LanceAppliAssocié() mais j'aimerais fermer ce fichier directement dans mon application il y a t-il un moyen de le faire ?? Si non il y a t-il un autre moyen???

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Je vois 2 pistes
    - la piste de Fouedusa : ne pas passer lar LanceAppliAssociee, mais ouvrir les fichiers dans des champs activeX.
    Mais j'ai peur que cette piste ne plaise pas aux utilisateurs.
    -Effectivement ouvrir les fichiers par LanceAppliAssociée. Et récupérer les n° de Handle des applications externes en question. Mais attention, ça va être très difficile. Perso, si un client me demandait cela, je dirais : j'explore, mais pas sûr d'aboutir.

    Et quand je vois que dans ton 1er message tu parlais de fOuvre() ... c'est que tu es loin d'avoir le niveau.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Je vois 2 pistes
    - la piste de Fouedusa : ne pas passer lar LanceAppliAssociee, mais ouvrir les fichiers dans des champs activeX.
    Mais j'ai peur que cette piste ne plaise pas aux utilisateurs.
    -Effectivement ouvrir les fichiers par LanceAppliAssociée. Et récupérer les n° de Handle des applications externes en question. Mais attention, ça va être très difficile. Perso, si un client me demandait cela, je dirais : j'explore, mais pas sûr d'aboutir.

    Et quand je vois que dans ton 1er message tu parlais de fOuvre() ... c'est que tu es loin d'avoir le niveau.

    Effectivement je n'ai jamais utilisé les n° de Handle et quand j'ai fait des recherches j'ai toute suite vue la complexité de cette option. Merci à tout ceux qui m'ont répondu. Et bon dev

Discussions similaires

  1. ouverture de fichier txt
    Par juguul dans le forum MFC
    Réponses: 11
    Dernier message: 18/12/2003, 09h44
  2. Ouverture de fichier en api
    Par Michaël dans le forum Windows
    Réponses: 9
    Dernier message: 10/12/2003, 16h47
  3. Ouverture de fichier
    Par Ricou.13 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/10/2003, 08h59
  4. Réponses: 2
    Dernier message: 26/02/2003, 15h18
  5. [VBA-E] Evenement ouverture de fichier
    Par gjeff dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/12/2002, 09h42

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