让自己的软件实现拖拽打开文件

让自己的软件实现拖拽打开文件

作者: 帅宏军

//声明

protected
procedure WMDROPFILES(var Msg : TMessage); message WM_DROPFILES;

------------------------------------------------------------------------------------------------------------------------

//实现

procedure TFormMain.WMDROPFILES(var Msg: TMessage);
var
i, n: Integer;
Buffer: Array[0..255] of Char;
begin
//得到拖拽文件数量
n := DragQueryFile(Msg.wParam, $FFFFFFFF, Buffer, 255);

//处理选择多个文件
for i := 0 to n - 1 do
begin
//获取拖拽文件名
DragQueryFile(Msg.wParam, i, Buffer, 255);

//文件名就在Buffer里面了
if UpperCase(ExtractFileExt(Buffer)) = '.BZLX' then
begin
//判断文件是否已经打开
if UpperCase(Buffer) = UpperCase('test.bzlx') then
begin
MessageDlg('文件test.bzlx已经打开!', (mtInformation),[mbOK],0);
exit;
end;

//打开文件
OpenFile(Buffer);

exit;
end;
end;

//结束拖拽
DragFinish(Msg.wParam);
end;

------------------------------------------------------------------------------------------------------------------------

//初始化

procedure TFormMain.FormCreate(Sender: TObject);
begin
//使窗口句柄可以接收拖拽操作

DragAcceptFiles(Handle, True);

end;

你可能感兴趣的:(打开文件)