Windows.WinExec(PAnsiChar(ExtractFilePath(Application.ExeName)+ExecFileName),0);
最近几天在代码中编写了该代码。用来执行某个制定的文件。谁知道,当执行到该行后,cpu使用率到了100%。同时进程中多了n个ExecFileName所代表的进程。等到该函数返回了,进程中有没有一个ExecFileName所代表的程序。(就是在进程列表中没看到有ExecFileName的进程名。)
个位名家过来看看,到底出了什么问题。

解决方案 »

  1.   

    ExecFileName这个文件是存在的。先去吃饭。等会就回来看看。
      

  2.   

    WinExec返回值 
    Long,大于32表示成功,请参考FindExecutable函数 
    参数表 
    参数 类型及说明 
    lpCmdLine String,包含要执行的命令行 
    nCmdShow Long,定义了以怎样的形式启动程序的常数值。参考ShowWindow函数的nCmdShow参数 ======================================LZ好好看吧 相信你能明白的 
      

  3.   

    nCmdShow,建议您用SW_SHOW这个值,即使不用其它值我也建议您用常量值,而不是常数来表示。
      

  4.   

    SW_SHOW:这个常量放在哪个单元文件中?
      

  5.   

    SW_SHOW:用了,故障还是这样。
      

  6.   

    好大一佗屎,我将ExecFileName改为'' ,就是不用变量表示,直接使用字符串,可以了。看来看是出在string到PAnsiChar的转换中。
    或者改为:PAnsiChar(ExtractFilePath(Application.ExeName)+PAnsiChar(ExecFileName);
    没有什么问题了。一切正常。