那位大侠知道delphi中调用大型程序的方法(如,fifa2000,winkawaks等)。
我用winexec('路径',参数)的方法,不管怎样改参数,都没解决。
如:参数1-15,或
  CREATE_SEPARATE_WOW_VDM(仅适用于NT):启动一个16位的windows应用程序时,强迫它在自己的内存空间运行 
  CREATE_SHARED_WOW_VDM(仅适用于NT):启动一个16位的windows应用程序时,强迫它在共享的16位虚拟机内运行 
  CREATE_SUSPENDED:立即挂起新进程。除非调用ResumeThread函数。 
  IDLE_PRIORITY_CLASS:新进程应该有非常低的优先级,只有在系统空闲的时候才能运行。基本值是4 
  HIGH_PRIORITY_CLASS:新进程应该有非常高的优先级,基本值是13 
  NORMAL_PRIORITY_CLASS:标准优先级。如进程位于前台,则基本值是9;如在后台。则优先值是7 
甚至
  ShellExecute(Application.MainForm.Handle,'open',
               PChar(路径),nil,nil,SW_NORMAL);
也不行(但在桌面程序本身却可执行),在此请各位大虾指教,谢谢!

解决方案 »

  1.   

    我认为ShellExecute应该是可以的
    注意ShellExecute的参数
    ShellExecute(Application.MainForm.Handle,'open',
                   PChar(路径),nil,nil,SW_NORMAL);
                                ^不该为Nil的?
    也许是你没有设置工作目录的问题
      

  2.   

    应该是这样
        ShellExecute(Handle,
                     nil,
                     PChar(路径),
                     nil,
                     nil,
                     SW_SHOW);
      

  3.   

    ShellExecute(0,'open','**.exe',nil,nil,SW_SHOW);
    第三个参数为应用程序的名字。
      

  4.   

    你可以察看delphi的帮助嘛!
     winsdk中是这样描述的:ShellExecute(
        HWND hwnd, // handle to parent window
        LPCTSTR lpOperation, // pointer to string that specifies operation to perform
        LPCTSTR lpFile, // pointer to filename or folder name string
        LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters 
        LPCTSTR lpDirectory, // pointer to string that specifies default directory
        INT nShowCmd  // whether file is shown when opened
       );
      

  5.   

    其实,我在发帖之前都试过了,我的问题并不是winecec()与shellExecute()
    不能用,而是运行大程序或某些程序的异常问题,大家可以自己是一下么?
     另外,谁知道CreateProcess()的用法,举个例子,多谢!!