得到文件名的过程:
var hand:longint;
function Nwndproc(handle,msg,wparam,lparam:longint):Longint;stdcall;
var i,len:integer;
fname:string;
begin
if msg=wm_dropfiles then
begin
for i:=0 to dragqueryfile(wparam,dword(-1),nil,0)-1do
//当第二个
//参数为$FFFFFFFF,时返回拖动文件数。
begin
len:=dragqueryfile(wparam,i,nil,0)+1;//当第三个参数为nil时返回文件名的长度
setlength(fname,len);
dragqueryfile(wparam,i,pchar(fname),len);//当第三个参数不为nil时,返回拖动
//的文件中第i 个的文件的文件名。
form1.Memo1.Lines.Add(fname);
shellexecute(form1.Memo1.Handle ,'',pchar(fname),'','',sw_show);
end;
dragfinish(wparam);
end;
result:=callwindowproc(pointer(hand),handle,msg,wparam,lparam);
end;
呵,又要改了。