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

Windows 7 Discussion :

[Programmation] Lancer une seule instance de mon programme.


Sujet :

Windows 7

  1. #1
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut [Programmation] Lancer une seule instance de mon programme.
    Salut les Windows,

    je voudrai d'abord dire que je suis un Linux geek et que je ne comprends pas grand chose a la programmation Windows.

    Mon problème est que quand je sélectionne plusieurs fichiers mp3 et que je les lances avec mon application

    et bien il y autant d'instance de mon programme que de mp3 sélectionné qui se lance sur Windows.

    --

    J'ai bien essayer de programmer mon programme afin qu'il ne soit qu'une unique instance mais dans ce cas

    j'ai autant de message d'erreur de Windows que de fichiers sélectionné - 1.

    ---

    En faisant des essaies j'ai mis mon application comme application par défaut pour les fichiers mp3 mais le comportement est le même.

    MAIS en nettoyant mon système Windows j'ai remarquer cette entrée dans le registre après mon essaie:

    Application pour l'ouverture inexistante "C:\Program Files (x86)\Micro Music Player\mmp.exe" "%1" HKCR\Applications\mmp.exe\shell\open
    Je suppose donc qu'il faut que je trouve le moyen de changer le "%1" en quelque chose comme "%F" pour autant que de fichiers sélectionner a la place de 1 seule,

    ce que cela semble représenter ?

    Et que j'arrive a l'introduire d'une façon ou d'une autre dans le registre, peut-être avec inno-setup ?

    Ou toute autre solution est la bienvenue.

    Merci pour vos réponses éclairé,

    Luke spywoker, le winaze.

    PS: Sinon j'aimerai aussi pouvoir m'introduire dans le menu contextuel de Windows afin que celui-ci dispose d'une option "ouvrir avec mon app", des fichiers ou un dossier cela m'est égale.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 694
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Il n'est pas possible d'automatiser cela au niveau OS.

    Pour limiter l'application à une seule instance, il faut passer par un mutex, tester son existence et le cas échéant, quitter.

    Ensuite, il faut prévoir le transfert du paramètre à la première instance, WM_COPYDATA par exemple.

    Le principe est donc :

    • contrôler si le mutex existe ;
    • oui
      • récupérer un handle sur la première instance ;
      • envoyer un WM_COPYDATA contenant le paramètre (le nom du fichier son) ;
      • quitter ;
    • non
      • créer le mutex ;
      • gérer son paramètre (le fichier son) ;
      • libérer le mutex ;
      • quitter.

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Quant au "%1", ça ne signifie en rien "un seul fichier", c'est juste un indicateur qui pointe sur le premier paramètre passé sur la ligne de commande, juste après le nom de l'exe
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

Discussions similaires

  1. [Débutant] Lancer une seul fois l'éxcuteur (programme) (.exe) avec Vb 2010
    Par yannel777 dans le forum VB.NET
    Réponses: 10
    Dernier message: 22/10/2013, 17h51
  2. [FAQ C#] Comment ne lancer qu'une seule instance de mon application WPF ?
    Par Gregory.M dans le forum Windows Presentation Foundation
    Réponses: 16
    Dernier message: 18/11/2010, 18h08
  3. lancer une seule instance d'une classe
    Par Axiome dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/09/2008, 16h24
  4. [FAQ] une seule instance de mon programme
    Par kacedda dans le forum C#
    Réponses: 6
    Dernier message: 01/02/2007, 13h37

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