xiongdingfu
2017-11-18 04:39使用ShellExcete打开pdf文件。请问大侠这段程序错误出现在哪儿?该怎么改正确?
10unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ShellAPI;
type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function TeShuFileName(FFilename: string): string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.TeShuFileName(FFilename: string): string;
var
i:Integer;
s:string;
begin
for i := 1 to Length(FFilename) do
begin
if (FFilename[i]=',') or (FFilename[i]=',') or//路径中逗号
(FFilename[i]='?') or (FFilename[i]='?') or//路径中有问号
(FFilename[i]='《') or (FFilename[i]='《') or //路径中有引号
(FFilename[i]='“ ') or (FFilename[i]='“ ') or //引号
(FFilename[i]='”') or (FFilename[i]='”')
then
s :=s +'"'+FFilename[i]+'"' //加上双引号
else
s :=s+FFilename[i];
end;
FFilename:='"'+FFilename+'"';//路径中有空格
s:=FFilename;
Result :=s;
end;
procedure TForm1.Button1Click(Sender: TObject);//处理文件名中有标点符号,如引号、书名号的情况
var
str:string;
s:string;
begin
if OpenDialog1.Execute then
begin
str:=OpenDialog1.FileName;
end;
str:=TeShuFileName(str);
s:=Format('/e,/select,%s',[str]);//format的用法
s:='"'+s+'"';//处理带空格的情况
ShellExecute(0, 'open', 'AcroRd32.exe', PChar(s), '', SW_SHOWMAXIMIZED);
end;
end.
- 点赞
- 回答
- 收藏
- 复制链接分享
1条回答
为你推荐
- 如何使用php将keynote文件转换为PDF文件?
- plugins
- php
- 1个回答
- 梨发送的MIME PDF文件附件未打开
- mpdf
- pear
- php
- 1个回答
- PHP - 从链接下载pdf文件并保存在本地文件夹中
- php
- 3个回答
- PDF文件无法打开
- symfony
- fpdf
- php
- 1个回答
- 急!!!jquery.media.js 支持移动端在线预览pdf文件吗?
- html5
- javascript
- jquery
- 1个回答