AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

eigenen tray-bereich programmieren

Ein Thema von eisblock · begonnen am 29. Aug 2007 · letzter Beitrag vom 1. Sep 2007
Antwort Antwort
Seite 2 von 2     12   
s-off
(Gast)

n/a Beiträge
 
#11

Re: eigenen tray-bereich programmieren

  Alt 30. Aug 2007, 07:11
Hallo,

Zitat von thabaker:
Das funktioniert ja "nur" wenn auch die Taskleiste da ist, sprich der Explorer als Shell läuft, oder?
Ja.

Zitat von thabaker:
Wenn ich jetzt hergehen würde und eine andere Shell benutze, wie erstelle ich dann "per Hand" eine TNA?
Mal davon abgesehen, dass eine alternative Shell eine derartige Funktionalität mitbringen sollte, müsstest Du wohl selber anlegen.

Zitat von thabaker:
Muss ich dann diese Windows-Struktur selbst erstellen?
'Windows' im Sinne der Fenster-Technik oder im Sinne des Betriebssystems?
Im Prinzip sind ja alles nur Fenster, die auf irgendwelche Botschaften reagieren. Also wäre der Nachbau einer Taskbar mit all ihren Elementen nichts anderes als jede andere Anwendung mit Buttons und dergleichen auch.
Nur dass man hier wohl nicht umher kommen würde, sich mit der WinAPI zu beschäftigen, da es meines Wissens nach keine Komponenten gibt, welche diese Funktionalitäten kapseln.
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#12

Re: eigenen tray-bereich programmieren

  Alt 30. Aug 2007, 19:58
MSDN-Library durchsuchenSetWindowsHookEx mit idHook = WH_SHELL
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
thabaker

Registriert seit: 1. Jul 2007
50 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: eigenen tray-bereich programmieren

  Alt 31. Aug 2007, 22:24
@Rastaman: und dann? da sind zwar Nachrichten drin die eine eigene Taskleiste möglich machen, aber zum Thema Tray-Bereich hab dort jetzt nix gesehen...
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#14

Re: eigenen tray-bereich programmieren

  Alt 31. Aug 2007, 23:11
Kleiner Hinweis: Schau mal auf http://www.sharpe-shell.org/ - die haben eine Shell in Delphi programmiert, und da ist auch das TNA-Gerät bei.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: eigenen tray-bereich programmieren

  Alt 31. Aug 2007, 23:12
Es gibt bestimmt Dokumentationen von Microsoft, wie man eine eigene Shell programmiert. Dort sollten auch die benötigten Schnittstellen dokumentiert sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Billi Berserker
(Gast)

n/a Beiträge
 
#16

Re: eigenen tray-bereich programmieren

  Alt 1. Sep 2007, 00:16
Zitat von Rastaman:
MSDN-Library durchsuchenSetWindowsHookEx mit idHook = WH_SHELL
bringt dich bzgl. des Trays absolut nicht weiter

Zitat von Luckie:
Es gibt bestimmt Dokumentationen von Microsoft, wie man eine eigene Shell programmiert. Dort sollten auch die benötigten Schnittstellen dokumentiert sein.
Die einzige Dokumentation die man findest beschränkt sich leider darauf wie man ein eigenes Icon im Tray platziert. Das ganze ist aber auf jedenfall hilfreich zu wissen da das ja genau die Daten sind die man verarbeiten muß wenn Anwendungen im eigenen Tray Icons platzieren wollen.
NOTIFYICONDATA Structure

Aber insgesammt würde ich von einer komplette Neuprogrammierung des Tray absolut abraten insofern es nicht echt nötig ist. Das ganze ist ziemlich kompliziert und es ist fast ein ding der unmöglichkeit eine eigenen system tray zu implementieren der absolut fehlerfrei funktioniert. Grund ist zum einen der Mangel an Dokumentation (man kann sich vieles nur aus dem Thema verwandten MSDN und Knowledge Base Artikeln zusammen suchen und probieren) und der Fakt das es Anwendungen gibt die den MSDN Richtlinien nicht exakt Folgen (aber trotzdem im explorer tray richtig angezeigt werden... nur in deinem eigenen nicht). Den eigenen Tray parallel zum explorer tray laufen lassen ist übriegens nicht möglich da es nur ein 'Shell_TrayWnd' geben kann welches die Tray Nachrichten via WM_COPYDATA empfängt.

Wenn es für deine Zwecke reicht solltest du wirklich versuchen die Shell_TrayWnd und TrayNotifyWnd Fenster von der Taskbar abzudocken. Schau vielleicht mit Winspector nach ob es noch irgendein parent Fenster gibt was du gleich mit rausziehen kannst. In der Taskbar ist das soweit ich mich erinnere ganz gut organisiert.
Das einzige auf was du absolut achten mußt ist das das TrayNotififyWnd ein child Fenster vom Shell_TrayWnd bleibt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

Re: eigenen tray-bereich programmieren

  Alt 1. Sep 2007, 00:49
Zitat von Luckie:
"Billi Berserker
Zitat von Luckie:
Es gibt bestimmt Dokumentationen von Microsoft, wie man eine eigene Shell programmiert. Dort sollten auch die benötigten Schnittstellen dokumentiert sein.
Die einzige Dokumentation die man findest beschränkt sich leider darauf wie man ein eigenes Icon im Tray platziert. Das ganze ist aber auf jedenfall hilfreich zu wissen da das ja genau die Daten sind die man verarbeiten muß wenn Anwendungen im eigenen Tray Icons platzieren wollen.
NOTIFYICONDATA Structure
Das ist ja kein großes Geheimnis. Aber ich bin mir ziemlich sicher, dass es da eine Dokumentation geben muss. Man muss sie nur finden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Billi Berserker
(Gast)

n/a Beiträge
 
#18

Re: eigenen tray-bereich programmieren

  Alt 1. Sep 2007, 09:22
Zitat von Luckie:
Das ist ja kein großes Geheimnis. Aber ich bin mir ziemlich sicher, dass es da eine Dokumentation geben muss. Man muss sie nur finden.
Muß dich da leider enttäuschen. Ich hab mich sehr ausführlich mit dem Thema beschäftigt und offiziell von Microsoft gibt es da echt nix außer die Definition der Daten Strukturen und Anleitungen wie man einen Tray benutzt. Aber leider nix wie man selber einen Programmiert. So interessante Sachen wie das das Shell_TrayWnd auch ApplicationData Nachrichten verwalten muß (und das diese auch einfach als WM_COPYDATA mit ner anderne ID gesendet werden) mußte ich mir z.b. aus nem Knowledge Base Aritkel der erklärt hat wie man die Position der Taskbar findet herraus fummeln. Auch Informationen über das starten der Shell Service Objects gibts auf MSDN oder auch in anderen Microsoft Artikeln nicht.

Hier ist man größtenteils wirklich auf sich allein gestellt (insofern man nicht blind von bereits existierenden shells kopieren will) und einem bleibt manchmal auch nix anderes übrig als mit Winspector Nachrichten und Fenster zu überwachen oder manchmal sogar 100 MB große Process Monitor startup logs von windows/explorer zu analysieren.

Hat schon seinen Grund warum ich davon abrate insofern es nicht absolut notwendig ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz