Blue_Guardian Δημοσ. 10 Σεπτεμβρίου 2005 Δημοσ. 10 Σεπτεμβρίου 2005 Αυτό που θέλω να κάνω είναι να τρέχω εκτελέσιμο πρόγραμμα μέσα από τον κώδικα. Π.χ. Αν (κάτι==true) τότε τρέξε "c:\program.exe" Έχω δοκιμάσει την συνάρτηση execl από το process.h και την system από το stdlib.h αλλά άκρη δεν βγάζω. Έχει κανείς καμια λύση; (Υπ' όψη ότι το εκτελέσιμο είναι σε γραφικό περιβάλλον)
Moderators Praetorian Δημοσ. 10 Σεπτεμβρίου 2005 Moderators Δημοσ. 10 Σεπτεμβρίου 2005 h execl() einai mia lysh... mia allh einai h system() kai mia trith h CreateProcess() ... Proswpika protimw thn trith..
Blue_Guardian Δημοσ. 10 Σεπτεμβρίου 2005 Μέλος Δημοσ. 10 Σεπτεμβρίου 2005 Thanks Praetorian! Από μια σύντομη ματιά στη βοήθεια μαλλόν που θα έχω δουλειά όλο το πρωί άυριο. Δέ βαριέσαι. Οι δύο προηγούμενες πάντως δεν με καλύπτουν. (Η μια μάλιστα υποτίθεται ότι είναι μόνο για console applications).
Ros_Original Δημοσ. 11 Σεπτεμβρίου 2005 Δημοσ. 11 Σεπτεμβρίου 2005 h system() einai h pio aplh kai trexei kateu8eian to .exe (se morfh string) pou 8eleis an kai to spastiko kommati einai to full path pou prepei na dwseis sta windos kai an exeis ellhnika einai ligo spasimo
Blue_Guardian Δημοσ. 12 Σεπτεμβρίου 2005 Μέλος Δημοσ. 12 Σεπτεμβρίου 2005 Η system δεν τρέχει όμως προγράμματα σε γραφικό περιβάλλον. Για την ακρίβεια ανοίγει και τερματίζει ένα command prompt χωρίς όμως να τρέχει την εφαρμογή που θέλω. Όσο για την CreateProcess έχει τόσες παραμέτρους που δεν έχω ιδέα πως να ορίσω και κυριώς να αρχικοποιήσω που γίνεται Ο χαμός. Αν έχει κανείς ένα παράδειγμα κλήσης της ή μπορεί να μου πει πέντε πράγματα πιο σαφή από τη βοήθειά της...
Moderators Praetorian Δημοσ. 13 Σεπτεμβρίου 2005 Moderators Δημοσ. 13 Σεπτεμβρίου 2005 Gia na doume an kati tetoio 8a doulepsei ... > string sPathToExecFolder = "C:\\path_to_exec\\"; // ta pros8eta quotes gyrw apo to path nomizw oti einai aparaithta // ka8ws yparxoun paths me kena...px "Program Files" string ConvertCommand = "\"" + sPathToExecFolder + "HTMLRemover.exe " + "\"" + TmpFileNameArg01+ " " + TmpFileNameArg02; STARTUPINFO siStartupInfo; PROCESS_INFORMATION piProcessInfo; // arxikopoihseis memset(&siStartupInfo, 0, sizeof(siStartupInfo)); memset(&piProcessInfo, 0, sizeof(piProcessInfo)); siStartupInfo.cb = sizeof(siStartupInfo); // ektelesh entolhs if(CreateProcess(NULL, LPSTR(ConvertCommand.c_str()), 0, 0, FALSE, CREATE_DEFAULT_ERROR_MODE, 0, 0, &siStartupInfo, &piProcessInfo) == FALSE) { // kapoio error mynhma ; } else { // Anamonh mexri na kanei exit h nea process WaitForSingleObject( piProcessInfo.hProcess, INFINITE ); // Kleisimo twn handles... CloseHandle( piProcessInfo.hProcess ); CloseHandle( piProcessInfo.hThread ); // .... // .... } edit: Εβγαλα μια γραμμή που δεν έκανε τίποτα. Ο κώδικας είναι παρμένος (και ελαφρά τροποποιημένος) απο ένα παλιό project που είχα κάνει σε Visual C++ με ένα συνάδελφο.
Blue_Guardian Δημοσ. 13 Σεπτεμβρίου 2005 Μέλος Δημοσ. 13 Σεπτεμβρίου 2005 Wow! Ευχαριστώ Preatorian. Είναι κάπως περίπλοκο. Πρέπει να την δω με ηρεμία (όχι απόψε). Εν τω μεταξύ βρήκα τρόπο να κάνω τη δουλειά μου με την execl μόνο που όταν ανοίγει η εφαρμογή κλείνει αρχική (αυτή που την κάλεσε). Είδομεν...
damn3 Δημοσ. 14 Σεπτεμβρίου 2005 Δημοσ. 14 Σεπτεμβρίου 2005 allh api gia na xekiniseis kapoio programma einai h ShellExecute
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.