Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: C++/CLI mit .NET ::  Auf Prozess Ende warten?!     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
side-by-side
Unregistrierter




Beitrag 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




Beitrag 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 :leak:
Bitte ein Bit
Mitglied

Benutzerprofil
Anmeldungsdatum: 24.10.2007
Beiträge: 1088
Beitrag Bitte ein Bit Mitglied 17:11:18 22.06.2011   Titel:              Zitieren

Dreimal darfst du raten mit welchen Funktion es Funktioniert. :D

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
Beitrag 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
Beitrag 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! :D


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
Beitrag Martin Richter Moderator 17:54:43 30.03.2012   Titel:              Zitieren

Falsches Forum das ist C++/CLI!

_________________
Martin Richter (MVP für C++) WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written program is its own hell!" The Tao of Programming
C++ Forumbot
Forumbot

Benutzerprofil
Anmeldungsdatum: 29.02.2004
Beiträge: 17119
Beitrag C++ Forumbot Forumbot 19:50:39 30.03.2012   Titel:              Zitieren

Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum WinAPI in das Forum C++/CLI mit .NET verschoben.

Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?


Dieses Posting wurde automatisch erzeugt.

_________________
Besuchen Sie unsere Bücherecke.
http://www.c-plusplus.de/bucher.php
Mit jeder Bestellung unterstützen Sie das Forum.
Jochen Kalmbach
Moderator

Benutzerprofil
Anmeldungsdatum: 11.11.2005
Beiträge: 12080
Beitrag Jochen Kalmbach Moderator 23:37:20 30.03.2012   Titel:              Zitieren

C++/CLI:
process1->WaitForExit();

_________________
Greetings
Jochen
(Microsoft MVP VC++) My blog about Win32 and .NET: http://blog.kalmbach-software.de/ (deutsch)
c++.de :: C++/CLI mit .NET ::  Auf Prozess Ende warten?!   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




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.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.