我在这儿恭候大家:Winexec('d:/Exb/lib/ExbShow.exe c:/zz.exb',sw_Normal);提示:非预期的文件格式,它是什么意

  • 主题发起人 主题发起人 guan1573
  • 开始时间 开始时间
来晚了!
其实这个问题应该是你调用的那个执行文件不支持参数执行的原因!
如果在cmd方式下:exbshow c:/zz.exb
不能够执行,那么就证明了我说的。
 
简单,原因就是exbshow.exe 是个无参数的可执行文件,所以你的命令行为
Winexec('d:/Exb/lib/ExbShow.exe c:/zz.exb',sw_Normal)
时,所报的错实际上是有c:/zz.exb引起的,一般当用winexec
会根据括号内的内容用windows的shell来执行其中的东西,
若你直接写Winexec(c:/zz.txt',sw_Normal),系统会直接调用与他关联的程序
打开zz.txt。 若括号内的内容为exe文件,系统就执行它以及它后边的参数。
这样看来'd:/Exb/lib/ExbShow.exe是不支持参数的。所以会报错。



 
简单,原因就是exbshow.exe 是个无参数的可执行文件,所以你的命令行为
Winexec('d:/Exb/lib/ExbShow.exe c:/zz.exb',sw_Normal)
时,所报的错实际上是有c:/zz.exb引起的,一般当用winexec
会根据括号内的内容用windows的shell来执行其中的东西,
若你直接写Winexec(c:/zz.txt',sw_Normal),系统会直接调用与他关联的程序
打开zz.txt。 若括号内的内容为exe文件,系统就执行它以及它后边的参数。
这样看来'd:/Exb/lib/ExbShow.exe是不支持参数的。所以会报错。
 
你们说得我懂了,那我得软件不支持参数执行我,那我怎样才能在程序中用它打开文件?
你们怎么才来,急死我了!
 
这样试试:
先把 .exb的文件默认打开的方式指定为: 总是用exbshow.exe 打开,
说不定这样可行了。
 
uses shellapi;
用ShellExecute试试,
ShellExecute(handle,'open',pchar('d:/Exb/lib/ExbShow.exe'),'',pchar('c:/zz.exb'),SW_SHOW);
 
后退
顶部