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 :

FAQ : GetWindowThreadProcessId(GetForeGroundWindow)


Sujet :

Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 202
    Points : 91
    Points
    91
    Par défaut FAQ : GetWindowThreadProcessId(GetForeGroundWindow)
    Bonjour,

    je cherche à suivre un conseil donné dans la FAQ (concernant la mise en avant-plan d'une application). Cette application est instancée par ShellExecute : pas de problème à ce niveau, ca marche.
    Le problème apparait (après insertion dans mon programme) du code donné dans la FAQ, c'est à dire:

    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
    procedure TForm1.Devant;
    Var Proc,Nous:Integer;
    begin
      Proc:=GetWindowThreadProcessId(GetForeGroundWindow);
      Nous:=GetCurrentThreadID;
      If Proc<>Nous Then
      Begin
        // Nous ne sommes pas l'application en premier plan
        AttachThreadInput(Nous,Proc,True);
        SetForeGroundWindow(Handle);
        AttachThreadInput(Nous,Proc,False);
        Application.BringToFront;
      End Else
      Begin
        // Nous sommes déjà en premier plan
        SetForeGroundWindow(Handle);
      End;
    end;
    Il est refusé par le compilateur à la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Proc:=GetWindowThreadProcessId(GetForeGroundWindow);
    avec le message : Pas assez de paramètres originaux.

    Quelqu'un pourrait-il m'éclairer ?
    Merci

  2. #2
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ....
    Var 
      Proc,Nous:DWord;
    begin
      GetWindowThreadProcessId(GetForeGroundWindow, Proc);
    ....
    Roland

  3. #3
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    tu as essayé
    Proc:=GetWindowThreadProcessId(GetForeGroundWindow,nil);

  4. #4
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Au temps pour moi, j'ai confondu thread et process
    Roland

  5. #5
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 202
    Points : 91
    Points
    91
    Par défaut
    Maintenant, c'est OK pour la compilation.
    Mais il y a un hic : L'application est bien activée, mais elle reste en arrière plan (comme si la procédure n'avait pas été rajoutée).
    Et il n'a pas été oublié de passer par cette procédure en début de programme.
    La méthode semble pourtant astucieuse et devrait marcher. Décidément je ne comprends pas.

  6. #6
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 202
    Points : 91
    Points
    91
    Par défaut
    C'est bon, le problème est résolu.
    il ne suffisait pas de spécifier :
    Application.BringToFront;
    il fallait aussi :
    Form1.BringToFront;
    La FAQ ne donnait pas totalement la solution, mais elle m'a bien mis sur la voie. Merci à ceux qui y ont contribué.

  7. #7
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par JJJJJ Voir le message
    Merci à ceux qui y ont contribué.
    Merci à toi d'avoir fait remonter cette "erreur"
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

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

Discussions similaires

  1. Merci de nous aider à créer des ressources (FAQ et sources)
    Par Community Management dans le forum Evolutions du club
    Réponses: 29
    Dernier message: 19/10/2015, 00h35
  2. [FORMS] Chemin des icones (intégré FAQ 150 QR)
    Par jerome62 dans le forum Forms
    Réponses: 2
    Dernier message: 30/07/2002, 08h32

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