CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Cherche fonction dans windows API

lord_kalipsy
lord_kalipsy
Niveau 10
03 juin 2004 à 03:19:38

Bonjour

Comme vous le voyez dans le titre je cherche une fonction dans l´API de Mr Bilou. ^^ ( J´espère qu´elle existe . ..)

La/Les fonctions que je cherche ( ils y en a p-ê plusieurs . ..) sert à faire une fenetre " comme" Msn ou Winamp. Bon c´est pas clair je m´explique. Quand on ferme la fenetre msn on ne la vois plus en bas dans le task bar mais l´icon reste dans le truc ( je sais pas le nom) à cote de l´horloge. Et quand on clique sur cette " icon" la fenetre revient.

Je cherche une ou plusieur fonction qui font cela. J´ai regarder sur MSDN mais je ne trouve pas de nom . .. souvent les nom des fonctions ne représente pas ce qu´elles font sans compter que je ne sais pas dans qu´elle catégorie elle peux se trouver.

J´ai chercher sur google et sur des site de code source et j´ai trouver comment faire disparaître la task bar, changer l´heure effacer des trucs mais pas ça!

Si vous pouviez orienter mes recherche ( me dire qu´elle fonctions chercher) se serait sympa. ^^

Cela va servir à faire un agenda sur mon PC. Donc je n´ai aucune mauvaise intention. :-p

Ps : Je n´ai pas l´intention de distribuer mon prog sauf si on me le demande donc la fonction n´a pas besoin d´être portable . ..

Merci d´avance,

«psy

Yoda_Software
Yoda_Software
Niveau 30
03 juin 2004 à 04:25:18

Dans quel langage veux-tu faire ça ?
Je l´ai fait autrefois en Delphi, mais je ne suis pas sur de pouvoir retrouver le source, étant donné que j´ai eu un crash disque au mois de janvier et que je n´avais pas fait de sauvegarde de tout ce qu´il y´avait dessus.

lord_kalipsy
lord_kalipsy
Niveau 10
03 juin 2004 à 04:29:47

En effet je vuex faire ça sous Delphi. Mais si vous l´avez en C c´est pas si grave je peux toujours esseyer de toruver un équivalent. ^^

Si tu n´as pas le nom sais tu dans quel genre de fonctions je dois chercher ? J´ai beau regarder sur MSDN je ne trouve rien. ( il faut dire qu´il y a beaucoup de fonctions et que je cherche p-ê dans les mauvaises catégories.)

Merci,

«psy

Yoda_Software
Yoda_Software
Niveau 30
03 juin 2004 à 05:47:10

En fait, ce n´est pas une fonction, mais toute une partie de programme.
Il faut cacher le prog de la barre des tâche, déclarer l´icône et le menu associé, affiché l´icône dans le coin an bas à droite, . ..
De tête, c´est tout ce que je me souviens. Je serais incapable de le refaire sans un exemple.
As-tu regardé sur le site de développer.com dans la rubrique Delphi ?

lord_kalipsy
lord_kalipsy
Niveau 10
03 juin 2004 à 13:36:06

Oui j´ai regarder sur developper mais je vais y retourner pour être sur. Le menu près de l´horloge s´apelle comment ?

Pour faire disparaître le truc de la bar des tache je usis capable mais je sais pas comment faire appraître un truc dans le coin à droite.

Je vais continuer à chercher.

Merci,

«psy

Altonfrere
Altonfrere
Niveau 10
03 juin 2004 à 14:03:47

ca s´appelle systemtray
il existe un paquet d´exemples sur le net à ce sujet . ..

lord_kalipsy
lord_kalipsy
Niveau 10
03 juin 2004 à 14:07:15

Bon là je peux chercher parceque je sais le nom. ^^

Si je trouve des liens je vais les mettre ici... p-ê que quelqu´un d´autre aura besoin de ce genre de trucs...

Technix59
Technix59
Niveau 5
03 juin 2004 à 16:10:19

Salut Lord,

Va donc faire un tour sur www.delphifr.com.
Tu trouveras à coup sur ton bonheur et tout ce qu´il te faut. Même ce qu´il ne te faut pas pour le moment.

Sarafan
Sarafan
Niveau 10
03 juin 2004 à 16:12:44

Je l´ai fait en delphi à plusieurs reprise.

Il te faut une variable de type TNotifyIconData.
La structure présente les champs suivants :
cbSize : La taille de la structure
wnd : Handle de la forme principale de ton appli(nil si tu n´as pas de forme principale)
uID : Aucune idée , moi je met toujours 1.
uCallBackMessage : pour traiter les messages envoyés par le système(pour afficher un popup sur click droit par exemple)
hIcon : Le handle de l´icon qui doit apparaitre à côté de l´horloge
szTip : Message de la bulle d´aide quand on passe le curseur sur l´icone.
uFlags : Drapeaux indiquant entre autre que tu gères des message , qu´il y a un hint et d´autres choses que je ne connais pas.

Et il faut utiliser l´API Shell_NotifyIconA.
Cette API à deux paramètre le premier concerne l´action à effectuée(ajouter , enlevé,etc...)
Le deuxième est un pointeur sur TNotifyIconData.

Dans l´exemple Nid est déclarer en private dans la form:

procedure TMainForm.SetInSystray;
Begin
FillChar(Nid,sizeof(Nid),0);
Nid.cbSize := SizeOf(Nid);
Nid.wnd := Self.Handle;
Nid.uID:=1;

/ /Je gère des messages
Nid.uCallBackMessage:=wm_CallBackMessage;

/ /L´icon de la MainForm
Nid.hIcon:=Self.Icon.handle;

Nid.szTip:=´C´´est un test´;

/ /J´accepte les messages et j´ai une icone
Nid.uFlags:=nif_message or nif_Icon or nif_tip;

/ /J´enregistre dans la trayicon
Shell_NotifyIconA(NIM_ADD, @Nid);
End;

procedure TMainForm.RemoveSystray;
begin
Shell_NotifyIconA(NIM_DELETE,@Nid);
end;

Voila en gros ce que ça donne.
J´ai indenté le code mais je crois que ce n´est pas garder donc désolé si ce n´est pas lisible.

lord_kalipsy
lord_kalipsy
Niveau 10
03 juin 2004 à 19:26:11

Merci pour vos réponse :-)

Maintenant je vais pouvoir continuer dans mon programme. ^^

Amicalement,

«psy

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment