讓自己的軟體實現拖拽開啟檔案
作者: 帥宏軍
//聲明
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;