3

所以基本上当我尝试打开默认使用 Adob​​e Reader 打开的 Windows 的 PDF 文件时,什么也没有发生。如果我将默认程序设置为 Internet Explorer,它可以工作..

这是我的代码

var
openDialog : TOpenDialog;    // Open dialog variable
begin
  openDialog := TOpenDialog.Create(self);
  openDialog.InitialDir := MaskEditLocation.Text;
  if openDialog.Execute then
   ShellExecute(Handle, PChar('Open'), PChar(openDialog.FileName), nil, nil,
   SW_SHOWNORMAL);
  openDialog.Free;
end;

有任何想法吗?

谢谢您的帮助!

4

1 回答 1

20

您永远不应该假设应用程序已经注册了一个特定的动词,例如openor run。当您需要默认行为时,只需将动词留空,然后让 Windows 决定:

ShellExecute(Handle, nil, PChar(OpenDialog.FileName), nil,  nil, SW_SHOWNORMAL);
于 2012-06-01T20:24:46.143 回答