Ergebnis 1 bis 7 von 7
  1. #1
    I have a sloth! Avatar von h4XX0r-7
    Registriert seit
    20.02.2010
    Beiträge
    310

    Standard Laufende Programme erkennen und schließen

    Hallo zusammen.

    Ich hatte mir vorgenommen mal ein Programm zu schreiben, dass zuerst alle laufenden Programme erkennt.
    Dazu, habe ich schon herausgefunden (), benötige ich wahrscheinlich EnumWindows-Funktionen und Co.
    Hierbei sollen aber auch minimierte Anwendungen erkannt werden, so zum Beispiel ein minimierter Firefox oder ein minimiertes Spiel.
    Hier soll ausgelesen werden, was für Namen unten in der Taskleiste stehen.
    Mein Problem ist, dass ich hier nicht weiß, wie ich die Enum-Funktionen verwenden soll.

    Dann soll nacheinander eine Reihe von Strings abgefragt werden, die dann mit den Namen der Anwendungen verglichen werden.
    Hier sollen die übereinstimmenden Anwendungen sofort geschlossen werden, auch wenn nur ein Teil übereinstimmt. (Wie ist das zu realisieren?)
    Beispiel:

    • Anwender ist auf andkon.com
    • Hat ein Spiel geöffnet
    • Titel des Fensters ist "Raft Wars | 1000+ Free Flash Games | Andkon Arcade - Mozilla Firefox"
    • In der Liste steht der Eintrag "Andkon"
    • Das Fenster soll trotzdem geschlossen werden.

    Hoffe ihr könnt mir bei meinen (Fail-)Fragen helfen,
    h4XX0r-7



  2. #2
    OpCodeKiddy Avatar von EBFE
    Registriert seit
    30.03.2009
    Beiträge
    442

    Standard

    Spricht irgendwas gegen CreateToolhelp32Snapshot mit Process32First/Next? Damit erwischst du auch fensterlose Anwendungen
    CreateToolhelp32Snapshot Function (Windows)
    Beispiele gibt es hier:
    Taking a Snapshot and Viewing Processes (Windows)
    (ansonsten wird die API sehr häufig für Prozessauflistung verwendet:
    Process32First
    Windows Prozess killen mit C++ @ tutorials.de: Tutorials, Forum & Hilfe
    usw)


    Es gibt auch die neumodische API EnumProcesses - und sogar mit Beispielen
    Enumerating All Processes (Windows)

    Hier sollen die übereinstimmenden Anwendungen sofort geschlossen werden, auch wenn nur ein Teil übereinstimmt
    das hat ja nichts mit dem Prozessproblem zu tun, sondern gehört eigentlich zu den Basics bezüglich Umgang mit Strings . STRSTR wäre ein Stichwort:
    C Referenz -strstr Funktion-

    Edit: bei beiden Methoden kommt man relativ einfach an den Prozessnamen. Wenn man unbedingt die Fenster durchsuchen möchte, wird es etwas aufwändiger (aber auch gut möglich, da es schon einige Leute machen wollten und demenstprechend es sogar eine FAQ dazu gibt http://msdn.microsoft.com/en-us/magazine/cc301495.aspx )
    Geändert von EBFE (11.12.2010 um 21:28 Uhr)
    TrueCrypt/RAR/Zip Passwort vergessen und das Bruten dauert ewig? Oder brauchst du fein abgestimmte Wortlisten? Hilf dir selbst mit WLML - Word List Markup Language
    Gib Stoned/Mebroot/Sinowal und anderen Bootkits keine Chance: Anti Bootkit v 0.8.5

  3. #3
    I have a sloth! Avatar von h4XX0r-7
    Registriert seit
    20.02.2010
    Beiträge
    310

    Standard

    Futter für die Augen -.-

    Zur strstr:

    Code:
    #include <string.h>
    using namespace std;
    
    int main
    {
    
    char liste[] = "zocken";
    char handle[] = "Online Games zocken auf ...."
    void *pointer;
    pointer = strstr(liste, handle);
    
    if (pointer != false)
    {
    //terminate-anweisung
    }
    
    }
    Habe ich das soweit richtig verstanden??

    Zur Prozessauflistung:

    Wenn ich die hl.exe (Beispiel) umbenenne in inetexplore.exe, dann wird sie unter dem Namen als Prozess aufrauchen.

    Dann würde das ganze Programm so einfach auszuheblen sein?
    Geändert von h4XX0r-7 (11.12.2010 um 21:49 Uhr) Grund: Automerged Doublepost



  4. #4
    NoClose Wurm
    Registriert seit
    21.03.2008
    Beiträge
    196

    Standard

    In deinem Fall ist es wirklich besser mit EnumWindows das zu machen. Dann die PID holen mit GetWindowThreadProcessId und anschliessend den Prozess killen mit OpenProcess/TerminateProcess.

    Wenn du nur den Tab in Firefox schliessen willst und nicht den ganzen Prozess, dann wird es etwas schwieriger. Da musste mit SendMessage eine spezielle Nachricht schicken. Wie genau die aussehen muss, kannste z.B. im Firefox Quellcode nachlesen...

  5. #5
    I have a sloth! Avatar von h4XX0r-7
    Registriert seit
    20.02.2010
    Beiträge
    310

    Standard

    Verstehe ich das richtig, dass wir mit EnumWindows die Fenster durchnummerieren, mit GetWindowThreadProcessId mittels der gerade ermittelten Nummer dann die ProcessID zu den jeweiligen Fenstern ermitteln und die dannt terminieren?

    Wie jedoch kann ich dann das Vergleichen der Strings erreichen?

    Ich habe dann doch zuerst die nummerierten Fenster, die ProzessID und dann schließe ich jenen Prozess.
    Wo kann ich kontrollieren, dass auch nur die Fenster geschlossen werden, die teilweise mit meiner Liste übereinstimmen?

    Sorry, aber könnte jemand dazu einmal einen Code posten (auch wenn es "nooblike" ist)?

    Euer verzweifelnder h-7



  6. #6
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Zitat Zitat von h4XX0r-7 Beitrag anzeigen
    Sorry, aber könnte jemand dazu einmal einen Code posten (auch wenn es "nooblike" ist)?
    Nein, siehe hier: Free-Hack.com - Ankündigungen im Forum : Ansi-C, C, C++

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  7. #7
    NoClose Wurm
    Registriert seit
    21.03.2008
    Beiträge
    196

    Standard

    Zitat Zitat von h4XX0r-7 Beitrag anzeigen
    Verstehe ich das richtig, dass wir mit EnumWindows die Fenster durchnummerieren, mit GetWindowThreadProcessId mittels der gerade ermittelten Nummer dann die ProcessID zu den jeweiligen Fenstern ermitteln und die dannt terminieren?
    ja, aber enumerate heisst nicht durchnummerieren...

    Wie jedoch kann ich dann das Vergleichen der Strings erreichen?
    strstr

    Wo kann ich kontrollieren, dass auch nur die Fenster geschlossen werden, die teilweise mit meiner Liste übereinstimmen?
    Hab ich dir doch gesagt, du musst unterscheiden zwischen Prozess killen und Tab/Fenster schliessen. Ein Tab in Firefox zu schliessen ist für dich mit deinen wohl sehr mageren Kenntnissen eigentlich unmöglich.


    Kauf dir lieber mal ein Buch: [ame=http://www.amazon.de/von-bis-umfassende-Handbuch-Computing/dp/3836214296/]C++ von A bis Z: Das umfassende Handbuch Galileo Computing: Amazon.de: Jürgen Wolf: Bücher[/ame]

Ähnliche Themen

  1. [html] tag für blinke und laufende schrift
    Von staebche im Forum (X)HTML & CSS
    Antworten: 6
    Letzter Beitrag: 04.09.2008, 14:07

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •