Hi,
Ich versuche gerade den Text des markierte Items in der Prozess-ListView im Taskmanager zu erhalten.
Folgendes Vorgehen funktioniert auch im Explorer bei markierten Dateien. Wenn ich das hier ausführe, dann stürzt der Taskmanager ab.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var wnd,Button,ListView: hwnd;
Item: TLVItemA;
Buffer: PChar;
Index: Integer;
begin
wnd := FindWindow('#32770',nil);
wnd := FindWindowEx(wnd,0,'#32770',nil);
ListView := FindWindowEx(wnd,0,'SysListView32',nil);
if ListView <> 0 then
begin
GetMem(Buffer,255);
Index := SendMessage(ListView,LVM_GETSELECTIONMARK, 0, 0);
with Item do
begin
mask := LVIF_TEXT;
iItem := Index;
iSubItem := 0;
pszText := Buffer;
cchTextMax := 256;
end;
ListView_GetItem(Listview,Item);
ShowMessage(Buffer);
end;
end;
Also die Handles stimmen. Ich kann sogar die Schrift und Hintergrundfarbe des Listviews ändern aber bei
ListView_GetItem(Listview,Item);
stürzt mein Taskmanager immer ab
PS: @toms: Dein Winspy hat mir keinen funktionierenden Code ausgespuckt für die ListView!
Delphi-Quellcode:
var
wnd: HWND;
begin
wnd := FindWindow('
#32770','
');
// da fehlt:
// wnd := FindWindowEx(wnd,0,'#32770',nil);
wnd := FindWindowEx(wnd, 0, '
SysListView32',
nil);
if wnd <> 0
then
begin
// ShowMessage('Window found. Handle: ' + IntToStr(wnd));
writeln('
Window found. Handle: ' + IntToStr(wnd));
FlashWindow(wnd);
end;
end.
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."