我的代码如下:
ShellExecute(Application.Handle,'open',PChar('enc.exe'),PChar(edit1.Text),nil,SW_NORMAL);
但是enc.exe是一个将.bmp文件转化为.jpg的程序,该程序与我所编写的程序在同一个目录下, enc.exe的参数是要转化的文件名(包括全路径)。但是我发现,只有将要转换的文件(即参数PChar(edit1.Text))放在我编写的程序同一目录下,程序才调用enc.exe,如果不是同一目录,shellexecute好像根本就不执行一样。但是我单独启动enc.exe 接任何的路径参数都是可以的。 
请问这是为什么?shellexecute在哪些情况下才不执行?

解决方案 »

  1.   

    我利用shell的返回值看了一下,它返回的是小于32的值,也就是说执行失败,能指教一下为什么会失败吗?
      

  2.   

    我不是用Delphi的,但是看了楼主的这个问题酷似我以前遇到的问题,不知道你的这个enc.exe是不是可以单独独立运行的程序?还是enc.exe需要同级目录下的其他文件的支持。假设你的enc.exe在C:\Project\目录下,同级目录下也有 一个叫Picture.BMP的图片你在C:\Project\下输入 enc.exe picture.bmp 可能可以。但是如果,
    你再C:\下输入 C:\Project\enc.exe C:\Project\picture.bmp 如果你的enc需要其他同级文件的支持,这样enc就不行的再或者你后面的文件没有给绝对路径如:你再C:\下输入 C:\Project\enc.exe picture.bmp 
    我以前用VB写一个程序,第一次这样:
    Shell App.Path & "\data\Cover.exe " & File1 & " " & File2
    没有效果。但是在这行前面把程序运行的目录变成 File1和 File2文件存在的地方,这样:ChDir App.Path & "\Data" 
    Shell App.Path & "\Data\Cover.exe " & File1 & " " & File2这样就好了。不知道我的这次经历和楼主的是不是一样~
    另外我特别希望楼主能把enc.exe共享一下么?我一直在找能安静模式下把BMP转JPG的第三方软件。 [email protected] 谢谢