[Delphi] Tray-icon

Pagina: 1
Acties:

  • maikel
  • Registratie: Januari 2001
  • Laatst online: 09:47
Ik heb nu een Delphi-proggie gemaakt die zich netjes in de tray nesteld en daar een icoontje laat zien.
Maar is het ook mogelijk dit icoontje breder te maken ?
De klok rechtsonder is namelijk ook een stuk breder.
Of werkt die weer heel anders ?
En is het mogelijk om van dat icoontje de plek op te geven, zodat ie altijd uiterst rechts of links komt te staan ?

  • Delpix
  • Registratie: September 2001
  • Laatst online: 27-11-2021

Delpix

Alanis Fan

Op zaterdag 09 maart 2002 20:23 schreef maikel het volgende:

Maar is het ook mogelijk dit icoontje breder te maken ?
Messchien 2 iconen achter mekaar aanmaken. Zodat het lijkt alsof ze breeder zijn.

...beter bekend als AMFan


  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op zaterdag 09 maart 2002 20:23 schreef maikel het volgende:
Maar is het ook mogelijk dit icoontje breder te maken ?
Nee, in principe niet.
De klok rechtsonder is namelijk ook een stuk breder.
Of werkt die weer heel anders ?
Die klok is een native Windows-onderdeel, ingebouwd in de taakbalk. Je zult dan Windows moeten 'hacken' om dat te veranderen.
En is het mogelijk om van dat icoontje de plek op te geven, zodat ie altijd uiterst rechts of links komt te staan ?
Volgens mij krijgt een programma gewoon een plek aangewezen. Wie het eerst komt, wie het eerst maalt, oftewel als je als eerste iets in de system-tray zet, komt dat geloof ik rechts te staan.

  • maikel
  • Registratie: Januari 2001
  • Laatst online: 09:47
Op zaterdag 09 maart 2002 20:25 schreef Delpix het volgende:

[..]

Messchien 2 iconen achter mekaar aanmaken. Zodat het lijkt alsof ze breeder zijn.
Dat lijkt mij een 'laatste redmiddel'. :)
En dan moet ik ze nog wel kunnen positioneren.

  • maikel
  • Registratie: Januari 2001
  • Laatst online: 09:47
Op zaterdag 09 maart 2002 20:25 schreef elnino het volgende:

Die klok is een native Windows-onderdeel, ingebouwd in de taakbalk. Je zult dan Windows moeten 'hacken' om dat te veranderen.
Er zijn toch ook proggies die ipv de klok komen te staan ?
Bijv. zo'n klok met een resource-meter erin. (heb ik ooit eens ergens gezien)

  • ArieProductions
  • Registratie: Januari 2002
  • Laatst online: 27-11-2024
tsja wie het eerst komt wie het eerst maalt heb ik nooit helemaal begrepen.

Ik heb van rechts naar links in XP:

- volume
- zone alarm
- lokaal netwerk
- msn
- adsl

zou graag volgorde willen instellen, maar hoe is me niet helemaal duidelijk

"Quidquid latine dictum sit, altum videtur" (Whatever is said in Latin sounds profound)


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 19:01
zou graag volgorde willen instellen, maar hoe is me niet helemaal duidelijk
tsja wie het eerst komt wie het eerst maalt
Je gaf het antwoord op je eigen vraag :)

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • ArieProductions
  • Registratie: Januari 2002
  • Laatst online: 27-11-2024
Op zondag 10 maart 2002 02:33 schreef Infinitive het volgende:

[..]


[..]

Je gaf het antwoord op je eigen vraag :)
dus zou jij willen beweren dat wanneer ik m'n LAN kaarten er andersom in zou pluggen dat er andere volgorden uit zouden komen?

"Quidquid latine dictum sit, altum videtur" (Whatever is said in Latin sounds profound)


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 09:47
Ik heb nu wel ergens een stukje code gevonden die de klok uit je tray haalt.
code:
1
2
3
4
5
6
7
8
TrayWnd  := FindWindow('Shell_TrayWnd', nil);
TrayNWnd := FindWindowEx(TrayWnd, 0, 'TrayNotifyWnd', nil);
ClockWnd := FindWindowEx(TrayNWnd, 0, 'TrayClockWClass', nil);
if ClockWnd <> 0 then
begin
    ShowWindow(ClockWnd, Ord(true));
    PostMessage(ClockWnd, WM_PAINT, 0, 0);
end;

Is het op zo'n manier ook niet mogelijk iets anders met ClockWnd te doen dan sluiten/wissen ?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op zondag 10 maart 2002 02:42 schreef ArieProductions het volgende:
dus zou jij willen beweren dat wanneer ik m'n LAN kaarten er andersom in zou pluggen dat er andere volgorden uit zouden komen?
Nee het gaat om de opstartvolgorde van de controller-services in dit geval, waar je geen directe invloed op hebt.

En voor Maikel: nee je kunt geen bredere iconen aanmaken, en de klok is inderdaad een vast Windows-onderdeel dat er semi-hardcoded in rondzweeft. De code die je biedt is zoals iemand anders het al omschreef idd een 'hack'.

Professionele website nodig?


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 09:47
Op zondag 10 maart 2002 12:26 schreef curry684 het volgende:

[..]

Nee het gaat om de opstartvolgorde van de controller-services in dit geval, waar je geen directe invloed op hebt.

En voor Maikel: nee je kunt geen bredere iconen aanmaken, en de klok is inderdaad een vast Windows-onderdeel dat er semi-hardcoded in rondzweeft. De code die je biedt is zoals iemand anders het al omschreef idd een 'hack'.
'hack' lijkt me een groot woord: het is gewoon het opvragen van een bepaald Window en daar een message naartoe sturen.
Maar aangezien er ook andere programma's zijn die ipv de standaard klok draaien, moet het dus gewoon mogelijk zijn om daar wat neer te zetten ipv de klok.

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 19:01
Wat ik bedoelde is dat je de volgorde waarin de iconen verschijnen niet aan kan passen. Wanneer er een icoon wordt toegevoegd komt deze links te staan van de iconen die er al staan. Ofwel, "wie het eerst komt het eerst maalt".

Waar ik eigenlijk nooit op gelet heb, is wat er gebeurt als je tray overnieuw opgebouwd wordt. Het systeem stuurt dan een "TaskbarCreated" message en alle applicaties kunnen (moeten) hun icoon dan weer overnieuw toevoegen. Het lijkt me dat dan de volgorde ook nog kan wijzigen?

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 09:47
Dat met die icoontjes snap ik wel.
Maar de klok is dus geen icoontje. Maar het moet mogelijk zijn daar ook was anders van te maken.
(zijn genoeg programma's die dat doen)

Ik ben nu al wel zo ver dat ik over het klokje heen kan tekenen dmv de handle naar het klok-windowtje.
Is het ook mogelijk daar nu andere eventhandlers aan te koppelen ?
Dat ik dus bijv. de OnClick van de klok vervang door een zelfgemaakte OnClick ?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op zondag 10 maart 2002 12:42 schreef Infinitive het volgende:
Waar ik eigenlijk nooit op gelet heb, is wat er gebeurt als je tray overnieuw opgebouwd wordt. Het systeem stuurt dan een "TaskbarCreated" message en alle applicaties kunnen (moeten) hun icoon dan weer overnieuw toevoegen. Het lijkt me dat dan de volgorde ook nog kan wijzigen?
Die message wordt gebroadcast en het is dus puur toeval in welke volgorde de applicaties deze binnen krijgen, afhankelijk van de task scheduling en hoe vol hun message queues op dat moment zijn. Overigens negeren vrijwel alle applicaties die message: doe explorer.exe maar eens afschieten en dan met de hand opnieuw opstarten, dan houdt je op z'n best 2-3 icoontjes over.

En Maikel:
'hack' lijkt me een groot woord: het is gewoon het opvragen van een bepaald Window en daar een message naartoe sturen.
Het sturen van messages naar windows die niet van jouw app zijn om een effect te bereiken waar de betreffende app nooit voor is bedoeld is wel degelijk hacken volgens de gangbare normen.

Professionele website nodig?


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 19:01
Geinig dat spelen met die window's. Moet je eens een EnumerateWindows doen met als Callback functie een functie die via de meegeleverde hWnd het desbetreffende window zichtbaar maakt. They're everywhere...!!

Ook wel leuk is om met die functie waarmee je het window op een bepaalde coordinaat kan opvragen je start-knop te verplaatsen (alleen bij mij bracht 'ie zichzelf op een gegeven moment weer terug) of te verbergen, of het microsoft logotje te vervangen door een pinguin (pak de device context en tekenen maar).

En nee, echt daarvoor bedoeld is het niet... grootte kans dat je je pc kan herstarten.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Verwijderd

Op zondag 10 maart 2002 12:42 schreef Infinitive het volgende:
[..]Wanneer er een icoon wordt toegevoegd komt deze links te staan van de iconen die er al staan. Ofwel, "wie het eerst komt het eerst maalt".[..]
Bij mij (Win98SE) komen nieuwe iconen rechts te staan (tussen de klok en de bestaande iconen in).
Pagina: 1