ext. programm mit CreateProcess starten und parameter uebergeben



  • hola leute

    hab da ein problem mit der parameteruebergabe bei CreateProcess

    das starten des programms und darauf warten bis es wieder beendet ist funktioniert. nur klappt das
    mit den parametern fuer das programm nicht so recht.

    in der console muss ich "amlrech.exe lmlink.dat" eingeben.
    mit CreateProcess hab ich folgendes gemacht.

    if(!CreateProcess(NULL,"c:\\msi\\tarife\\leben\\amlrech.exe 
    c:\\msi\\tarife\\leben\\lmlink.dat", NULL,NULL,FALSE,0,NULL,NULL,&info,&pi))
          Memo1->Lines->Add("CreateProcess failed");
    

    hab auch schon im ersten parameter von CreateProcess den app-namen und im 2ten den parameter gehabt.
    funktioniert auch nicht.
    was mach ich da falsch ?

    Meep Meep



  • Also eigentlich sollte das so klappen. Mit Parameter immer beides in lpCommandLine!
    Es liegt definitiv an etwas anderem. Wenn du dir eine kleine Dummy Exe machst, die nur die Parameter mit denen sie aufgerufen wurde ausgibt, wirst du's sehen... kalppt wunderbar! Vielleicht erwartet dein Program, das du starten willst, noch einen weiteren Parameter?



  • Ich hab zufällig das selbe problem hier der aufruf

    char app_spawn[] = "c:\\php\\php-cgi-test.exe"; //sample, modify for your
                                                         //system
      char app_cmdline[] = "C:\\SKIPPSerV\\HTDOCS\\index.php";
    
      //spawn the child process
      if (!CreateProcess(app_spawn,app_cmdline,NULL,NULL,TRUE,CREATE_NEW_CONSOLE,
                         NULL,NULL,&si,&pi))
      {
        ErrorMessage("CreateProcess");
        getch();
        CloseHandle(newstdin);
        CloseHandle(newstdout);
        CloseHandle(read_stdout);
        CloseHandle(write_stdin);
        return;
      }
    

    aber ich habe ein programm was mir alle parameter in ne datei schreibt(php-cgi-test.exe) aber der parameter taucht nicht auf



  • hat niemand ne idee dazu , nen beispiel oder vielleicht nen tutorial dazu?

    ich weis leider nicht woran das liegen könnte da der kommandozeilenparamter ja nicht ans programm weitergereicht wird



  • Benutz ShellExecute, das ist einfacher.


Anmelden zum Antworten