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 wird

    Schreibt 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(); ...



  • Hallo

    @Heinke : es geht um extern Programme, nicht um das eigene

    bis bald
    akari



  • ..viel zu spät


Log in to reply