以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]有些类型文件process打不开怎么办?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69991)

--  作者:loongtai
--  发布时间:2015/6/14 11:52:00
--  [求助]有些类型文件process打不开怎么办?
    Dim Proc As New Process
   
Proc.File = "C:\\data\\abc.png"
   
Proc.Start
出现如下错误:
.NET Framework 版本:2.0.50727.8009
Foxtable 版本:2014.11.11.1
错误所在事件:
详细错误信息:
没有应用程序与此操作的指定文件有关联。

但是如xls文件就可以打开,像这些常见的文件如何能打开?


--  作者:sloyy
--  发布时间:2015/6/14 11:57:00
--  

Dim Proc As New Process
Proc
.File = "Notepad.exe" \'指定要执行的文件
Proc.Arguments =
"c:\\table.txt" \'指定命令行参数
Proc
.Start()


--  作者:loongtai
--  发布时间:2015/6/14 13:04:00
--  
问题还是没能解决,proc.file具体是指要找开的文件,还是所要打开文件的程序文件??
如果是程序文件,那是不是需将程序文件的.exe文件路径全部给出??

--  作者:大红袍
--  发布时间:2015/6/14 13:08:00
--  
 打不开,说明没有对应的软件可以直接打开那个文件。
--  作者:loongtai
--  发布时间:2015/6/14 13:12:00
--  
但是在电脑上可以直接打开的,只是用process 打不开
--  作者:大红袍
--  发布时间:2015/6/14 14:36:00
--  
 不可能,贴出代码。
--  作者:loongtai
--  发布时间:2015/6/14 14:55:00
--  
Dim proc As new Process
proc.file=文件全路径
\'proc.verb="openasreadonly"
Proc.Start()

找到问题所在了,出在proc.Verb这行上,当时考虑到打开的文件都是只读的不能修改所以加了这行代码
加了这行代码,.xls,.doc这类自身有只读属性的可以打开,但是.pdf,png这类没有只读属性的打开就出现问题了。
把这行代码省略掉就好使了。

但是如果我想让文件只能只读还不影响打开如何做呢(除了拷贝后再打开这个方法)??


--  作者:大红袍
--  发布时间:2015/6/14 15:49:00
--  
 只读打开,也是可以修改和另存为的,没什么意义。
--  作者:大红袍
--  发布时间:2015/6/14 15:56:00
--  

 为什么不直接设置成只读?

 

Dim file As New FileInfo("d:\\test.txt")
file.ReadOnly = True

 

 http://www.foxtable.com/help/topics/2707.htm

 


--  作者:loongtai
--  发布时间:2015/6/14 16:19:00
--  
这个方法不错。上传时直接将文件设成只读。