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ührt2.frage
geht es, dass man das programm welches gerade im vordergrund läuft, mit ner bestimmten tastenkombination killt (prozess)?mfg
anips: 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).