Prozess Problem
-
Hey
String Pfad = "C:\\exe.exe"; TProcessInformation stgProcessInfo; TStartupInfo stgStartupInfo; setmem(&stgStartupInfo,sizeof(TStartupInfo),0); stgStartupInfo.cb = sizeof(TStartupInfo); CreateProcess(NULL,Pfad.c_str(),NULL,NULL,false,CREATE_DEFAULT_ERROR_MODE | NORMAL_PRIORITY_CLASS,NULL,NULL,&stgStartupInfo,&stgProcessInfo); // dann immer prüfen, ob es noch läuft (mit timer oder so...) if (WaitForSingleObject(stgProcessInfo.hProcess, 0) != WAIT_TIMEOUT) { //läuft nicht mehr }
Dieser Code funktioniert bei mir nicht. Mein Compiler kennt:TProcessInformation bzw. TStartupInfo eben nicht. Nun würd ich gern wissen, was ich includieren muss, dass mein Compiler die Objekte kennt?
Habe schon folgendes includiert:#include <windows.h> #include <conio.h> #include <process.h> #include <fstream> #include <psapi.h> #include <iostream>
-
Hi!
LPSTARTUPINFO LPPROCESS_INFORMATION
grüße
-
Danke!
Aber der ganze Code scheint komplett falsch zu sein.
Nichts funktioniert auch wenn ich anstatt von setmem (memset) verwende so bekomme ich lauter Probleme.stgStartupInfo.cb = sizeof(LPSTARTUPINFO);
cb has no been declared.und wenn ich die zeile "weglasse" und den Create Process Befehl verwende, so bekomme ich auch in diesem 2 Fehler!
27 C:\Dev-Cpp\zeituhr.cpp cannot convert `STARTUPINFOA**' to `_STARTUPINFOA*' for argument `9' to `BOOL CreateProcessA(const CHAR*, CHAR*, _SECURITY_ATTRIBUTES*, _SECURITY_ATTRIBUTES*, BOOL, DWORD, void*, const CHAR*, _STARTUPINFOA*, _PROCESS_INFORMATION*)'usw.
Kannst du mir einen Code posten, der funktioniert und von dem ich auch was lernen kann?
Danke für die Mühe
-
Hi!
STARTUPINFO stgStartupInfo; PROCESS_INFORMATION stgProcessInfo; ::ZeroMemory( &stgStartupInfo, sizeofstgStartupInfo ) ); if ( !CreateProcess(NULL,Pfad.c_str(),NULL,NULL,false,CREATE_DEFAULT_ERROR_MODE | NORMAL_PRIORITY_CLASS,NULL,NULL,&stgStartupInfo,&stgProcessInfo) ) { // Fehlermeldung ausgeben, ... }
So in der Art sollt das laufen!
grüße
-
Danke das hat sehr gut geklappt
Mein restlicher Code war auch noch richtig +ggg+Jetzt habe ich aber noch ne frage:
wenn ich in dev c++ durchkompiliere bekomme ich ja die .exe datei.wenn ich die auf nem anderen pc ausführe funktioniert die jedoch leider nicht, als ob dev c++ standardmäßig keine "release" datei macht.
wenn dies der fall sein sollte wo muss ich die optionen ändern damit ich ne release bekomme?
dnkae
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.