请教如何把文件删除到回收站中。(要求不出现确认对话框,直接删除到回收站中)!!(100分)

  • 主题发起人 主题发起人 001china
  • 开始时间 开始时间
0

001china

Unregistered / Unconfirmed
GUEST, unregistred user!
如题!!
 
hubdog的葵花宝典里有
 
这个可以吗?
我这里能执行,但是执行完后有一条非法操作,可能是需要重新启动计算机了。[:D]
uses ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
var
F: TShFileOpStruct;
begin
F.wnd := Handle;
F.wFunc := FO_DELETE; {操作方式}
F.pFrom := 'e:/aaa/*.*';
F.fFlags := FOF_ALLOWUNDO or FOF_SILENT or FOF_NOCONFIRMATION ;
ShFileOperation(F);
end;
 
这不就是葵花宝典里的吗?不行呀
 
老兄,这个是我刚刚写的,错了保换,绝对不是葵花宝典里面的。
如有雷同,纯属巧合[:D]
还有,这个可以的。我实验了。
 
葵花宝典里面的我刚才找了一下,在这里,没有测试的。
program del;

uses ShellApi;
{ 利用ShellApi中: function SHFileOperation(const lpFileOp: TSHFileOpStruct): Integer; stdcall; }

Var T:TSHFileOpStruct;
P:String;
begin
P:='C:/Windows/System/EL_CONTROL.CPL';
With T do
Begin
Wnd:=0;
wFunc:=FO_DELETE;
pFrom:=Pchar(P);
fFlags:=FOF_ALLOWUNDO
End;
SHFileOperation(T);
End.

注意:
1. 给出文件的绝对路径名,否则可能不能恢复;
2. MS的文档说对于多个文件,每个文件名必须被#)字符分隔,而整个字符串必须用两个#0结束。
 
例子如下:// Delphi

program del;

uses ShellApi;
{ 利用ShellApi中: function SHFileOperation(const lpFileOp: TSHFileOpStruct): Integer; stdcall; }

Var T:TSHFileOpStruct;
P:String;
begin
P:='C:/Windows/System/EL_CONTROL.CPL';
With T do
Begin
Wnd:=0;
wFunc:=FO_DELETE;
pFrom:=Pchar(P);
fFlags:=FOF_ALLOWUNDO
End;
SHFileOperation(T);
End.

注意:
1. 给出文件的绝对路径名,否则可能不能恢复;
2. MS的文档说对于多个文件,每个文件名必须被#)字符分隔,而整个字符串必须用两个#0结束。
 
我已经贴出来了,你再贴一次做甚么?
 
感谢yzhshi这么快就给了答复,不过会出现一条非法操作。
我在其中加了一行代码
F.pTo :=#0#0;
调试通过了。希望你能以后多多指教呀!我的信箱是 001china@21cn.com
100分奉上!!!
 
呵呵,今天在Delphibbs上混了一天。有问题可以给我发email:yzhshi@371.net呵呵。
 

Similar threads

后退
顶部