Hintergrundprogramme schreiben?



  • Hilfe!!
    Wie kann man Programme schreiben ,die im Hintergrund, also ohne eigenes Fenster laufen?

    Danke im vorraus



  • Mit Standard-C++ kannst du afaik nur Konsolen-Programme schreiben 😉 Also musst du dich dann auf ein Betriebssystem festlegen, unter Windows sähe dein Programm so aus:

    #include <windows.h>
    
    int WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, int )
    {
        while ( 1 )        // Endlosschleife..
            Sleep( 1 );    // .. die aber nicht für 100% Auslastung sorgt
        return 0;
    }
    


  • Das kann man durchaus. Z.B. brauchst du das Fenster einer Anwendung ja nicht sichtbar machen 🙂



  • Ich meinte ,dass nicht einmal die Console geöffnet wird.



  • most stupid asker schrieb:

    Ich meinte ,dass nicht einmal die Console geöffnet wird.

    Joar, wenn du eine Windows-Anwendung schreibst, öffnet sich einfach keine Konsole.. Wenn du magst, kannst du den Code auch einfach mal ausprobieren.. Was für ein BS hast du denn?



  • hi
    ich weis dass der artikel schon etwas älter ist, aber ich wollte einfach kein neuen aufmachen, da meine frage hier perfekt rein passt:
    ich habe eine batch-datei geschrieben, die bestimmte programme killt (den prozess) und nun hab ich 2 fragen:
    1.frage
    wie müsste ich ein hintergrundprogramm schreiben, in dem folgendes passieren soll:
    user drück ne bestimmte tastenkombination und die batch-datei wird ausgeführt

    2.frage
    geht es, dass man das programm welches gerade im vordergrund läuft, mit ner bestimmten tastenkombination killt (prozess)?

    mfg
    ani

    ps: ich hab w$ professional und benutzte diese visual c++ 2005 express edition -.-'



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

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

    Dieses Posting wurde automatisch erzeugt.



  • keiner mehr lust mir zu antworten?



  • Doch doch, geht ja nicht alles sofort 😉 Und bei so unkonkreten Fragen ist es auch immer nicht so einfach, zu antworten.

    So, zuallererst zum Thema "Hintergrundprogramm": Es ist nicht so, dass man etwas tun muss, um sein Programm im Hintergrund laufen zu lassen - denn das ist der Normalzustand.
    Für deine beiden Fragen benötigst du 3 Sachen:
    - Tastendrücke abfangen: Die Board-Suche nach "SetWindowsHookEx" sollte helfen, damit kannst du alle Tastatureingaben die irgendwo stattfinden, abfangen.
    - Batch-Datei starten: Siehe http://www.c-plusplus.net/forum/viewtopic-var-p-is-941047.html#941047
    - Prozess suchen und killen: "EnumProcesses" bzw "FindWindow" falls der Prozess ein Fenster hat und "TerminateProcess" (Dank an Black Shadow :))



  • Hooks finde ich hier übertrieben. Für eine Tastenkombination anfang, google mal nach global hotkeys bzw nach der Funktion RegisterHotKey(). Um die WM_HOTKEY nachricht zu kriegen, brauchst du allerdings ein Fenster. Hierfür erstellst du einfach in deiner WinMain eines, welches nicht WS_VISIBLE hat, es also nicht sichtbar ist.
    Um einen Prozess zu suchen bietet sich auch CreateToolhelp32Snapshot() an. "Killen" tut man einen Prozess mit TerminateProcess() (@Badestrand).


Anmelden zum Antworten