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 :

Envoyer un message à une application (ou un process)


Sujet :

Delphi

  1. #1
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 289
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 289
    Points : 1 940
    Points
    1 940
    Par défaut Envoyer un message à une application (ou un process)
    Actuellement j'ai une form (fenetreMessage) avec un titre biscornu servant à avoir un nom unique (dugenre le nom de mon application à l'envers), dont le seul but est d'intercepter un mesage windows, que j'envoie à travers une autre application.

    Le traitement du message fait juste appel à un autre form (fenetreMain), dont le titre peut changer (et donc je ne peux pas arriver à la retrouver avec un FindWindows).

    Je trouve cette solution assez sale et j'aurais voulu savoir s'il y avait un moyen d'envoyer un message à l'application en elle-même (puisque normalement elle propage les messages), plutôt qu'à une form en particulier.

    En espérant avoir été assez clair.

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 289
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 289
    Points : 1 940
    Points
    1 940
    Par défaut
    Après tests, envoyer un message au TApplicatioe ne le propage pas aux fenêtres de l'application. Je vais essayer d'autres pistes.

  3. #3
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    commence par:
    http://perso.orange.fr/bardou/michel...s/messages.htm
    http://perso.orange.fr/bardou/michel.../onmessage.htm

    si tu veux envoyé un message à tt les fenétrs ouvert dans ton appli;
    1-declare un message (ex:wm_Test=wm_user+1) globale
    2-crée une procedure message; pour chaq form
    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
    32
    33
    34
    35
    36
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, CheckLst;
    const  wm_jamai=wm_user+1;
    type
      TForm1 = class(TForm)
      private
        { Déclarations privées }
        Procedure  MonMessage(var msg:TMessage);message wm_Jamai;
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
    procedure TForm1.MonMessage;
    begin
         showmessage('pas');
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var  j:Integer;
    begin
         for j:=1 to application.ComponentCount-1 do //commence par 1; le 0 pour l'application elle meme) :( 
             SendMessage(TForm(application.Components[j]).Handle,WM_Jamai,0,0);
     
    end;
     
    end.

  4. #4
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 289
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 289
    Points : 1 940
    Points
    1 940
    Par défaut
    Merci mais en fait c'est pour envoyer un message à une autre application que la mienne.

    J'utilise maintenant cette technique (en récupérant tous les "window" d'un processus, merci la FAQ), mais je me demandais si c'était mieux que ma form cachée avec un titre du genre 'M%E¨SK/', qui était la seule à qui j'envoyais un message et qui appelait un traitement sur la form principale.

    Mais je vais garder cette solution, (si vous voulez je la poste mais avec la FAQ c'est simple à réaliser)

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

Discussions similaires

  1. [C#] envoyer un message windows à une application contenant une chaine
    Par ingenieurtunisien dans le forum Windows Forms
    Réponses: 0
    Dernier message: 08/11/2010, 16h10
  2. Réponses: 2
    Dernier message: 08/12/2008, 17h38
  3. Réponses: 1
    Dernier message: 19/09/2008, 09h29
  4. Envoyer des SMS via une application en C++
    Par yakotey dans le forum C++
    Réponses: 1
    Dernier message: 09/01/2006, 19h15
  5. Message depuis une application systray
    Par giloutho dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 09/09/2005, 10h10

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