Delphi调用Windows打开方式对话框示例





unit Form_Main;

interface

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

type
  TForm2 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    edtFile: TEdit;
    btSelFile: TButton;
    procedure btSelFileClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

uses
  ShellAPI, ShlObj;

procedure TForm2.btSelFileClick(Sender: TObject);
var
  OpenDialog: TOpenDialog;
begin
  OpenDialog := TOpenDialog.Create(Self);
  if OpenDialog.Execute(Handle) then
  begin
    edtFile.Text := OpenDialog.FileName;
  end;
  OpenDialog.Free;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  if edtFile.Text = EmptyStr then
    Exit;
  ShellExecute(Handle, 'open', 'Rundll32.exe',
    PChar('shell32.dll,OpenAs_RunDLL ' + edtFile.Text), nil, SW_SHOWNORMAL);
end;

procedure TForm2.Button2Click(Sender: TObject);
var
  OpenAsInfo: TOpenAsInfo;
begin
  if edtFile.Text = EmptyStr then
    Exit;
  OpenAsInfo.pcszFile := PChar(edtFile.Text);
  OpenAsInfo.pcszClass := nil;
  OpenAsInfo.oaifInFlags := OAIF_ALLOW_REGISTRATION or OAIF_REGISTER_EXT or
    OAIF_EXEC;
  SHOpenWithDialog(Handle, OpenAsInfo);
end;

end.

下载: http://www.400gb.com/file/19999325

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

螃蟹@横着走

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值