Funktion zum Schliesen eines Programmes?
-
Hallo, wollte mal fragen ob jemand eine Funktion kennt mit den man ein Laufendes Programm Schliesen kann?(das laufende ist ein anderes als das was ich eben programmier)
wär super wenn ihr nen synthax beispiel dazusschreibt
Danke mfg Kevin
-
Application->Terminate();
-
kann man damit ein externes programm schliesen?
mfg kevin
-
Hallo
nein, dazu brauchst du den WinAPI-Befehl TerminateProcess mitsamt passendem Prozeß-Handle.
bis bald
akari
-
hui ich poste mal mein code... vieleicht kannst dann evtl helfen...
{ bool ein = false; s++; // nach 5 sek startet er das programm if (s == 5) { ShellExecute(0, "open", "D:\\Eigene Dateien\\Schauen\\Client\\Project1.exe" ,0, 0, SW_SHOWNORMAL); ein = true;// ab jetz soll die datei unten ausgelesen werden } // wenn 60 sek rum sind setze m (minute) auf 1 und s (sekunde) auf 0 if (s == 60) { m++; if (m == 2) { // externes Programm Schliesen ein = false; // jetz soll er nichtmehr die datei unten auslesen) m = 0; } s = 0; } if (ein == true) { Memo1->Lines->LoadFromFile("Client\\Test.log"); // lese wert aus datei // die datei wird von den oben ausgeführten programm jede sek neu geschrieben } }Hab auch das problem das wenn ich das andere programm über dieses ausführ nur 1 mal die datei schreibt danach bleibt der wert so (es schreibt nicht nochmal)
Wenn ich es einzeln ausführ funktioniert es aber
Wär super wenn ihr helfen könntet
MFG kevin
-
Hallo
einen gültigen Process-Handle für TerminateProcess bekommst du mit ShellExecuteEx oder CreateProcess anstelle von ShellExecute.
bis bald
akari
-
Hatte übersehen, dass es ein anderes Programm sein soll.
Ggf. auch WM_CLOSE senden, mit SendMessage
-
Danke... ich schau gleich nochma...
weißt du an was mein 2. prob Liegen kann?
also das wenn das externe prog im jetzigen ausgeführt wirdSchreibt er nicht jede Sekunde Neu Die test.log wie ichs gecodet habe
Jedoch wenn ich es einzeln ausführ macht er es wunderbar
@ Christian kannst du noch ein Syntax beispiel schreiben bitte?

MFG kevin
-
probiere doch selber mal auf den syntax zu kommen!

1. schreibst du in deinem code nirgends in einer datei. sondern liest diese nur ein.
2. machst du keine test ob shellexecute erfolgreich war oder nicht
3. was heißt einzeln ausführen?
-
Ich schreibe in den Programm was mit ShellExecute ausgeführt wird... das programm wird erfolgreich geladen...
einzeln = ich lass das shellexecute weg und starte das andere programm manuell
Ich lese ja Zahlen als String ein ...
Wandle diese dann mit StrToInt um
dann kommt die meldung z.b. 15 is not a valid intager value.
KA warum. er hat auf jedenfall nen problem mit den umgewandelten wert

wie bekomm ich mit ShellExecuteEx genau die ID raus?
MFG Kevin
-
http://www.marquardtnet.info/cecke/quickies.1/1_quicky_34.html
Finden des FensterHandles für SendMessage & WM_CLOSE
-
Bezüglich ShellexecuteEx gibt es einen Beitrag in der FAQ
2. Seite
-
Das geht doch auch mit Close(); ...
-
-
..viel zu spät