C++ Programm im Hintergrund

05/22/2013 22:35 Yoshimore#1
Hallo Liebe Community und so,

ich arbeite zur Zeit an einem League of Legends Jungle Timer und der funktioniert auch soweit ganz gut, zwar ist der folgende Code nicht vollständig also zu allen Buffs aber ich habe eine kurze Frage: Wie kann ich das Programm im Hintergrund ablaufen lassen also das z.b. das League of Legends Fenster im Vordergrund ist und dennoch Tastaturabfragen abfangen?
Hier mal der Code den ich bis jetzt so habe:
Code:
#include <iostream>
#include <Windows.h>

using namespace std;

int main() {

	int BlueBuffCountdown = 300;
	char chEingabe;

	cout << "Wenn du den BlueBuff Timen möchtest drücke die Taste y: " << endl;
	cout << "Wenn du den RedBuff Timen möchtest drücke die 2.: " << endl;
	cin >> chEingabe;

	// BlueBuff
	if(chEingabe == 'y') {

	for(int i = BlueBuffCountdown; i >= 0; i--) {
		
			cout << i << endl;
			Sleep(1000);

			if(i == BlueBuffCountdown / 2 + 1) {
				Beep(900, 200);
				cout << "Die Haelfte ist erreicht! ";
			}
			
			else if(i == BlueBuffCountdown == 1) {
				Beep(900, 200);
				cout << "Der BlueBuff respawnt!";
			}
	}
   }

	// RedBuff





}
Das ist jetzt nur eine Vorlage, kann ja alles angepasst werden. :p

LG
05/22/2013 22:58 .SkyneT.#2
[Only registered and activated users can see links. Click Here To Register...] sollte dir weiterhelfen.

Edit:
Deinen Code musst du dann aber noch etwas anpassen,
GetAsyncKeyState wird sonst nicht funktioneren.
05/22/2013 22:59 Dr. Coxxy#3
Quote:
Originally Posted by .SkyneT. View Post
GetAsyncKeyState sollte dir weiterhelfen.
^this oder ein setwindowshookex.
05/23/2013 16:13 Yoshimore#4
Quote:
Originally Posted by .SkyneT. View Post
[Only registered and activated users can see links. Click Here To Register...] sollte dir weiterhelfen.

Edit:
Deinen Code musst du dann aber noch etwas anpassen,
GetAsyncKeyState wird sonst nicht funktioneren.
Was den z.b.? bin noch relativ neu in C++ hab da irgendwo mal was gelesen das ich keine Konsolen Anwendung mit GetAsyncKeyState verwenden kann.
05/23/2013 16:45 Padmak#5
Kannst du jederzeit, du musst es nur in einer Dauerschleife abfragen.
Beispiel
Code:
while(1)
{
    if(GetAsyncKeyState(VK_F1) != 0)
    {
        //pressed
    }
}
Padmak
05/26/2013 13:38 Yoshimore#6
So, keine Lust einen neuen Thread zu erstellen.. also frage ich hier:
Ich wollte ein Menü quasi erstellen also immer wenn der Countdown 0 ist dass das Menü wieder aufpoppt habe mir das auch in einer While Schleife gedacht das halt wenn alles drücke außer F1 (Habe das für Beenden) die Schleife halt wiederholt wird.. Gibt es sowas wie While(GetAsyncKeyState != (VK_F1)) {...

}
hab das schon ausprobiert ging aber nicht. Gibt es eine Möglichkeit das aber dennoch so zu machen?
05/26/2013 13:43 .SkyneT.#7
Code:
while (! GetAsyncKeyState(VK_F1))
{
	
}
05/26/2013 14:12 Delinquenz#8
Quote:
Gibt es sowas wie While(GetAsyncKeyState != (VK_F1)) {...
Du wirst mich hassen, aber lern erst einmal richtiges C++ wenn du bei solchen simplen Sachen bereits scheiterst.