CPU gebruik

Status
Niet open voor verdere reacties.

mmatteman

Gebruiker
Lid geworden
3 sep 2008
Berichten
287
Hallo, met deze code laat ik de knoppen q,w,e,r,t,y,u,i,o en p een piepje met oplopende frequentie afspelen. Alleen ik mailde hem naar iemand anders, en die zei dat het programma z'n hele cpu gebruikte. Dat komt waarschijnlijk door de oneindige loop. Hoe kan ik dit beter doen?

Code:
#define _WIN32_WINNT 0x0500
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <winuser.h>
#include <string>
using namespace std;
void welcome();
void help();
void camo();
void piep();
char doornaarpiep = 's';
char doornaarhelp = 'h';
char doornaarsluiten = 'q';
char vraag;
int main()

{

    welcome();
  cin >> vraag;
    if (vraag == doornaarpiep)
    {
    camo();
          piep();                           
    

}
else if (vraag == doornaarhelp)
{
     help();
     }
     else if (vraag == doornaarsluiten)
     {
          exit(0);
          }
                                    }
                                              void camo()
                                              {
                                                   HWND hWnd = GetConsoleWindow();
ShowWindow( hWnd, SW_HIDE );
}                         
void welcome()
{

cout << " ----------------------------------------------------------"  << "\n";
cout << "| Welkom, druk op 's' en dan 'Enter' om meteen te beginnen |" << "\n";
cout << "| Druk op 'h' en dan 'Enter' voor uitleg                   |" << "\n";
cout << "| Druk op 'q' en dan 'Enter' om programma te sluiten       |" << "\n";
cout << "|                                                          |" << "\n";
cout << "|                                                          |" << "\n";
cout << "|                                                          |" << "\n";
cout << "|                                                          |" << "\n";
cout << "|                                                          |" << "\n";
cout << "|                                                          |" << "\n";
cout << "|                                                          |" << "\n";
cout << "|                                                          |" << "\n";
cout << "|                                                          |" << "\n";
cout << "|                          M.v.L                           |" << "\n";
cout << "-----------------------------------------------------------"  << "\n"; 
}


void help()
{
system("cls");
cout << " ------------------------------------------------------------ "  << "\n";
cout << "| De bovenste lijn letters van je toetsenbord geven een piep |"  << "\n";
cout << "| Dus Q, W, E, R, T, Y, U, I, O of P                         |"  << "\n";
cout << "| Frequentie loopt op van links naar rechts                  |"  << "\n";
cout << "| linker Ctrl + Alt sluit het programma                      |"  << "\n";
cout << "| Druk nu op 's' en dan 'Enter' om te beginnen               |"  << "\n";
cout << "| Het programma zal zich verbergen, je kunt gewoon doorgaan  |"  << "\n";
cout << " ------------------------------------------------------------ "  << "\n";
cin >> vraag;
if (vraag == doornaarpiep)
{
          
          camo();
          piep();
          }
          
}
 void piep()
 {
      system("cls");
      while(1)
    {
    if(GetAsyncKeyState(81)==-32767)
                                    {
                                         Beep(200,100);
                                         
                                         }
                                          else if(GetAsyncKeyState(87)==-32767)
                                    {
                                         Beep(300,100);
                                        
                                         }
                                    else if(GetAsyncKeyState(69)==-32767)
                                    {
                                         Beep(400,100);
                                         
                                         }
                                    else if(GetAsyncKeyState(82)==-32767)
                                    {
                                         Beep(500,100);
                                         
                                         }
                                     else if(GetAsyncKeyState(84)==-32767)
                                    {
                                         Beep(600,100);
                                        
                                         }
                                    else if(GetAsyncKeyState(89)==-32767)
                                    {
                                         Beep(700,100);
                                        
                                         }
                                    else if(GetAsyncKeyState(85)==-32767)
                                    {
                                         Beep(800,100);
                                        
                                         }
                                    else if(GetAsyncKeyState(73)==-32767)
                                    {
                                         Beep(900,100);
                                        
                                         }
                                    else if(GetAsyncKeyState(79)==-32767)
                                    {
                                         Beep(1000,100);
                                        
                                         }
                                    else if(GetAsyncKeyState(80)==-32767)
                                    {
                                         Beep(1100,100);
                                         
                                         }
                                    else if (GetAsyncKeyState(VK_LCONTROL) && GetAsyncKeyState(VK_LMENU)) 

                                    {
                                        exit(0);
                                         }
                                    }
                                    }
 
Een makkelijke oplossing is door een Sleep() toe te voegen.
Code:
else if (GetAsyncKeyState(VK_LCONTROL) && GetAsyncKeyState(VK_LMENU))
{
       exit(0);
}
wordt dan
Code:
else if (GetAsyncKeyState(VK_LCONTROL) && GetAsyncKeyState(VK_LMENU))
{
       exit(0);
}
else 
       Sleep(10);
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan