Autor |
Beitrag |
novabeat
      
Beiträge: 20
|
Verfasst: Di 14.01.03 15:48
hallo !!!
wie kann ich den systray verstecken. ich will alles verstekcen, die uhr und die symbole
|
|
DaFox
      
Beiträge: 189
|
Verfasst: Di 14.01.03 20:18
Hi.
Das geht leider nicht ohne weiteres.
Folgendes wäre der einfache Weg (funktioniert aber nicht  , da sich das Fenster immer wieder neuzeichnet):
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button1Click(Sender: TObject); var hTaskbar: hWnd; hTray: hWnd; Tray: TRect; begin
hTaskbar := FindWindow('Shell_TrayWnd', nil); hTray := FindWindowEx(hTaskbar, 0, 'TrayNotifyWnd', nil);
GetWindowRect(hTray, Tray);
SetWindowPos(hTray, 0, Tray.Left - 20, Tray.Top, 0, 0, SWP_NOSIZE or SWP_NOZORDER); (* oder *) // ShowWindow(hTray, SW_HIDE);
end; |
Der andere (funktionierende) Weg ist die window procedure zu subclassen.
 In den Prozessraum gelangen (z.B. mit Hook per SetWindowsHookEx), subclassen mit SetWindowLong(..., GWL_WNDPROC,...)
Gruß,
Markus
|
|
novabeat 
      
Beiträge: 20
|
Verfasst: Di 14.01.03 20:21
oder wie kann ich denn alle Icons ausm systray löschen ???
|
|
DaFox
      
Beiträge: 189
|
Verfasst: Di 14.01.03 20:28
Das geht leider auch nur per subclassen der Tray, denn dann kannst Du die jeweiligen NOTIFYICONDATA Strukturen abfangen und hast alle Daten, die Du brauchst diese Icons wieder zu löschen. Bzw. man könnte natürlich gleich verhinden, dass das Icon gezeichnet wird.
Ohne Low-Level-Programmierung wirst Du leider nicht ans Ziel kommen...
Markus
|
|
novabeat 
      
Beiträge: 20
|
Verfasst: Di 14.01.03 20:31
hast du keinen codeschnipsel für mich, der einfach die Icons nach der eihe durchgeht und dann die icons versteckt ??
sowas ähnliches hab ich schon hier im forum gesehen ich bin aber nicht wirklich durchgestiegen !!
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 14.01.03 20:55
Hallo novabeat.
Nimm´s mir nicht übel, aber dann wird dir kein Codeschnippsel der Welt helfen ... wenn du nicht verstehst, was eine Funktion bewirkt und wie man sie nutzt, dann besteht nur die Gefahr, dass du zusätzliche Fehler in deinen Code einbaust.
Und was soll´s bringen, wenn dir ein anderer den Code schreibt? Für den Augenblick geht dein Programm vielleicht, aber sobald Fehler auftreten (o.ä.) stehst du wieder hier auf der Matte (was an sich nicht schlecht ist, denn dazu ist so ein Forum ja da), weil du völlig überfordert bist, eigenständig Änderungen, Erweiterungen oder Verbesserungen vorzunehmen.
Ist natürlich nur meine persönliche Meinung.
|
|
DaFox
      
Beiträge: 189
|
Verfasst: Di 14.01.03 21:24
Prinzipiell hat Mathias schon recht. Außerdem habe ich leider kein "Schnipsel" parat und diesen zu erarbeiten wäre ein Brocken Arbeit
Wenn Du diesen von Dir genannten Schnipsel findest, sag mir bitte Bescheid. Ich wüsste nämlich momentan keine Möglichkeit Dein Problem mit einem "Schnipsel" zu lösen, wenn überhaupt dann mit einem Roman o.ä.
Markus
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 14.01.03 21:52
DaFox hat folgendes geschrieben: | Prinzipiell hat Mathias schon recht. Außerdem habe ich leider kein "Schnipsel" |
Das habe ich mir schon gedacht. Manchmal habe ich das Gefühl so manche denken, man hätte für alles so Code-Schnipsel rumfliegen. Bzw. das es keine Arbeit wäre mal eben was zu programmieren. 
|
|
novabeat 
      
Beiträge: 20
|
Verfasst: Mi 15.01.03 17:32
okokok ich versteh euch ja alle.
aber mal ne frage, bekommt nicht jedes tray icon eine nummer zugewiesen, mit der man das eindeutig identifiziern kann ??
oder hat mal jemand eion beispiel für mich, das zeigt, wie man ein einzelnes Tray Icon versteckt ???
|
|
DaFox
      
Beiträge: 189
|
Verfasst: Mi 15.01.03 18:01
Sorry, ich habe momentan wirklich keine Zeit mich damit zu beschäftigen. Ich kann Dir also, so leid es mir tut, kein Source posten.
Natürlich bekommt jedes Icon einen Wert zugewiesen. Diesen Wert benutzt auch Windows um das Icon "anzusprechen". Dies ist das uID, das in der von mir schon angesprochenen NOTIFYICONDATA Struktur steckt. Jedes einzelne Icon bekommt eine eigene uID, das Problem dabei ist, dass Du diese nicht kennst und somit keinen Zugriff darauf hast
Ich bleibe bei meinem Tip: Subclasse die Tray und fange alle NOTIFYICONDATA Strukturen ab, somit hast Du alle Daten, die Du brauchst. Ansonsten warte ich immernoch gespannt auf den Source, den Du mal gesehen hast!  Vielleicht kann ich Dir damit weiterhelfen!?
@Luckie: Ich helfe gerne mit Source aus, aber manchmal sind die Ansprüche wirklich etwas zu hoch und meine Zeit zu knapp. Aber eigentlich haben wir doch alle mal so angefangen, oder?
Gruß,
Markus
|
|
novabeat 
      
Beiträge: 20
|
Verfasst: Fr 17.01.03 16:49
ähm,... jo ok ich versteh schon, dass du keine fetrtigen code abgeben kannst und willst, aber ich bin ein newbie. kannst du mir mal bitte erklären was subclassen ist ?
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Fr 17.01.03 20:08
Hi,
schau Dir mal dieses große Tutorial an: Win32-API-Tutorials für Delphi.
So weit ich weiß wird hier auch das Thema mit diese Subclassen erklärt!
Gruß
TINO
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 18.01.03 06:33
Kurz gesagt bedeutet SubClassen, das Umbiegen / Ersetzen der Fensterprozedur eines Fensters.
|
|