怎样调用系统的‘文件属性’对话框。(12分)

  • 主题发起人 主题发起人 wy0311
  • 开始时间 开始时间
W

wy0311

Unregistered / Unconfirmed
GUEST, unregistred user!
就是文件的右键属性的那个对话框?
 
这个需要建立一个COM,对Windows的Shell,进行扩展,一句两句说不清楚,在hubdog的
《Delphi深入探索》一书中很详细的讲了了如何做,建议你去找一本,从该书的273页看,
即可。
 
>>leohubble:
有电子版吗?给个地址行不?
 
用ShellExecuteEx即可。
 
>>Kingron:
可以详细点吗?举个例子、给句代码什么的。谢谢
 
电子版没有,还是去买书吧:),我可以树上的例程发给你。
 
to leohubble:
那就先给个例程吧,谢谢你!
 
把你的email给我,或者先发email给我:leo1@163.net,毕竟是hubdog兄随书光盘上的东西,在这里发布不好,
私下交流是另外一回事。
 
function SHFileProperties(handle:hwnd;uflags:dword;name:pchar;str:pchar):dword;stdcall;external 'shell32.dll' index 178;

uFlags=1/2;
name:Filename;
str:好像不起作用

其实只是调用ShellExecuteEX
看下面的例子

function ShowFileProperties(FileName: String; Wnd: HWND):Boolean;
var
sfi: TSHELLEXECUTEINFO;
begin
with sfi do
begin
cbSize := SizeOf(sfi);
lpFile := PAnsiChar(FileName);
Wnd := Wnd;
fMask := 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);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowFileProperties('c:/', Handle);
end;
 
Email: wy0311@163.com
谢谢
 
uses shlobj;

procedure PropertiesDialog(action,filename:String);
var
sei: TShellExecuteInfo;
begin
FillChar(sei, SizeOf(sei), 0);
sei.cbSize := SizeOf(sei);
sei.lpFile := PChar(filename);
//sei.lpVerb := 'properties';
sei.lpVerb := PChar(action);
sei.fMask := SEE_MASK_INVOKEIDLIST;
ShellExecuteEx(@sei);
end;
 
多人接受答案了。
 
后退
顶部