Programm aus Programm starten
-
Hi!
Ich habe es jetzt mal so reingeschrieben:
ShellExecute(nSuccess, "open","cmd","/c \"J:\\Programmieren\\comp_hds\\batchFiles\\scandrvJ.bat\"", NULL, SW_SHOWNORMAL); cout << nSuccess << "\n";
Mein Programm gibt 000000 aus. Was bedeutet das jetzt? Mein Programm macht aber eine neue Konsole auf, dessen Prompt auf meine hinterste Partition zeigt.
-
MrFryze schrieb:
Mein Programm gibt 000000 aus. Was bedeutet das jetzt?
deine nSuccess (wi auch immer du auf diesen trichter kommst) ist ein fensterhandle und kein rückgabewert.
lies dir doch mal aufmerksam den link durch
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shellexecute.aspMrFryze schrieb:
Mein Programm macht aber eine neue Konsole auf, dessen Prompt auf meine hinterste Partition zeigt.
kann doch sein. denn keiner hier weis was in "scandrvJ.bat" steht.
-
Das, was Du da "nSuccess" genannt hast, ist eigentlich ein Handle auf ein Fenster, was Du bereitstellen solltest, sofern Du an MessageBoxen des zu startenden Programmes interessiert bist...
Wenn Du da nichts reinschreibst, ist klar das er 00000 als nSuccess ausgibt...
-
Wie kann man denn überhaupt auf sowas wirsches kommen?
-
Sorry.
Dummheit oder Unwissenheit, kommt aufs gleiche raus.
Kann ich es so machen? Liefert jetzt die 2.ShellExecute(NULL,"open","cmd ","/c \"J:\\Programmieren\\comp_hds\\batchFiles\\scandrvE.bat\"",NULL,SW_SHOWDEFAULT); error = GetLastError(); cout << error << "\n";
-
MrFryze schrieb:
Sorry. Wie bekomme ich den raus, welchen Wert diese Funktion zurück liefert?
int func() { return 5; } int i = func(...);
somit müsste in "i" 5 stehen.
MrFryze schrieb:
Ich habe nicht wirklich verstanden wofür das Feld da sein könnte und CreateProcess sowas kann dachte ich, dass es eine ähnliche Funktion seine könnte.
denken != wissen
nimm es mir nicht krum aber bevor du irgendwas weiter programmierst kauf dir erst mal ein buch oder lies ein paar tutorials.
-
Hey, super Tipp. Ich glaube um alles nachschlagen zu können brauche ich ein Bibliotek. Ich mag Lerning by doing viel lieber.
-
MrFryze schrieb:
Hey, super Tipp. Ich glaube um alles nachschlagen zu können brauche ich ein Bibliotek. Ich mag Lerning by doing viel lieber.
die bibliothok für winapi http://msdn.microsoft.com/library/
die meisten bücher und tutorials sind "Lerning by doing" und vermutlich wirst
beim programmieren nicht sehr weit kommen.
-
MrFryze schrieb:
Hey, super Tipp. Ich glaube um alles nachschlagen zu können brauche ich ein Bibliotek.
Das ist Quatsch!
MrFryze schrieb:
Ich mag Lerning by doing viel lieber.
Wir auch.
Wenn der Gegenüber sich Mühe gibt und zumindest die Grundlagen kennt.
Jedes Tutorial, jedes Buch, was man autodidaktisch (=alleine) durcharbeitet, ist "Learning by doing"!Sorry, aber eine Frage wie "Wie bekomme ich den raus, welchen Wert diese Funktion zurück liefert?" gehört nicht in ein WinAPI-Forum, sonder wird einem in jeder 2. oder 3. Lektion von C/C++-Tutorials beigebracht!
Dir fehlt schlichtweg Grundlagenwissen, ohne das Du kein Windows-Programm programmieren solltest!
Das, was Du da durch "Learning by doing" Dir selber beibringst wird sich später bitterlich an Dir rächen (durch absolut schlechten Programmierstil und lückenhaftes Wissen (wie sich ja jetzt schon zeigt)).
-
Die Frage,"Sorry. Wie bekomme ich den raus, welchen Wert diese Funktion zurück liefert?", war ein wenig vor eilig. Habs ja jetzt, zwar nur mit eurer Hilfe, rausgefunden. Mir war auch am Anfang nicht bewusst, dass ich die WINAPI brauchen würde.
Ich versuche mich zu verbessern. Danke schön. Bin auch schon von Errorcode 2 auf 32 gewechselt.
-
MrFryze schrieb:
Bin auch schon von Errorcode 2 auf 32 gewechselt.
erfolge sind was schönes
The process cannot access the file because it is being used by another process.
-
Hallo alle zusammen!
Ich bin noch nicht sonderlich weit gekommen. Ich bekomme einen Errorcode 32, wenn das Laufwerk verfügbar ist und einen Errorcode 0, wenn es nicht verfügbar ist. Mein Program startet eine Batchdatei, in diesem Fall für Laufwerk E:, die so aussieht:
E:
cd ..
cd ..
cd ..
cd ..
cd ..
dir /s /b > C:\borland\bcc55\bin\batchFiles\VerzFiles\contentsE.txtIst Laufwerk E: verfügbar, also liegt eine CD-ROM drin, dann bekomme ich einen Errorcode 32. Liegt keine CD im Laufwerk, dann bekomme ich einen Errorcode 0 und die Batchdatei wird ausgeführt. Ist doch komisch, oder?
-
Hallo Leute!
Ich danke für eure unendliche Gedult und Mühe mir bei meinem Problem zu helfen. Ich habe einen anderen Lösungsweg eingeschlagen und mich so weit von dem Thema WINAPI entfernt. Ihr ward mir eine große Hilfe.
Vielen Dank,
Christoph