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

Delphi Discussion :

MSN Messenger, Musique en cours de diffusion


Sujet :

Delphi

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut MSN Messenger, Musique en cours de diffusion
    Bonjour,

    Je viens de finir la réalisation d'un lecteur de fichiers audio, et par curiosité sur la façon de proceder, j'aimerais savoir comment informer msn messenger de la musique en cours de diffusion sur mon lecteur.

    Merci de votre aide.

  2. #2
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Regarde cet article :

    http://frechy.developpez.com/persmsn/

    C'est du C# mais la logique est la même en Delphi.

    Bon dev!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    Merci de l'info, je suis allé voir, mais tous cela reste du charabia etant donné que je ne connais pas spécialement bien la prog objet ni le C#.

    Quelqu un pourrait il m eclairer le debut de l article avec les deux premieres fonctions ?

  4. #4
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Salut!

    J'ai trouvé des version traduites en Delphi qui sauront probablement t'aider. En gros, il s'agit de trouver la fenêtre de Messenger (avec FindWindowEx) et de lui envoyer un message (via SendMessage) bien spécifique.

    Voici la méthode qui change le texte :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    procedure ChangeMSNMessage(const Msg: string);
    const
       ACTIVATE_BASE_STR = '\0Office\01\0{0}\0%s\0\0\0WMContentID' + #0;
     
    var
       H: THandle;
       structCopy: TCopyDataStruct;
       stringBuffer: array [0..127] of WideChar;
     
    begin
       FillChar(stringBuffer, SizeOf(stringBuffer), #0);
     
       StringToWideChar(Format(ACTIVATE_BASE_STR, [Msg]), @stringBuffer[0], 128);
     
       FillChar(structCopy,SizeOf(TCopyDataStruct),#0);
     
       with structCopy do
       begin
          cbData := SizeOf(stringBuffer);
          dwData := $547;
          lpData := @stringBuffer[0];
       end;
     
       H := 0;
       repeat
          H := FindWindowEx(0, H, 'MsnMsgrUIManager', nil);
     
          if H <> 0 then
             SendMessage(H, WM_COPYDATA, 0, Integer(@structCopy));
       until H = 0;
    end;
    Pour désactiver le message :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    procedure DeactivateMSNMessage;
    const
       DEACTIVATE_BASE_STR = '\0Office\00\0{0}\0\0\0\0WMContentID' + #0;
     
    var
       H: THandle;
       structCopy: TCopyDataStruct;
       stringBuffer: array [0..127] of WideChar;
     
    begin
       FillChar(stringBuffer, SizeOf(stringBuffer), #0);
     
       StringToWideChar(DEACTIVATE_BASE_STR, @stringBuffer[0], 128);
     
       FillChar(structCopy,SizeOf(TCopyDataStruct),#0);
     
       with structCopy do
       begin
          cbData := SizeOf(stringBuffer);
          dwData := $547;
          lpData := @stringBuffer[0];
       end;
     
       H := 0;
       repeat
          H := FindWindowEx(0, H, 'MsnMsgrUIManager', nil);
     
          if H <> 0 then
             SendMessage(H, WM_COPYDATA, 0, Integer(@structCopy));
       until H = 0;
    end;
    Bon dev!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    Bonsoir,

    Lors de mes recherches je suis aussi tombé sur des sources contenant le même code d'envoi. Je n'avais en revanche pas trouvé celui de désactivation fort utile.

    Cependant, avec la fonction de modification du message personnel de messenger, la modification a lieu une fois. Puis, à l'aide d'un timer, si je redemande une modification de ce message, elle n'a pas lieue.
    La mise à jour est effectuée si je desactive puis réactive "ce que j'écoute" directement depuis messenger.

    Dois je en deduire que pour envoyer une nouvelle chaine, je dois d abord faire appel à deactivate puis activate ?

  6. #6
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Salut!

    Perso, je n'ai besoin de DeactivateMSNMessage qu'à la toute fin. ChangeMSNMessage remplace le message en cours.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    Bonjour,

    As tu essayé avec windows live messenger ou avec msn7?

  8. #8
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Les 2

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par défaut
    Ok je vais réessayer avec tes fonctions. Toutefois je ne comprend pas bien l'interet du repeat until H <> 0 de la premiere.

    Saurais tu m'expliquer ? (un seul sendmessage ne suffit il pas ? pourquoi une boucle de ce type est elle necessaire ici ?)

  10. #10
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Honnêtement, je ne saurais te dire. J'ai trouvé ce code et l'ai adapté il y a longtemps. Peut-être est-ce pour les cas où il y a plusieurs instances de Messenger ouvertes simultanément.

Discussions similaires

  1. utiliser MSN messenger en ligne
    Par adilou1981 dans le forum Messagerie instantanée
    Réponses: 8
    Dernier message: 05/10/2005, 10h43
  2. Msn messenger
    Par hdang dans le forum Messagerie instantanée
    Réponses: 3
    Dernier message: 17/08/2005, 10h21
  3. fenetre de notifications comme msn messenger
    Par cash3000 dans le forum Windows
    Réponses: 3
    Dernier message: 08/06/2005, 23h19
  4. Bloquer MSN Messenger
    Par Amélie Ladoque dans le forum Windows Serveur
    Réponses: 17
    Dernier message: 11/05/2005, 12h11
  5. [.NET] Utiliser MSN Messenger ds une appli
    Par Thomas Lebrun dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 02/04/2004, 16h58

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