Problem z c++ Pierwszy program :/


(CYBORG*KUBA) #1

Witam, mam prosty programik w którym nie działa mi Przerwanie pętli:

 

-Zrobiłem to w taki sposób w case 1.

 

Jeśli jest coś mega źle piszcie, bo dopiero się uczę pisać takie rzeczy.

 

Thx z góry

#include <iostream>
#include <Windows.h>
#include <conio.h>

 
using namespace std;
void menu()
{
 
 	cout << " _______________________"<< endl<<endl;
	cout << " Menu "<< endl<<endl;
 	cout << " _______________________"<< endl<<endl;
	cout << "1:Kopanie"<<endl;
	cout << "2:Chodzenie(przod-tyl)"<<endl;
	cout << "Zeby zakonczyc dzialanie programu wylacz go znaczkiem X"<<endl;

}
int main()
{
char znak;
int wybor;
 
 
 
menu();
cout<< endl;
cout << "Twoim wyborem jest:";
cin>>wybor;
switch (wybor)
{
	case 2:
		
   		system( "cls" ); //czyszczenie ekranu
		cout<< "Zeby cofnac sie do MENU wcisnij X";
		cout<< endl;
		cout<< "Twoja opcja rozpocznie sie za 10sekund!";

		for(;;)
		{

		Sleep(10000);
 		Sleep(1);
		keybd_event(0x57, 0, 0, 0); //wciskam W
		Sleep(2000);
		keybd_event(0x57, 0, KEYEVENTF_KEYUP, 0); //puszczam W
		Sleep(2);
		keybd_event(0x53, 0, 0, 0); //wciskam S
		Sleep(2000);
		keybd_event(0x53, 0, KEYEVENTF_KEYUP, 0); //puszczam S
		}
	
	case 1:
   		system( "cls" );
		cout<< "Zeby cofnac sie do MENU wcisnij X";
		cout<< endl;
		cout<< "Twoja opcja rozpocznie sie za 10sekund!";
		Sleep(10000);
		for(;;)
		{
			

			Sleep(1);
			mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 ); 
			Sleep(2000);
        	mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 );
        	Sleep(1);
        	mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 ); 
        	Sleep(2000);
        	mouse_event( MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ); 	
			
			if(kbhit())
				znak=getch();
		
			if(znak=='q') break;
			else
				znak=0;

		
		}

				
}

return 0;
}








		
			if(znak=='q') break;
			else
				znak=0;

		
		}

				
}

return 0;
}

(Michalk100) #2

W switchu daj break; 


(CYBORG*KUBA) #3

a napiszesz jak?

Bo ciężko mi się połapać samemu.

Nie umiem się zabrać za to


(mikolaj_s) #4

Może zacznij po woli od jakiegoś kursu i prostszych rzeczy?


(CYBORG*KUBA) #5

Powiem tak:D

 

Zacząłem zabawe w C++ tylko po to żeby zrobić ten prosty program :smiley: szukam już 2 dzień rozwiązania tego problemu. :confused:

Także proszę o dokończenie kodu :stuck_out_tongue: i jakbym mógł prosić cb o link do dobrego i prostego poradnika .


(Rolek0) #6

Czyli nie ty napisałeś ten program? :wink:

Polecam:


(CYBORG*KUBA) #7

pisałem do tego momentu.

Bo to było proste, tylko cięższe było szukanie znaków w tablicy ACPI bo nie wiedzialem jak sie ta tablica nazywa

Narazie w 100%napisany przezemnie


(Rolek0) #8

Tablica znaków ACPI?? Mógłbyś coś o tym powiedzieć, bo nie słyszałem :-k

Może chodziło Ci o tablicę ASCII? :wink:

Z resztą do keybd_event bardziej przyda się tablica kodów wirtualnych klawiszy(ewentualnie możesz konwertować znaki na kody wirtualnych klawiszy przy pomocy funkcji VkKeyScan, taka uwaga: jak większość Windowsowych funkcji operujących na znakach, występuje w dwóch wersjach: jedna używa systemowej strony kodowej, a druga unikodu; do poczytania http://web.archive.org/web/20111012012958/http://warsztat.gd/articles.php?x=view&id=270, jakby nie chciała się załadować, to wersja spakowana http://chomikuj.pl/Rolek__/Dokumenty/Unicode+w+Visual+Cpp,4454081681.zip(archive))

I zamiast keybd_event i mouse_event, możesz używać funkcji SendInput, której możesz podać kilka zdarzeń do wywołania po kolei.