Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Maitriser l'infobulle de windows dans la barre des taches [ Divers / Débutant(e) ] (nitrique)

vendredi 1 septembre 2006 à 11:28:36 | Maitriser l'infobulle de windows dans la barre des taches

nitrique

Bonjour, J'aimerais afficher un message d'alerte windows (les jeunes, ceux du style: "Il vous reste 10 jours pour activer windows"). Je sais qu'il existe un composant dans la jdvc mais j'aimerais passer outre. Y a t-il un autre moyen que de créer une form qui y ressemble ? Merci d'avance.

vendredi 1 septembre 2006 à 11:44:27 | Re : Maitriser l'infobulle de windows dans la barre des taches

Loda

Membre Club
je pas te le dire de mémoire, mais j'ai vu une fois un sujet/source qui en parlait sur ce site. si je met la main dessus, je te poset le lien. bon code,

vendredi 1 septembre 2006 à 12:13:36 | Re : Maitriser l'infobulle de windows dans la barre des taches
vendredi 1 septembre 2006 à 12:42:59 | Re : Maitriser l'infobulle de windows dans la barre des taches

nitrique

J'ai pris son code mais n'arrive pas, malgré tout, à le faire marcher. Const NIF_INFO = $10; NIIF_INFO = $00000001; type PNewNotifyIconData = ^TNewNotifyIconData; TDUMMYUNIONNAME = Record Case Integer Of 0: (uTimeout: UINT); 1: (uVersion: UINT); End; TNewNotifyIconData = Record cbSize: DWORD; Wnd: HWND; uID: UINT; uFlags: UINT; uCallbackMessage: UINT; hIcon: HICON; //Version 5.0 is 128 chars, old ver is 64 chars szTip: Array [0..127] of Char; dwState: DWORD; //Version 5.0 dwStateMask: DWORD; //Version 5.0 szInfo: Array [0..255] Of Char; //Version 5.0 DUMMYUNIONNAME: TDUMMYUNIONNAME; szInfoTitle: Array [0..63] Of Char; //Version 5.0 dwInfoFlags: DWORD; //Version 5.0 End; procedure TfrmMain.btn1Click(Sender: TObject); Var TipsInfo, TipsTitre: String; Begin nid.cbSize := SizeOf(nid); nid.uFlags := NIF_INFO; TipsInfo := 'Le Hook du Calendrier est activé.'; strPLCopy(nid.szInfo, TipsInfo, SizeOf(nid.szInfo) - 1); nid.DUMMYUNIONNAME.uTimeout := 3000; TipsTitre := 'Surveillance du Bureau'; strPLCopy(nid.szInfoTitle, TipsTitre, SizeOf(nid.szInfoTitle) - 1); // Symbole affiché dans la bulle // NIIF_INFO --> Bulle i // NIIF_ERROR --> Croix x rouge // NIIF_WARNING --> Triangle Jaune nid.dwInfoFlags := NIIF_INFO; //NIIF_ERROR;//NIIF_WARNING; Shell_NotifyIcon(NIM_MODIFY, @nid); Tout compile... Je ne vois pas ce qu'il peut me manquer.

vendredi 1 septembre 2006 à 12:55:58 | Re : Maitriser l'infobulle de windows dans la barre des taches

systmd

Il faut afficher la petite icône, pour que ton info bulle s'affiche

Il manque AjouteSysTrayIcone

vendredi 1 septembre 2006 à 13:48:22 | Re : Maitriser l'infobulle de windows dans la barre des taches

nitrique

J'ai bien un icone dans la barre des taches mais ce n'est pas un composant, je le crée dynamiquement. A quel moment je doit le renseigner ? je ne vois pas le lien fait entre l'infobulle et l'icone.

vendredi 1 septembre 2006 à 15:09:54 | Re : Maitriser l'infobulle de windows dans la barre des taches

systmd

Réponse acceptée !

Je sortie le code de la source voilà ce que ça donne

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,ShellApi,
  Dialogs, StdCtrls, Menus;
Const
wm_AppelMessage        = wm_user+1;
  WM_CallBackMessage     = WM_USER + 1;
  NIF_INFO               = $10;
  NIIF_INFO              = $00000001;

type
   PNewNotifyIconData = ^TNewNotifyIconData;
   TDUMMYUNIONNAME    = Record
     Case Integer Of
        0: (uTimeout: UINT);
        1: (uVersion: UINT);
     End;
     TNewNotifyIconData = Record
     cbSize: DWORD;
     Wnd: HWND;
     uID: UINT;
     uFlags: UINT;
     uCallbackMessage: UINT;
     hIcon: HICON;
     //Version 5.0 is 128 chars, old ver is 64 chars
     szTip: Array [0..127] of Char;
     dwState: DWORD; //Version 5.0
     dwStateMask: DWORD; //Version 5.0
     szInfo: Array [0..255] Of Char; //Version 5.0
     DUMMYUNIONNAME: TDUMMYUNIONNAME;
     szInfoTitle: Array [0..63] Of Char; //Version 5.0
     dwInfoFlags: DWORD;   //Version 5.0
   End;
type
  TForm1 = class(TForm)
    Button1: TButton;
    PopupMenu1: TPopupMenu;
    Quitter1: TMenuItem;
    procedure btn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Quitter1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);


  private
    { Déclarations privées }
     procedure WMAppelMessage(var msg : TMessage); message wm_AppelMessage; //tray
     Procedure AfficheBulleTips;
     Procedure SupprimeSysTrayIcone;
     Procedure AjouteSysTrayIcone;
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
  nid              :TNewNotifyIconData; //Tray Icône

implementation

{$R *.dfm}
//----------------------------------------------------------------------------//
//  Appel commande icone du Tray                                              //
//----------------------------------------------------------------------------//
procedure TForm1.WMAppelMessage(var msg : TMessage);
Var Curs:TPoint;
begin
//Si Clique droit de la souris
if msg.LParam=Wm_RButtonDown then
  begin
  SetForegroundWindow(Handle);
  GetCursorPos(Curs); //Récupère les coordonnées de la souris
  PopupMenu1.Popup(Curs.X,Curs.Y); //Ouvre le menu surgissant à l'emplacement spécfié par les coordonnees de la souris
  PostMessage(Handle,WM_NULL,0,0);
  end;
end; 
//----------------------------------------------------------------------------//
// Affiche une bulle pour informer                                            //
//----------------------------------------------------------------------------//
Procedure TForm1.AfficheBulleTips;
Var
  TipsInfo, TipsTitre: String;
begin
   nid.cbSize := SizeOf(nid);
   nid.uFlags := NIF_INFO;
   TipsInfo :=  'Le Hook du Calendrier est activé.';
   strPLCopy(nid.szInfo, TipsInfo, SizeOf(nid.szInfo) - 1);
   nid.DUMMYUNIONNAME.uTimeout := 3000;
   TipsTitre := 'Surveillance du Bureau';
   strPLCopy(nid.szInfoTitle, TipsTitre, SizeOf(nid.szInfoTitle) - 1);
   // Symbole affiché dans la bulle
   // NIIF_INFO    --> Bulle i
   // NIIF_ERROR   --> Croix x  rouge
   // NIIF_WARNING --> Triangle Jaune
   nid.dwInfoFlags := NIIF_INFO; //NIIF_ERROR;//NIIF_WARNING;
   Shell_NotifyIcon(NIM_MODIFY, @nid);
end;

//----------------------------------------------------------------------------//
// Ajoute l'icone de l'application dans la barre de Notification              //
//----------------------------------------------------------------------------//
Procedure TForm1.AjouteSysTrayIcone;
Begin
   nid.cbSize           := SizeOf(nid);
   nid.Wnd              := Handle ;
   nid.uID              := 0;
   nid.uFlags           := NIF_ICON or NIF_MESSAGE or NIF_TIP;
   nid.uCallbackMessage := WM_CallBackMessage;
   nid.hIcon            := Application.Icon.Handle;
   // Message du Hint
   strPLCopy(nid.sztip,'Essai info bulle' , SizeOf(nid.sztip) - 1);
   Shell_NotifyIcon(NIM_ADD, @nid);
end;  
//----------------------------------------------------------------------------//
// Supprime l'icone de l'application dans la barre de Notification            //
//----------------------------------------------------------------------------//
Procedure TForm1.SupprimeSysTrayIcone;
Begin
Shell_NotifyIcon(Nim_DELETE,@nid); //Supprime le tray icon
End;

procedure TForm1.FormCreate(Sender: TObject);
begin
AjouteSysTrayIcone;
end;

procedure TForm1.Quitter1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.btn1Click(Sender: TObject);
Begin
AfficheBulleTips;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SupprimeSysTrayIcone;
end;

end.

Bon code

 


lundi 4 septembre 2006 à 10:36:51 | Re : Maitriser l'infobulle de windows dans la barre des taches

nitrique

Extra, ça marche... Merci pour ton aide. Je me demandais si ce n'etait pas possible d'externeliser ça ne créant une unité spéciale.



Cette discussion est classé dans : windows, barre, taches, infobulle, maitriser


Répondre à ce message

Sujets en rapport avec ce message

Masquer automatiquement la barre des taches? [ par jmp77 ] Hello,Voila je voudrais pouvoir enclencher et déclencher la propriété de la barre des taches "masquer automatiquement". Est ce que quelqu un pourrait Icone dans la barre des taches [ par Sat83 ] Hello,Je voudrais que mon application travaille en arrierre plan, c'est a dire avec une icone dans la barre des taches et sans la fenetre dans la barr Barre des taches [ par jmp77 ] Bonjour,J'aimerai savoir quand le barre des taches est affichée ou bien cachée??? Notamment quand elle en automatique. Et je voudrais également récupé barre des taches [ par biloue ] BonjourJe souhaiterais que mon applicationn Delphi une fois mise en route ne sois plus dans la barre des taches. Mais dans la barre à droite à coté de etat d'une Form dans la barre des taches [ par crogger ] Bonjour, je voulais savoir quel etat peut t-on attribuer a la Form quand elle est minimisée dans la barre des taches. En fait je voudrai pouvoir faire appli en barre des taches garde le focus [ par guicel ] salut tous voila à l'aide des sources de ce sitej'ai fait une appli qui empèche win XP de s'arreter.cette appli apparait dans la barre des taches et c Probleme de Fenetre ... [ par kiakia ] J'ai crée un petit serveur pour mon reseau en me basant sur une source, le problème c'est que j'aurai voulu que ce projet s'execute en hide ... j'ai r Démarrage de Windows [ par Darknemo74 ] Bonjour!Je cherche à faire disparaitre par code ou autres méthodes la barre des taches de windows, ceci m'est nécessaire pour mon programme dans le bu Ouvrir une nouvelle fenêtre dans la barre des tâches de windows [ par Aurel184 ] salut,je programme une application qui permet de discuter avec des potes sur internet. Et mon application ouvre d'autres fenêtres de discussion. Mais affichage écran [ par Tiekula ] Comment faire pour qu'une fiche s'affiche comme une sorte de prolongement de la barre des taches? c a dire que les autres programmes n'aparaissent pas


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.