(CodeLib-Manager)
Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
Delphi XE Professional
|
Re: Winamp > Aktueller Titel
9. Jan 2005, 19:18
Hi!
Ich hab da mal was kleines vorbereitet:
Delphi-Quellcode:
function EnumWindowsProc(const hWnd : Longword; Param: lParam): LongBool; stdcall;
var
Buffer: array[0..1024] of Char;
begin
Result := True;
GetWindowText(hWnd, Buffer, sizeof(Buffer));
if lstrlen(Buffer) = 0 then
begin
exit;
end
else
begin
Form1.listbox1.items.Add (buffer);
end;
end;
Delphi-Quellcode:
function GetText(Wnd: HWND): string;
var
textlength: Integer;
Text: PChar;
begin
textlength := SendMessage(Wnd, WM_GETTEXTLENGTH, 0, 0);
if textlength = 0 then Result := ''
else
begin
GetMem(Text, textlength + 1);
// Änderung ->
if Assigned(Text) then
try
SendMessage(Wnd, WM_GETTEXT, textlength + 1, Integer(Text));
// Result := Text;
// Änderung ->
SetString(Result, Text, lstrlen(Text));
finally
FreeMem(Text);
end;
end;
end;
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
i: integer;
LPARRAM : DWord;
str: string;
begin
if not WinAmp1.Checked then
begin
listbox1.Clear;
EnumWindows (@EnumWindowsProc,Integer(@LPARRAM));
for i:=0 to Listbox1.Items.count-1 do
begin
if pos(' - Winamp', listbox1.Items[i]) <> 0 then
begin
str:=copy(listbox1.Items[i],1+pos(' ', listbox1.Items[i]),pos(' - Winamp', listbox1.Items[i])-1-pos(' ', listbox1.Items[i]));
RegistryEintrag('['+str+']');
Desktopschrift(str);
end;
end;
end;
end;
Ist aus nem Programm rauskopiert, ich hoffe, ich habe alle relevanten Stellen...
Ciao Frederic
Frederic Kerber
|
|
Zitat
|