Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Media Schältflächen wie? (https://www.delphipraxis.net/15685-media-schaeltflaechen-wie.html)

hacker 2. Feb 2004 17:02


Media Schältflächen wie?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Ich habe den neuen Windows Media Player 9 und finde in klasse.Mir ist aufgefallen das wenn man ihn minimiert, dass auf dr Taskleiste Schaltflächen erscheinen für Volumen usw. Meine Frage...wie kann man selber solche schaltflächen in Delphi machen?


Gruss Häcki :hi:

hboy 2. Feb 2004 17:14

Re: Media Schältflächen wie?
 
such mal ob du nen Handle auf die taskleistenschaltfläche kriegst

fkerber 2. Feb 2004 17:16

Re: Media Schältflächen wie?
 
Hi!

[OT]
Welche Version des MediaPlayers issen das genau?
Ich habe auch 9.00 aber ich habe diese Schaltflächen nicht.
Oder muss man die aktivieren?
[/OT]

Ciao fkerber

Dagon 2. Feb 2004 17:20

Re: Media Schältflächen wie?
 
@fkerber: Schau mal hier.

fkerber 2. Feb 2004 17:27

Re: Media Schältflächen wie?
 
HI!

Danke.


Ciao fkerber

MrKnogge 2. Feb 2004 17:29

Re: Media Schältflächen wie?
 
Rechtsklick auf die Taskleiste -> Symbolleisten -> WindowsMediaPlayer

Die Firewall "ZoneAlarm" kann diese auch...

hacker 3. Feb 2004 13:48

Re: Media Schältflächen wie?
 
Hi!

Wie kriege ich denn so ein Handle auf die Taskleistenschaltfläche??


Gruss Häcki :hi:

moritz 3. Feb 2004 13:56

Re: Media Schältflächen wie?
 
Mit FindWindow, getDC usw.
WinSpy hilft dir!

hboy 3. Feb 2004 17:04

Re: Media Schältflächen wie?
 
Zitat:

Zitat von hacker
Hi!

Wie kriege ich denn so ein Handle auf die Taskleistenschaltfläche??


Gruss Häcki :hi:

hehe hab dem gutt lösung (bin da au selber dran*ggg*)

Delphi-Quellcode:
type TBChildAttr = string[255];
const
  task_Button         : TBChildAttr = 'Button';
  task_TrayNotifyWnd  : TBChildAttr = 'TrayNotifyWnd';
  task_TrayClockWClass : TBChildAttr = 'TrayClockWClass';
  task_ToolbarWindow32 : TBChildAttr = 'ToolbarWindow32';
  task_ReBarWindow32   : TBChildAttr = 'ReBarWindow32';
  task_MSTaskSwWClass : TBChildAttr = 'MSTaskSwWClass';
  task_SysTabControl32 : TBChildAttr = 'SysTabControl32';

type TEnumRec = record
  Clienthandle: HWND;
  DestHandle: HWND;
  TBChild:TBChildAttr;
end;
type PEnumRec = ^TEnumRec;

procedure AttatchToTaskBar(const ChildAttr:TBChildAttr;WindowHandle: HWND);
var
  taskbarhandle: HWND;
  EnumRecord: PEnumRec;

  function TaskBarEnumChildProc(const AhWindow : DWORD;const EnumRec: PEnumRec) : Boolean; stdcall;
  var
    buf: PAnsiChar;
  begin
    getmem(buf,256);
    ZeroMemory(buf,length(buf));
    GetClassName(ahwindow,buf,256);
    if buf = EnumRec^.TBChild then EnumRec^.DestHandle := AhWindow;
    freemem(buf,256);
    result := true;
  end;

begin
  getmem(EnumRecord,SizeOf(TEnumRec));
  EnumRecord.TBChild := ChildAttr;
  EnumRecord.Clienthandle := WindowHandle;
  EnumRecord.DestHandle :=0;
  taskbarhandle:= FindWindow('Shell_TrayWnd', nil);
  EnumChildWindows(taskbarhandle,@TaskBarEnumChildProc,Integer(EnumRecord));
  if EnumRecord.DestHandle <> 0 then SetParent(EnumRecord.Clienthandle,EnumRecord.DestHandle);
  freemem(EnumRecord,SizeOf(TEnumRec));
end;

hboy 3. Feb 2004 17:05

Re: Media Schältflächen wie?
 
Delphi-Quellcode:
  AttatchToTaskBar(task_MSTaskSwWClass ,form1.Handle);
und schon is die form drin!
form1.top :=0;

hboy 4. Feb 2004 18:48

Re: Media Schältflächen wie?
 
wie gehts voran?

hacker 4. Feb 2004 19:44

Re: Media Schältflächen wie?
 
Es läuft nich so ganz wie es sollte...Beim minimieren passiert nix :cry:

hboy 4. Feb 2004 19:54

Re: Media Schältflächen wie?
 
gug mal was ich damit gebaut hab:

Netzwerkmonitor

Robert_G 4. Feb 2004 19:59

Re: Media Schältflächen wie?
 
@hboy,
das Programm wird rechtsbündig auf der gesamten Desktophöhe dargestellt.

Mirilin 4. Feb 2004 20:49

Re: Media Schältflächen wie?
 
:hi:

Bei mir wird es gar nicht dargestellt :wink: (ausser unter den Prozessen im TaskManager)

mfg Tobias

Dagon 4. Feb 2004 20:58

Re: Media Schältflächen wie?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bei mir wird auch nichts dargestellt. Nur manchmal so ein kleines "Etwas" (siehe Anhnag).

hboy 5. Feb 2004 11:11

Re: Media Schältflächen wie?
 
könntest dich mal in das reinarbeiten

menu bands

genau das isses. aber irgendwie siehts kompiziert aus...

hboy 5. Feb 2004 11:20

Re: Media Schältflächen wie?
 
Liste der Anhänge anzeigen (Anzahl: 1)
ja ist mit bekannt das der Canvas (win xp) der Taskbar mein Fenster übermalt :cry:

bei 98 und 2000 ist das nicht so:

nun ja ich werds vielleicht auf die harte tour versuchen

mtin 1. Jun 2006 21:43

Re: Media Schältflächen wie?
 
gibts irgendwelche neuen erkenntnisse zu dem Thema?
würde mich dafür auch brennend interessieren, allerdings find ich echt nirgends was funktionsfähiges und steig auch nichmehr durch (überall stehts anders -.-)

hboy 1. Jun 2006 21:56

Re: Media Schältflächen wie?
 
Abend,

naja man kann sich neue symbolleisten registrieren. Für den IE wirds überall beschrieben.
Ich muss gestehen, dass ich mich nicht weiter damit befasst habe, da es soweit tat, letztt hab ich mir XP draufgeklatscht, vielleicht pack ichs wieder an

hboy 1. Jun 2006 23:37

Re: Media Schältflächen wie?
 
so ich denke man kann mit der Implementierung von ...

Delphi-Quellcode:
unit Unit2;

interface
  uses Windows, ActiveX;

  type LONG = Longint;

  type
    PPOINTL = ^_POINTL;
    _POINTL = record
      x: LONG;
      y: LONG;
  end;
    POINTL = _POINTL;

  type DESKBANDINFO = record
    dwMask         : DWORD;
    ptMinSize      : POINTL;
    ptMaxSize      : POINTL;
    ptIntegral     : POINTL;
    ptActual       : POINTL;
    wszTitle{[256]} : Array[0..255] of WCHAR;
    dwModeFlags    : DWORD;
    crBkgnd        : COLORREF;
  end;

  type LPCRECT = PRECT;
  type LPRECT = PRECT;

  type LPCBORDERWIDTHS = LPCRECT;
  type BORDERWIDTHS = TRECT;

  type REFIID = DWORD; // Identifier of the desired Component Object Model (COM) interface - exact definition missing !!!
  type PVOID = ^Pointer;
  type LPVOID = PVOID;
  type LPMSG = PMSG;
  type PIUnknown = ^IUnknown;
const
  // add flags
  DWFAF_NORMAL = $0000; //The docking window is a regular, visible docking window. - defined in msdn
  DWFAF_HIDDEN = $0001; //The docking window is added but is not shown. To show it at a later time, call its IDockingWindow::ShowDW method. - defined in shlobj.h
  DWFAF_GROUP1 = $0002; //Insert the docking window at the end of group 1. - assumed value only! no definition found
  DWFAF_GROUP2 = $0004; //Insert the docking window at the end of group 2. - assumed value only! no definition found

  // remove flags
  DWFRF_NORMAL          = $0000; // The default delete processing is performed. - defined in shlobj.h
  DWFRF_DELETECONFIGDATA = $0001; // In addition to deleting the toolbar, any configuration data is removed as well - defined in shlobj.h

  type IInputObject = interface(IUnknown)
    function HasFocusIO: HRESULT;
    function TranslateAcceleratorIO(lpMsg: LPMSG): HRESULT;
    function UIActivateIO( fActivate : BOOL; pMessage : PMSG): HRESULT;
  end;

  type IPersist = interface(IUnknown)
    function GetClassID(pClassID: TCLSID) : HRESULT;
  end;

  // optional storing for persistent data. must return success even if no data is stored
  type IPersistStream = interface (IPersist)
    function IsDirty: HRESULT;
    function Load(pStm : IStream): HRESULT;
    function Save(pStm : IStream; fClearDirty : BOOL): HRESULT;
    function GetSizeMax(pcbSize : PULargeInteger): HRESULT;
  end;

  type IObjectWithSite = interface(IUnknown)
    function SetSite({*}pUnkSite:PIUnknown): HRESULT;
    function GetSite(riid: REFIID; ppvSite: PVOID{void**}): HRESULT;
  end;

  type IDockingWindowFrame = interface(IOleWindow)
    function AddToolbar({*}punkSrc: PIUnknown; pwszItem : LPCWSTR; dwAddFlags: DWORD): HRESULT;
    function FindToolbar(pwszItem :LPCWSTR; riid : REFIID; ppvObj: LPVOID):HRESULT;
    function RemoveToolbar({*}punkSrc:PIUnknown; dwRemoveFlags:DWORD):HRESULT;
  end;

  type IDockingWindowSite = interface(IOleWindow)
    function GetBorderDW({*}punkSrc:PIUnknown; prcBorder: PRECT): HRESULT ;
    function RequestBorderSpaceDW({*}punkSrc:PIUnknown; pbw : LPCBORDERWIDTHS): HRESULT;
    function SetBorderSpaceDW({*}punkSrc:PIUnknown; pbw : LPCBORDERWIDTHS): HRESULT;
  end;

  type IDockingWindow = interface(IOleWindow)
    function CloseDW(dwReserved: DWORD): HRESULT;
    function ResizeBorderDW(prcBorder: LPCRECT;{*}punkToolbarSite:PIUnknown; fReserved: Boolean):HRESULT;
    function ShowDW(bShow: BOOL):HRESULT;
  end;

  type IDeskBand = interface(IDockingWindow)
   function GetBandInfo(dwBandID: DWORD; dwViewMode: DWORD; pdbi : DESKBANDINFO): HRESULT;
  end;

  type TMyBand = class(TInterfacedObject{IClassFactory,IDeskBand,IObjectWithSite,IPersistStream})

  end;
implementation

end.
beginnen ;) korrigiert mich sollte ich mich irren

arbu man 2. Jun 2006 09:21

Re: Media Schältflächen wie?
 
:cat: hat dazu ein Tutorial geschrieben den Link findest du unter Hier im Forum suchenDesktopCMS

sailxia 2. Jun 2006 10:16

Re: Media Schältflächen wie?
 
search "deskband" in Google or Borland.com

Daniel G 2. Jun 2006 11:02

Re: Media Schältflächen wie?
 
@arbu man:

Zitat:

Leider konnte die Suchanfrage nicht beantwortet werden,
da die gesuchten Begriffe nicht in der Datenbank vorhanden sind.
:stupid:

hboy 2. Jun 2006 12:49

Re: Media Schältflächen wie?
 
also einige Interfaces sind noch in ActiveX drin und ich denke ein guter Anfang ist, eine ActiveX Library zu nehmen, dann hat man auch schon DLLRegisterServer usw.

hboy 2. Jun 2006 13:08

Re: Media Schältflächen wie?
 
Liste der Anhänge anzeigen (Anzahl: 1)
leut... des macht mir angschd...

mtin 19. Jun 2006 21:37

Re: Media Schältflächen wie?
 
irgendwas neues?
ich seh bei dem ganzen kram nich mehr durch :(
@hboy das sieht so leer aus auf deinem screen :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz