delphi 实现文件拖放完整代码


本文整理自网络,侵删。

  注:程序实现的是程序中接受外部文件拖放,直接获取拖放文件的文件名,支持多文件 unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, shellapi;

type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
procedure DropFiles(var Msg: TMessage); message WM_DropFILES;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

{ UAC权限 使用这三行

ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);

ChangeWindowMessageFilter(WM_COPYDATA, MSGFLT_ADD);

ChangeWindowMessageFilter(WM_COPYGLOBALDATA , MSGFLT_ADD);

}

DragAcceptFiles(Handle, True);
end;

procedure TForm1.DropFiles(var Msg: TMessage);
var i, Count: integer;
buffer: array[0..1024] of Char;
begin
inherited;
Count := DragQueryFile(Msg.WParam, $FFFFFFFF, nil, 256); // 第一次调用得到拖放文件的个数
for i := 0 to Count - 1 do
begin
buffer[0] := #0;
DragQueryFile(Msg.WParam, i, buffer, sizeof(buffer)); // 第二次调用得到文件名称
Memo1.Lines.Add(buffer);
end;
end;

end.

相关阅读 >>

Delphi 编写ie代理服务器

Delphi filesearch 获取指定文件夹下所有文件包括隐藏文件

Delphi 如何刷新文件图标

Delphi 移动windows开始按钮到任务栏中的任何位置

Delphi 免杀下载者源代码

Delphi winapi: getforegroundwindow - 获取前台窗口的句柄

Delphi 测试 tstreamwriter、tstreamreader

Delphi xe3中如何crc验证函数?

Delphi中实现控件的拖拽

Delphi 动态创建组件,单个创建、单个销毁

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...