社区
Delphi
帖子详情
delphi中判断文件是否能打开
coderee
2011-09-23 05:45:51
如下代码
shellexecute(handle,'open',pchar('\\192.168.0.6\tz$\aa.pdf'),nil,nil,sw_shownormal);
当客户端机器没有安装pdf阅读器时,执行以上代码没反应,请问这时该如何提示‘无法打开该文件’?
...全文
257
13
打赏
收藏
delphi中判断文件是否能打开
如下代码 shellexecute(handle,'open',pchar('\\192.168.0.6\tz$\aa.pdf'),nil,nil,sw_shownormal); 当客户端机器没有安装pdf阅读器时,执行以上代码没反应,请问这时该如何提示‘无法打开该文件’?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq66826628
2011-09-28
打赏
举报
回复
[Quote=引用 4 楼 jayqiang 的回复:]
可以根据shellexecute的返回值来判断具体情况。
如果返回值 <= 32, 表示执行错误
返回值可能的错误有:
0 内存不足
2 文件名错误
3 路径名错误
11 EXE 文件无效
26 发生共享错误
27 文件名不完全或无效
28 超时
29 DDE 事务失败
30 正在处理其他 DDE 事务而不能完成该 DDE 事务
31 没有相关联的应用程序
……
[/Quote]
正解!
随行的太阳
2011-09-28
打赏
举报
回复
找shellexecute的函数说明。
某某某
2011-09-28
打赏
举报
回复
如果成功,shellexecute返回值大于32,否则小于32,定义什么变量名无所谓的,
在delphi中shellexecute定义如下:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer): HINST; stdcall;
其中HINST定义为HINST = System.HINST;
HINST = THandle;
THandle = LongWord;
hongss
2011-09-28
打赏
举报
回复
变量名你自己随意。
\\192.168.0.6\tz$\'+qybc.FieldByName('tzh').asstring+'.dwg'
先看看这个文件路径你能读出来不,权限够不
coderee
2011-09-28
打赏
举报
回复
[Quote=引用 8 楼 hongss 的回复:]
var
H:LongInt;
begin
H:=shellexecute(...
end;
[/Quote]
定义的变量只能用‘H’吗,用了其它的变量怎么不行。
coderee
2011-09-28
打赏
举报
回复
[Quote=引用 8 楼 hongss 的回复:]
var
H:LongInt;
begin
H:=shellexecute(...
end;
[/Quote]
我的客户端没有安装cad软件,用了如下代码,这个文件实际是存在的,但为什么h的值为2,而不是31
h:=shellexecute(handle,'open',pchar('\\192.168.0.6\tz$\'+qybc.FieldByName('tzh').asstring+'.dwg'),nil,nil,sw_shownormal);
hongss
2011-09-28
打赏
举报
回复
var
H:LongInt;
begin
H:=shellexecute(...
end;
coderee
2011-09-28
打赏
举报
回复
[Quote=引用 4 楼 jayqiang 的回复:]
可以根据shellexecute的返回值来判断具体情况。
如果返回值 <= 32, 表示执行错误
返回值可能的错误有:
0 内存不足
2 文件名错误
3 路径名错误
11 EXE 文件无效
26 发生共享错误
27 文件名不完全或无效
28 超时
29 DDE 事务失败
30 正在处理其他 DDE 事务而不能完成该 DDE 事务
31 没有相关联的应用程序
……
[/Quote]
如何获得shellexecute的返回值?
jingtuzhong
2011-09-27
打赏
举报
回复
先判断路径是否存在,再用messagebox
jayqiang
2011-09-27
打赏
举报
回复
可以根据shellexecute的返回值来判断具体情况。
如果返回值 <= 32, 表示执行错误
返回值可能的错误有:
0 内存不足
2 文件名错误
3 路径名错误
11 EXE 文件无效
26 发生共享错误
27 文件名不完全或无效
28 超时
29 DDE 事务失败
30 正在处理其他 DDE 事务而不能完成该 DDE 事务
31 没有相关联的应用程序
像楼主这样的情况的话,如果客户端没有安装pdf阅读器的话,返回值
应该是31。
所以楼主只要判断返回值是否31即可知道客户端是否安装阅读器
楼主可以试下!
coderee
2011-09-23
打赏
举报
回复
Tregistry类需引用哪个单元?
funxu
2011-09-23
打赏
举报
回复
一个读取键值的例子
procedure TForm1.Button18Click(Sender: TObject);
var reg:Tregistry;
KeyList: TStringList;
i: Integer;
begin
reg:=Tregistry.create;
KeyList := TStringList.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.openkey('HARDWARE\DEVICEMAP\SERIALCOMM', False);
reg.GetValueNames(KeyList);
for i := 0 to KeyList.Count - 1 do
begin
ShowMessage(KeyList[i]);
ShowMessage(reg.ReadString(KeyList[i]));
end;
reg.CloseKey;
reg.free;
KeyList.Free;
end;
funxu
2011-09-23
打赏
举报
回复
我机器上没装,不过思路是
LZ 运行regedit 寻找acrobat的安装路径,然后记下这个键值,每次运行程序时,先读取这个键值,有即可运行pdf
delphi
判断
文件
是否
打开
.txt
delphi
判断
文件
是否
打开
.txt
delphi
如何
判断
程序
是否
已经
打开
delphi
如何
判断
程序
是否
已经
打开
Delphi
打开
并
判断
文件
是否
是TXT文本
文件
.rar
Delphi
打开
并
判断
文件
是否
是TXT文本
文件
,用户浏览
打开
一个
文件
,
判断
是否
是TXT
文件
,若不是直接修改窗口标题文字进行提示: if OpenDialog1.Execute then begin if UpperCase(ExtractFileExt(OpenDialog1.FileName))='.TXT' then begin Caption := ExtractFileName(OpenDialog1.FileName); Edit1.Text := OpenDialog1.FileName; Memo1.Lines.LoadFromFile(OpenDialog1.FileName); end else begin Caption := '此
文件
不是文本
文件
'; Memo1.Lines.Clear; end; end;
Delphi
判断
文件
是否
是文本
文件
类型.rar
Delphi
判断
文件
是否
是文本
文件
类型,这个
判断
程序并不会
打开
文件
,只是通过ExtractFileExt函数来读取扩展名,在窗体上制作一个按钮,将按钮事件添加到该按钮
中
,当用户单击按钮选择指定
文件
后,立即获取扩展名信息并
判断
是否
是文本
文件
,以下为按钮事件代码: Ext := ExtractFileExt(OpenDialog1.FileName); Ext := UpperCase(Ext); if Ext='.TXT' then begin showmessage('是文本
文件
'); RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName); end else begin showmessage('不是文本
文件
'); RichEdit1.Lines.Clear; end; 按钮 事件代码绑定到该按钮的单击事件
中
,单击按钮后即执行程序。
Delphi
中
判断
文件
是否
为文本
文件
的函数
在用
Delphi
编程处理文本
文件
的时候,如果要装载的
文件
比较大,你可能会想在
文件
装载过程
中
提供一个装载进度的提示--那么你就必需自己编写直接通过
文件
打开
/读取函数来装载
文件
内容的函数。
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章