ShellExeCute(Handle,Nil,'E:\Project1.exe'Nil,Nil,SW_SHOWNORMAL);
Project1.exe是读INI的,每次启动都找不到INI文件,为什么?

解决方案 »

  1.   

    双击Project1.exe启动这个程序就可以读到INI文件,请问大家是为什么?
      

  2.   

    你的程序里面调用了这个函数GetCurrentDir;
    你用这个ExtractFileDir(Params(0))替换它就行了,原因就不说了,看一下帮助
      

  3.   

    我没有调用GetCurrentDir这个函数啊
    路径也是对的啊
      

  4.   

    你取INI文件路径的代码贴出来,让大家看看!!
      

  5.   

    我的原码是这样的
    ShellExeCute(Handle,Nil,PChar(edit4.Text),Nil,Nil,SW_SHOWNORMAL);
    程序的路径是用edit4.Text传进来的。
    edit4.Text是读INI传进来的,如果从新指下路径就可以了,不明白是为什么
      

  6.   

    'E:\Project1.exe'=>pchar('E:\Project1.exe') 试试看吧
      

  7.   

    我掉用的程序是第三方程序我该不了的,
    路径是用edit4.Text传进来的
    edit4.Text又读的是我自己的INI传进来的
    我的INI是这样的:
    GetMem(MySysPath,255);
    GetSystemDirectory(MySysPath,255);
    myini:=tinifile.Create(MySysPath+'\aaa.ini');
    edit4.Text:=myini.ReadString('setup','object','C:\Program Files\abc.exe');
      

  8.   

    注意工作路径问题
    试加上MySysPath:=Trim(MySysPath)去掉无效部分单步跟踪看看了
      

  9.   

    我的程序的INI可以读到,
    我用ShellExeCute掉用的这个程序读不到它的INI文件
    传递的字符串也没有空格
    为什么呢
      

  10.   

    ShellExeCute(Handle,Nil,'E:\Project1.exe'Nil,'E:\',SW_SHOWNORMAL);
      

  11.   

    或者你的Project1在读ini文件的时候给出绝对路径也可以啊
    iniFileName:=ExtractFilePath(Application.ExeName)+'project1.ini';
      

  12.   

    if DirectoryExists('路径') then
       ShellExeCute(Handle,Nil,'E:\Project1.exe',Nil,Nil,SW_SHOWNORMAL);