function GetFile(Wnd:HWnd):String;
var
ItemCount:Integer;
Item: LV_ITEM;
i: Integer;
begin
Result:='unknown';
ItemCount:=ListView_GetItemCount(Wnd);
frmMain.Lb2.Caption :=IntToStr(ItemCount);
for i:=0 to ItemCount-1 do
begin
Item.iItem:=i;
ListView_GetItem(Wnd,Item);
if Item.state= LVIS_SELECTED then
Result :=AnsiString(Item.pszText);
end ;
end;
还是不行, 每次取到的都是一个“!”
取不到路径和文件名。
function GetFile(hLV:HWnd):String;
var
ItemCount,i:Integer;
ClsName,FName:PChar;
begin
GetMem(ClsName,64);
GetClassName(hLV,ClsName,64);
frmMain.Lb2.Caption :=ClsName;
if ClsName = 'SysListView32' then
begin
GetMem(FName,64);
ItemCount := ListView_GetItemCount(hLV);
frmMain.Lb3.Caption :=inttostr(ItemCount);
if ItemCount > 0 then
begin
for i:=0 to ItemCount-1 do
begin
if ListView_GetItemState(hLV,i,LVIS_FOCUSED) <> LVIS_FOCUSED then Continue;
ListView_GetItemText(hLV,i,0,FName,64);
Result:=AnsiString(FName);
end;
end;
FreeMem(FName);
end;
FreeMem(ClsName);
end;