利用windows shell实现多文件属性的改变 !(50分)

  • 主题发起人 主题发起人 lxmzm
  • 开始时间 开始时间
L

lxmzm

Unregistered / Unconfirmed
GUEST, unregistred user!
可以利用TSHELLEXECUTEINFO结构实现文件属性的显示和更改,但是如果选择的是多个文件
又如何实现以上功能呢?
单个文件的 例子:
var i: integer;
sfi: TSHELLEXECUTEINFO;
filename: string;
filePath: string;
Fname: string;
begin
filename := FileListView.Selected.Caption;
filepath := FileListView.Selected.SubItems.Strings[1];
if FileExists(filepath + filename) = false then
begin
MessageDlg('选择的文件不存在!', mterror, [mbYes], 0);
abort;
end
else
fname := filepath + filename;
with sfi do
begin
cbSize := SizeOf(sfi);
lpFile := PAnsiChar(Fname);
Wnd := Wnd;
fMask := SEE_MASK_IDLIST or SEE_MASK_NOCLOSEPROCESS or SEE_MASK_INVOKEIDLIST or SEE_MASK_FLAG_NO_UI;
lpVerb := PAnsiChar('Properties');
lpIDList := nil;
lpDirectory := nil;
nShow := 0;
hInstApp := 0;
lpParameters := nil;
dwHotKey := 0;
hIcon := 0;
hkeyClass := 0;
hProcess := 0;
lpClass := nil;
end;
// Result :=ShellExecuteEX(@sfi);
ShellExecuteEX(@sfi);
 
写一个循环来处理阿
 
filename放多个文件名,用#0隔开,结尾用2个#0.
 
把文件列表放在数组中处理也可以!
 
后退
顶部