Registriert seit: 16. Jan 2004
364 Beiträge
|
Re: Media Schältflächen wie?
3. Feb 2004, 18:04
Zitat von hacker:
Hi!
Wie kriege ich denn so ein Handle auf die Taskleistenschaltfläche??
Gruss Häcki
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;
Power is nothing without TControl
|
|
Zitat
|