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

Python Discussion :

Attribution automatique d'un programme pour l'ouverture d'un fichier


Sujet :

Python

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut Attribution automatique d'un programme pour l'ouverture d'un fichier
    Bonjour à tous,

    J'ai réalisé une application graphique qui permet à l'utilisateur de renseigner divers paramètres d'un projet, de sauvegarder ce projet et éventuellement de l'exporter.

    Actuellement les données du projets sont enregistrés dans une bdd. Lors de l'ouverture du programme, l'utilisateur choisi grâce à un combobox le projet qu'il souhaite rappeler et clique sur charger... la valeur du combobox étant dans ce cas une clé permettant d'interroger la bdd en question.
    Et ainsi de suite avec tous les nouveaux projets créés.

    Je souhaiterai apporter une petite modification à mon programme et plutôt que de stocker ces informations dans une bdd j'aimerai les stocker dans un fichier propre à chaque projet.

    Le rappel via l'interface graphique ne me pose aucun problème. Là où je pense bloquer (l'idée de cette modif ne fait émergée), c'est sur la possibilité d'ouvrir automatiquement un fichier choisi en double cliquant dessus... (comme un .doc par exemple où il n'est pas nécessaire d'ouvrir avant tout word pour lire ce fichier).

    Quelqu'un a t il déjà eu ce besoin et si oui peut-il me donner quelque piste.

    D'avance merci
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 99
    Points : 102
    Points
    102
    Par défaut
    Si j'ai bien compris ce que tu veux, je te proposerai d'utiliser startfile.

    Cela a la même utilité que le double-clique dans l'explorateur windows. Mais je ne sais pas trop comment cela ce comporte sur les autre plateformes.

  3. #3
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Salut

    Sous la plupart des systèmes (windows, gnome, kde...), il y a moyen d'associer un type de fichier à un programme.
    Un double click sur le fichier lance alors la commande "<programme> <chemin/vers/le/fichier>" (à mon avis, à confirmer...).

    Soit dit en passant, le système simple pour transformer une db en fichier, c'est... SQLite

  4. #4
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    merci à vous deux pour vos réponses.

    @ shadowsam
    Startfile est une commande python. Or le fichier sur lequel je double-cliquerai ne sera pas un script python, donc je vois pas bien comment faire... mais cela m'amène à une idée intéressante détaillée ci-dessous...

    @ Antoine_935
    Effectivement j'ai pensé à ça et c'est bien vers cette solution que je désire aller. Par contre je vois pas trop le rapport avec Sqlite... (sachant qu'en plus -mais tu ne pouvais pas le deviner-, je rencontre de gros souci pour créer le .exe de mon script lorsque celui-ci utilise sqlite. Une solution m'a été donnée sur ce forum, mais par manque de temps je n'ai pas pu la tester).

    Quoiqu'il en soit vos deux réponses mon conduit à cette réflexion:

    J'associe mon fichier à mon programme... (facile), celui-ci vas donc théoriquement lancer le programme... lors du lancement de celui-ci je vérifie par quel manière il a été ouvert (un dérivé de startfile doit exister pour un tel besoin)... si c'est par un fichier comportant l'extension choisi alors je lance la procédure d'importation du projet de manière traditionnelle.

    Et voili voila le tout est joué (en théorie). Me reste à tester tout ça.

    Merci à vous
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  5. #5
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Citation Envoyé par Jiyuu Voir le message
    Par contre je vois pas trop le rapport avec Sqlite...
    Si j'ai bien compris, tu as une base de données établie pour ce programme.
    Pour faire des fichiers, tu as sans doute pensé à la solution de sérialisation, ou autre technique.
    Si j'évoque SQLite, c'est parce qu'il a pour but d'embarquer une base de données dans un simple fichier. Ca en fait le gestionnaire idéal pour de tels fichiers

  6. #6
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Ok je comprends mieux ta remarque.

    Pour ma bdd j'utilise le module shelve intégré de base dans python. Il offre (presque) la même fonctionnalité que Sqlite... en tout cas pour moi il est actuellement largement suffisant.
    Il me permet dans un même fichier de stocker toutes les infos des différents projets créés dans un même fichier.

    Cependant ce que je souhaite aujourd'hui, c'est le contraire... Je veux créer un fichier par projet.

    La bdd n'est dans ce cas (il me semble) plus vraiment nécessaire.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  7. #7
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Bonjour

    Juste un petit up pour savoir si quelqu'un sait s'il existe un bout de code permettant de dire automatiquement à windows:
    * Ce type de fichier s'ouvre avec tel programme.

    Afin d'éviter de le faire manuellement.

    D'avance merci
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  8. #8
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir Jiyuu,

    Et utiliser _winreg.CreateKey ?
    A la limite faire un install pour ton programme qui modifie cela.
    Par contre l'open n'est pas au même endroit suivant qu'il s'agit d'Xp ou de Vista et tu vas devoir tester cela.

    @+
    Merci d'utiliser le forum pour les questions techniques.

  9. #9
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Je serais intéressé par ce genre de fonctionnalités donc une solution postée ici serait la bienvenue.

    Peut-on faire de même sous Linux et Mac O$ ?

  10. #10
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir,

    Que de gourmandise rambc :

    Avec la base de registre de Windows c'est facile (quoique comme je l'ai signaler cela change de xp à Vista (voir seven mais là je laisse la place aux pros)) mais pour ce qui est de la banquise ou de la pomme c'est tout autre chose.

    Sous tux cela est gérer par l'environnement (gnome, kde, etc...). A vrais dire c'est un file (type MIME). L'extension c'est 'pour les humains'.

    Pour les Mac il me semble que pour OS X l'extension existe, avant c'était des méta.

    Difficile a gérer tout cela...

    @+
    Merci d'utiliser le forum pour les questions techniques.

  11. #11
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par PauseKawa Voir le message
    Bonsoir Jiyuu,

    Et utiliser _winreg.CreateKey ?
    A la limite faire un install pour ton programme qui modifie cela.
    Par contre l'open n'est pas au même endroit suivant qu'il s'agit d'Xp ou de Vista et tu vas devoir tester cela.

    @+
    Je prévois effectivement de faire un instal du programme via InnoSetup ou Instal Creator. Pr contre je ne sais pas s'ils gèrent ceci.

    Pour _winreg.CreatKey, je ne connaissais pas. Je vais donc zieuter ça avec plaisir.

    Merci
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  12. #12
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Citation Envoyé par Jiyuu Voir le message
    Je prévois effectivement de faire un instal du programme via InnoSetup ou Instal Creator. Pr contre je ne sais pas s'ils gèrent ceci.
    A la limite il est possible de tester la clef de registre avec _winreg au premier lancement (sans doute possible en fin d'installation avec InnoSetup ou Instal Creator) et la créer si celle ci n'existe pas.
    Merci d'utiliser le forum pour les questions techniques.

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/01/2012, 20h28
  2. attribuer un programme pour l'ouverture d'un fichier
    Par Jiyuu dans le forum Scripts/Batch
    Réponses: 11
    Dernier message: 04/11/2009, 13h47
  3. Réponses: 1
    Dernier message: 04/09/2009, 21h01
  4. Réponses: 1
    Dernier message: 13/07/2007, 14h20
  5. syntaxe pour l'ouverture d'un fichier
    Par pepper18 dans le forum Langage
    Réponses: 6
    Dernier message: 14/06/2006, 14h34

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