我在VB下需要调用某程序( 如:C:\example.exe ) 
本来,只需要在 button click 事件中调用 
v = shell("C:\example.exe") 
if v > 0 then 
   debug.print "执行成功"
end if 运行立即窗口那里打印了 "执行成功" 但是程序却没有出来然后我在 开始->运行那里键入 C:\example.exe 可以成功呼出程序 
而在我运行 cmd 
在cmd 里面键入
1 cd C:\
2 example.exe
却不可以呼出程序,请问这是为什么,在开始茶单->运行那里可以叫出Example.exe ,在cmd 下面叫不出
PS :这个程序具体是 ACDSee5.1 中的 FotoConvas2.exe 
目标位置是 C:\Program Files\ACD Systems\FotoConvas\2.0\FotoConvas2.exe 

解决方案 »

  1.   

    那如何解决?条伯是一定要自己的程序呼出 目标exe. 
      

  2.   

    你的第二个方法应该为
    运行cmd
    输入c:回车
    输入example回车
    就能运行c:\example.exe
    由于dos下把可执行文件作为过程调用,所以不加后缀.
      

  3.   

    v = shell("C:\example.exe",vbNormalFocus)  试试这个,或者这个 vbMaximizedFocus
      

  4.   

    哦,对了关于你的上面的vb代码应该改为
    v = shell("C:\example.exe",vbnormalfocus)  
    if v > 0 then  
      debug.print "执行成功"
    end if  
    具体请百度,vb shell函数的用法.
      

  5.   

    你是听谁说的,跟过程不过程没任何关系也没这层概念。
    cmd中如果只输入文件名称不带后缀这个是操作系统设计了的。默认会执行可执行文件,优先执行com文件,也就是目录下有example.com和example.exe,那么cmd中输入example执行的是example.com回楼主,既然你在cmd下执行了都不行,那么就不要怪vb了,估计是acd对启动目录有限制什么的。如果一定要模拟的话用下面这个方法。
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPrivate Sub Form_Load()
        ShellExecute hwnd, "open", "C:\example.exe", vbNullString, App.Path, 1
    End Sub