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 :

Winamp: Récupérer le chemin complet du fichier lu ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Par défaut Winamp: Récupérer le chemin complet du fichier lu ?
    Bonjour,

    Presque tout est dans le titre:
    Je travaille sur une application qui communique avec Winamp pour savoir ce qu'il fait.
    J'utilise pour l'instant WinampProxy (Infos ICI)qui permet d'interfacer les appels win32 pour .Net, mais je suis disposé à changer pour atteindre mon but:
    => Obtenir le chemin complet du fichier lu !

    J'arrive à détecter quand Winamp se lance, s'arrete, change de chanson et tout, mais rien pour récupérer le nom complet du fichier...

    Est-ce que quelqu'un a déjà fait ça ?

    Merci d'avance pour toute piste !

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Apparemment y a une méthode GetTrackFilename...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Par défaut
    Merci pour la réponse rapide !

    Oui, en effet, la méthode existe, mais elle fait appel à une méthode GetPlayList qui utilise un ancien call Win32: IPC_WRITEPLAYLIST
    CElui-ci est cencé demander à Winamp d'écrire toute la playlist dans un fichier "winamp.m3u" dans le repertoire d'installation; malheureusement, quand je passe dans la méthode qui fait cet appel, aucun fichier n'est créé

    J'avoue que je ne sais pas comment vérifier que le message est bien envoyé...

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    OK, je devine ce qui ne va pas... tu es sous Vista, non ? Dans ce cas, un programme qui ne tourne pas en tant qu'admin ne peut pas écrire dans le répertoire des programmes (program files), et la fonction GetPlayList utilise apparemment ce répertoire. Il suffirait de modifier le code de cette fonction pour utiliser à la place le répertoire temporaire.

    Remplace ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          // set path to temp directory
          string strModuleName = GetAppNameFromHwnd(hwnd);
          string strPath = System.IO.Path.GetDirectoryName(strModuleName);
          SendWindowsStringMessage(hwnd, IPC_CHDIR, 0, strPath + "\0");
          // check and see if file already exists; if so, rename it
          string strPlaylistName = strPath + System.IO.Path.DirectorySeparatorChar + "Winamp.m3u";
    Par celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          // set path to temp directory
          string strPath = System.IO.GetTempPath();
          SendWindowsStringMessage(hwnd, IPC_CHDIR, 0, strPath + "\0");
          // check and see if file already exists; if so, rename it
          string strPlaylistName = System.IO.Combine(PathstrPath, "Winamp.m3u");
    Si le problème est bien celui que je pense, ça devrait marcher...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Par défaut
    Nope: j'ai testé mon soft sur 3 machines sous XP

    Mais (encore) merci de m'aider !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Par défaut
    En fait, c'est Winamp qui devrait écrire ce fichier quand on lui envoie le message en question...
    Mais dans le repertoire de Winamp, aucune trace du-dit fichier

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/05/2017, 10h01
  2. Souris - Récupérer le chemin complet d'un fichier
    Par CLion dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2009, 20h56
  3. Réponses: 2
    Dernier message: 04/08/2007, 21h58
  4. récupérer le chemin complet d'un fichier
    Par Mounr dans le forum Langage
    Réponses: 1
    Dernier message: 02/03/2007, 14h20
  5. Réponses: 13
    Dernier message: 10/04/2006, 17h25

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