AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Eine Deskbar aus eigenem Programm ein-/ausblenden
Thema durchsuchen
Ansicht
Themen-Optionen

Eine Deskbar aus eigenem Programm ein-/ausblenden

Ein Thema von luwo · begonnen am 16. Jan 2006 · letzter Beitrag vom 22. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von luwo
luwo

Registriert seit: 8. Jan 2004
Ort: Bamberg
46 Beiträge
 
Delphi XE2 Enterprise
 
#1

Eine Deskbar aus eigenem Programm ein-/ausblenden

  Alt 16. Jan 2006, 12:05
Hallo DP-Freunde,

ich möchte eine (bzw. mehrere) eigene Deskbar(s) (erstellt mit Hilfe von Sakura´s Tutorial, Danke Daniel!!! )
über ein zweites Programm ein- bzw. ausblenden lassen.

Ich dachte für solch eine "einfache" Aufgabe gibts eine simple Lösung,
leider hab ich nach umfangreicher Suchen noch immer keine Lösung gefunden

Im Grunde soll das Programm dasselbe tun, wie wenn in der Taskleiste mit rechter Maustaste
das Kontextmenü aktiviert wird und im Submenü "Symbolleisten" auf den entsprechenden Eintrag geklickt wird.

Meine bisherigen Ansätze waren:

* MSDN: "DESKBAND", irgendein API-Aufruf (z.b. show/hide) zu entsprechenden COM´s
-> Fehlanzeige, nix dergleichen

* TASKBAR: einen Mausklick simulieren indem durch die Taskbarhierarchie gehangelt wird und ein Mausklick im Menü ausgeführt wird
-> Fehlanzeige, da ich nicht an das Kontextmenü herankomme (bei einem Hauptmenü ginge es ja)

* BHO: Hab noch was gefunden über BHO´s (Browser-Helper-Objects) mit denen sich eine Bar direkt einblenden liese
-> Fehlanzeige, da ich die Deskbar ja nicht im InternetExplorer sondern im Explorer verwenden will (zudem lässt Sie sich da nur einblenden)


Die Interfaces (IDeskBand, IPersist, IPersistStream, IPersistStreamInit, IObjectWithSite, IContextMenu, IInputObject)
hab ich auch schon durchforstet, aber auch ohne Ergebnis



Hat jemand eine Idee wie man das noch machen könnte?
Sakura vielleicht?

Gruß Luwo
50726F626C656D3F204F53492D53636869636874203821
  Mit Zitat antworten Zitat
Benutzerbild von luwo
luwo

Registriert seit: 8. Jan 2004
Ort: Bamberg
46 Beiträge
 
Delphi XE2 Enterprise
 
#2

Re: Eine Deskbar aus eigenem Programm ein-/ausblenden

  Alt 16. Jan 2006, 19:31
Tja, keinerlei Meldung...

Entweder ist das Thema zu schwer/uninteressant/...
oder
es gibt tatsächlich keine Lösung...

Schade...
50726F626C656D3F204F53492D53636869636874203821
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Eine Deskbar aus eigenem Programm ein-/ausblenden

  Alt 16. Jan 2006, 20:14
gäbe es nicht auch die möglichkeit die Deskbars zu schließen und dann wieder zu öffnen (also dem Programm ein wm_close schicken)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von luwo
luwo

Registriert seit: 8. Jan 2004
Ort: Bamberg
46 Beiträge
 
Delphi XE2 Enterprise
 
#4

Re: Eine Deskbar aus eigenem Programm ein-/ausblenden

  Alt 16. Jan 2006, 20:24
Zitat von SirThornberry:
gäbe es nicht auch die möglichkeit die Deskbars zu schließen und dann wieder zu öffnen (also dem Programm ein wm_close schicken)
hmmm... anscheinned leider nicht.
Da man ja kein konkretes Fensterhandle bekommt, welches die komplette Deskbar beinhaltet.

Aber irgendwie muß es gehen, die Tastaturumschalte-Leiste kann man ja auch über den Einstellungs-Dialog ein-/ausblenden.
Hab auch schon nen RegMon drüber laufen lassen, aber außer ein paar Binärwerten (die nicht so recht zu gebrauchen sind)
hab ich da auch nix gefunden...
50726F626C656D3F204F53492D53636869636874203821
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Eine Deskbar aus eigenem Programm ein-/ausblenden

  Alt 16. Jan 2006, 21:21
Irgend ein Handle muss die Deskbar doch haben. Du könntest das handle doch in ein MemoryMappedFile packen. Eventuell lässt sich da auch was über GlobalAddAtom oder so machen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von luwo
luwo

Registriert seit: 8. Jan 2004
Ort: Bamberg
46 Beiträge
 
Delphi XE2 Enterprise
 
#6

Re: Eine Deskbar aus eigenem Programm ein-/ausblenden

  Alt 16. Jan 2006, 21:36
Ja natürlich bekomme ich Handles zurück, und zwar von jedem Objekt, was im Deskbar enthalten ist. (ein TEdit und ein TButton)
und auch ein Handle auf das "embedded"-Form.
Bloß nützt das nicht viel, da ich ja nicht die Einzelteile ausblenden will, sondern die komplette Deskbar.
(Mit .Parent etc. hab ich übrigens auch schon probiert)

MemoryMappedFile? Was meinst du genau damit?

Wenn du mit GlobalAtom ein Systemweite UID meinst ist das leider auch keine Lösung,
da ich zum einen mehrere von den Deskbars gleichzeitig brauche und überdies hab ich
schon eine UID mit der TGUID die ich im Deskbar verbrate.
Oder hab ich dich da jetzt falsch verstanden?

Ein weiteres Ding ist natürlich, dass nicht ICH, sondern der Explorer (od. IExplorer)
eine Objekt der Deskbar instanziiert und da wird natürlich auch nix irgendwohin zurückgeliefert...

Also ich bin hier echt am verzweifeln
Es sieht eigentlich nach einem sooo simplen Problem aus...
50726F626C656D3F204F53492D53636869636874203821
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Eine Deskbar aus eigenem Programm ein-/ausblenden

  Alt 16. Jan 2006, 22:31
ich hab mich ehrlich gesagt noch nicht so wirklich mit Deskbars beschäftigt (wird aber wohl zeit). Aber wenn du der Deskbar eine Message schicken kannst müsste es doch auch möglich sein innerhalb der Deskbar diese Message abzufangen und darauf hinn ein Application.Terminate etc. aufzurufen, je nach dem auf welche Art und weise die Deskbar funktioniert. Auf jeden Fall müsste es doch möglich sein das die Deskbar sich selbst zerstört.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
DummerDickerHase

Registriert seit: 3. Mär 2006
10 Beiträge
 
Delphi 7 Professional
 
#8

Re: Eine Deskbar aus eigenem Programm ein-/ausblenden

  Alt 7. Jun 2006, 13:02
Hallo!

Ich steh vor dem gleichen Problem!

Gibt es da schon was neues?

greetz rabbit
Immerhin weiß ich, dass ich nicht alles weiß!!
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#9

Re: Eine Deskbar aus eigenem Programm ein-/ausblenden

  Alt 7. Jun 2006, 13:23
Das mit WM_Close könnte böse werden da die Deskbar in der Explorer.exe drin hängt( laut paramstr(0)).
aber man müsste die Deskbar vielleicht über regsvr32 deinstallieren können. aber kann verschwindet sie doch erst nach dem neustart
Ich sehe grade dieDeskbar dll exportiert die methode "DllUnregisterServer" vielleicht könnte man in dieser die deskbar bei der deinstalltion verstecken.

Naja das arbeiten mit deskbands ist nicht einfach, vor allen da man die dll nicht einfach erstzen kann.
mfg, björn
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

Re: Eine Deskbar aus eigenem Programm ein-/ausblenden

  Alt 7. Jun 2006, 13:57
Schonmal versucht mit WinSign (oder so) die Windowsnachrichten zu verfolgen und dann per Hand (über's Kontextmenü) das Band auszublenden?

Im Grunde bräuchstest du dann nur rausfinden was du für 'ne Nachricht senden mußt, damit das gewünschte Band verschwindet.

Erstmal die Nachricht (WM_... oder so) rausfinden, dann eventuell im MSDN raussuchen was da für Parameter (in LPARAM und WPARAM) drin sind (oder halt einfach selber versuchen rauszufinden was da drin sein muß).
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:38 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