Suche Code: Externe Prozesse beenden



  • Hi!

    Ich suche nach einem (falls möglich) einfachen Code um einen EXTERNEN Prozess zu beenden!

    Bitte denkt daran, dass das ich den Code in ein Konsolenprogramm (DOS) einbauen will!

    Compiler: DJGPP v2

    Danke!



  • Hallo,

    das ist mit Standard-C++ nicht moeglich. Dazu musst du die API deines OS nutzen.

    Am besten du fragst mal im entsprechenden Forum nach.

    mfg
    v R



  • Dieser Thread wurde von Moderator/in volkard aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.

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

    Dieses Posting wurde automatisch erzeugt.



  • Was soll es nun werden?

    Ein DOS-Programm für das Betriebssystem DOS oder ein Konsolenprogramm für das Betriebssystem Windows?

    MfG SideWinder



  • Ein Konsolenprogramm für Win32!



  • tobiask2 schrieb:

    Hi!
    Ich suche nach einem (falls möglich) einfachen Code um einen EXTERNEN Prozess zu beenden!
    Bitte denkt daran, dass das ich den Code in ein Konsolenprogramm (DOS) einbauen will!
    Compiler: DJGPP v2
    Danke!

    DOS? meinst du wirklich DOS? wie haste denn da nen EXTERNEN prozess am laufen?
    kenne da keinen einfachen weg. der (externe) prozess kann doch nur ein anderes prog sein, das sich per TSR (termnate and stay resident) beim abgeben der rechenzeit nicht aus dem speicher hat schmeißen lassen. um weiterzuleben, muß es sich in ingendwelche intterropts reingehöökt haben. du müßtest die abschnippeln. aber du kennst die alen werte nicht, die in die interruptvektoren gehören. also vorher die altenm werte aufnehmen, dann tsr starten, dann kannste es später jederzeit kappen. aber was, wenn das prog beim beenden was machen muß? disk-caches flushen? nee, ich denke, es gbt keinen sauberen weg unter dos.
    evtl kurz die interrupts mit sti/cli sperren und das prog vollhauen mit nops und am ende nen kurzen stück code, das aagt "ich will mich freigeben". 🙂
    löst aber immernochnicht irgend eines der genannten probleme.

    sag bescheid, wenn es doch nicht DOS war, sondern windows mit einem konsolenfenster. dann mußte nämlich nur den DJGPP mal loslassen und MINGW anmachen. funktioniert ja genau gleich. sind beides GCC-Ports. nur kann MINGW auch die ganzen windows.sachen und da wird's schon ein TerminateProcess oder irgend sowas geben.



  • Umsonst die Müh' 😉

    Also für Win32 gibts TerminateProcess() - bringt einen Prozess um

    BOOL TerminateProcess (
        HANDLE hProcess,    // Handle auf den Prozess
        UINT uExitCode    // Exitcode
    };
    

    Ein Handle auf dem Prozess hast du ja? Oder gehts auch darum dieses zu finden?

    MfG SideWinder



  • Ich sollte mal erklären, was das Programm machen soll!

    Also:

    Das Programm soll BESTIMMTE Dateien auf der Festplatte suchen.
    Wenn es diese Dateien gefunden hat, soll es überprüfen, ob diese Dateien im momment laufen
    Wenn die Dateien laufen, soll der Prozess beendet werden.
    Wenn der Prozess beendet wurde, soll die Datei gelöscht werden...

    Ich hab vor dieses Programm zu schreiben, weil auf meinem PC des öfteren aktive Viren auftauchen...und da ist so ein Programm ganz nützlich!


Anmelden zum Antworten