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 :

[WIN32][D7] Application invisible


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Par défaut [WIN32][D7] Application invisible
    Salut,
    Je voudrais faire une application qui ne s'affiche pas dans la barre des tâches, mais plutôt avec un icône dans le systray (là où y a l'heure dans la barre des tâches ). Quelqu'un a-t-il une idée ?

  2. #2
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Par défaut
    un petit tour dans la

    plus précisément ici pourrait t'aider je pense
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Par défaut
    J'ai déjà regarder la FAQ
    Mettre un icon dans le systray c'est la partie facile.
    Le problème c'est d'avoir une appli invisible dans la barre des tâches et qui le reste (invisible ), même si on a des forms filles.

  4. #4
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut,

    Si ton appli ne possède pas de bouton 'Réduire' et 'Agrandir' et qu'elle ne s'affiche pas maximisée, tu peux ajouter ceci dans le OnCreate de la form principale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
    @+

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Par défaut
    Pour clarifier mes propos voici mon code :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Unit2;
     
    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormShow(Sender: TObject);
      private
        FormFille: TForm2;
        procedure AppMinimize(Sender: TObject);
     
      public
     
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.AppMinimize(Sender: TObject);
    begin
      Visible := False;
      FormFille.Show;
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Application.OnMinimize := AppMinimize;
      FormFille := TForm2.Create(Self);
      FormFille.Hide;
    end;
     
    procedure TForm1.FormShow(Sender: TObject);
    begin
      ShowWindow(Application.Handle,SW_HIDE);
      SetWindowLong(application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
      ShowWindow(application.Handle, SW_SHOW);
    end;
     
    end.
    Si on enlève le ça fonctionne bien (trop bien même ) : quand on réduit la form elle est complètement invisible (ni barre des tâches, ni petit bout de fenêtre reduite sur le bureau, du coup on y a plus accès ), mais si on veut afficher la form fille paf ma form principale apparaît en tout petit sur le bureau.

    Evidemment, j'ai pas encore mis l'icone dans le systray.
    Avant de me lancer dans des grands projets je voudrais savoir si c'est possible de faire ce que je veux faire.

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Par défaut
    Oups, j'ai oublié : il faut bien sûr ajouter au projet une fiche TForm2 dans l'unité Unit2

Discussions similaires

  1. [LV2009] rendre l'application invisible
    Par Super2006 dans le forum LabVIEW
    Réponses: 1
    Dernier message: 11/10/2010, 12h05
  2. ShellExecute et application invisible?
    Par Aloneghost dans le forum Langage
    Réponses: 7
    Dernier message: 21/03/2009, 00h06
  3. fenêtres des applications invisibles
    Par lelutin dans le forum Windows Vista
    Réponses: 2
    Dernier message: 29/11/2007, 19h28
  4. Réponses: 2
    Dernier message: 09/05/2007, 14h30
  5. Application invisible et qui écoute le clavier
    Par Belegkarnil dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 12/02/2006, 20h30

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