| Autor |
Nachricht |
side-by-side
Unregistrierter
|
side-by-side Unregistrierter
16:38:09 22.06.2011 Titel: |
Auf Prozess Ende warten?! |
Zitieren |
Gibt es eine Funktion mit der ich einen Prozess erzeugen kann und danch solang wartet bis der prozess endet.
Genau so wie man das mit createthread + waitforsingleobject() machen kann! Aber eben für ein Process. |
|
|
|
 |
CrtPrcss
Unregistrierter
|
CrtPrcss Unregistrierter
17:07:30 22.06.2011 Titel: |
|
Zitieren |
| side-by-side schrieb: | | createthread waitforsingleobject() | Wenn man diese beiden Funktionen kennt, impliziert es sich doch schon von selbst, was du Suchst |
|
|
|
 |
Bitte ein Bit
Mitglied
Benutzerprofil
Anmeldungsdatum: 24.10.2007
Beiträge: 1088
|
Bitte ein Bit Mitglied
17:11:18 22.06.2011 Titel: |
|
Zitieren |
Dreimal darfst du raten mit welchen Funktion es Funktioniert.
CreateProcess + WaitForSingleObject
| C++: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | STARTUPINFO si;
PROCESS_INFORMATION pi;
DWORD ExitCode;
ZeroMemory(&pi, sizeof(pi));
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
if (CreateProcess(NULL, "abc.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
WaitForSingleObject(pi.hProcess, INFINITE);
GetExitCodeProcess(pi.hProcess, &ExitCode);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
} | | |
|
|
|
 |
yahendrik
Mitglied
Benutzerprofil
Anmeldungsdatum: 30.04.2011
Beiträge: 237
|
yahendrik Mitglied
17:19:04 22.06.2011 Titel: |
|
Zitieren |
Du kannst auch ShellExecuteEx verwenden. Wenn du fMask auf SEE_MASK_NOCLOSEPROCESS setzt, sollte der Member hProcess ungleich 0 sein und du kannst anschließend ebenfalls mit WaitForSingelObject auf das Prozessende warten. Das Handle müsstest du dann freigeben. |
_________________ Herzliche Grüße, Hendrik.
|
|
 |
Ialokim
Mitglied
Benutzerprofil
Anmeldungsdatum: 10.03.2012
Beiträge: 20
|
Ialokim Mitglied
15:58:10 30.03.2012 Titel: |
|
Zitieren |
Genau das gleich Problem wie side-by-side hab ich auch, nur unter Visual C++ mit dem Visual C++-Programm von Microsoft.
Kann man das auch in diesen Quellcode einbauen...?
| C++: | 1 2 3 4 5 6 7 8 9 | process1->StartInfo->FileName = "cmd";
process1->StartInfo->Arguments = arguments + " | clip && exit";
process1->StartInfo->UseShellExecute = false;
process1->StartInfo->CreateNoWindow = true;
process1->Start();
this->UseWaitCursor = true;
process1->Close();
//hier soll er warten, bis der Prozess wirklich komplett ausgeführt ist
files = Clipboard::GetText(); | |
Wenn er nicht wartet, hat er das ganze noch nicht in der Zwischenablage, und wenn ich diese dann abrufe, kommt was ganz anderes...
LG, Ialokim
EDIT: Ja, entschuldigung für das falsche Forum, ich dachte, weil es hier drin ja auch schon darum ging... Hat sich aber eh erledigt! |
Zuletzt bearbeitet von Ialokim am 19:17:11 30.03.2012, insgesamt 1-mal bearbeitet |
|
 |
Martin Richter
Moderator
Benutzerprofil
Anmeldungsdatum: 18.04.2006
Beiträge: 14184
|
Martin Richter Moderator
17:54:43 30.03.2012 Titel: |
|
Zitieren |
|
 |
C++ Forumbot
Forumbot
Benutzerprofil
Anmeldungsdatum: 29.02.2004
Beiträge: 17119
|
C++ Forumbot Forumbot
19:50:39 30.03.2012 Titel: |
|
Zitieren |
|
 |
Jochen Kalmbach
Moderator
Benutzerprofil
Anmeldungsdatum: 11.11.2005
Beiträge: 12080
|
Jochen Kalmbach Moderator
23:37:20 30.03.2012 Titel: |
|
Zitieren |
|
 |
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|
|