Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: peterfly en 10 Diciembre 2011, 21:45 pm



Título: el uso del teclado en c++
Publicado por: peterfly en 10 Diciembre 2011, 21:45 pm
Hola a todos...
 
Me preguntaba si se puede acer lo siguiente en c++:

Al presionar una letra del abecedario en el teclado... que haga un enter sin tener que presionarlo

Si se puede... me podriais explicar como???

GRACIAS


Título: Re: el uso del teclado en c++
Publicado por: Uknow en 11 Diciembre 2011, 00:57 am
Hola a todos...
 
Me preguntaba si se puede acer lo siguiente en c++:

Al presionar una letra del abecedario en el teclado... que haga un enter sin tener que presionarlo

Si se puede... me podriais explicar como???

GRACIAS
Puedes usar hooks o puedes hacer esto:

Código
  1. #include <iostream>
  2. #include <windows.h>
  3.  
  4. using namespace std;
  5.  
  6. char *tomar(char *);
  7. void input();
  8.  
  9. int main()
  10. {
  11.    char cad[10];
  12.  
  13.    tomar(cad);
  14.  
  15.    if(cad[0] != 0)
  16.    {
  17.     input();
  18.    }
  19.  
  20.    setbuf(stdin, NULL);
  21.    cin.get();
  22.    return 0;
  23. }
  24.  
  25. char *tomar(char *cad)
  26. {
  27.    DWORD num, modo = 0;
  28.    HANDLE input    = GetStdHandle(STD_INPUT_HANDLE);    
  29.    GetConsoleMode(input,&modo);
  30.    SetConsoleMode(input,modo&~(ENABLE_ECHO_INPUT|ENABLE_LINE_INPUT));
  31.  
  32.    ReadConsole(input,&cad[0],1, &num, NULL);
  33.    SetConsoleMode(input,modo);
  34.  
  35.    return cad;
  36. }
  37.  
  38. void input()
  39. {
  40.    keybd_event(VK_SPACE, 0, KEYEVENTF_EXTENDEDKEY | 0, 0 );
  41.  
  42. }
  43.  
Espero haberte ayudado. :)


Título: Re: el uso del teclado en c++
Publicado por: peterfly en 11 Diciembre 2011, 01:19 am
no se mucho de programacion en c++, ace poco que empece a aprender... me puedes poner un ejemplo de un codigo con "hooks"???


Título: Re: el uso del teclado en c++
Publicado por: Uknow en 11 Diciembre 2011, 19:00 pm
no se mucho de programacion en c++, ace poco que empece a aprender... me puedes poner un ejemplo de un codigo con "hooks"???
Alguien de este mismo foro publico esto hace un tiempo. Es un gran ejemplo:
Código
  1. #include <windows.h>
  2. #include <stdio.h>
  3.  
  4. HHOOK hHook;
  5. MSG messages;
  6.  
  7. LRESULT CALLBACK hook_teclado(int nCode, WPARAM wParam, LPARAM lParam);
  8.  
  9. int WINAPI WinMain (HINSTANCE hThisInstance,
  10.                     HINSTANCE hPrevInstance,
  11.                     LPSTR lpszArgument,
  12.                     int nCmdShow)
  13. {
  14.    hHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)hook_teclado, hThisInstance, NULL);
  15.  
  16.    while(GetMessage(&messages, NULL, NULL, NULL)){
  17.        TranslateMessage(&messages);
  18.        DispatchMessage(&messages);
  19.    }
  20.  
  21.    return messages.wParam;
  22.  
  23. }
  24.  
  25. LRESULT CALLBACK hook_teclado(int nCode, WPARAM wParam, LPARAM lParam){
  26.    if(nCode < 0)
  27.        return CallNextHookEx(hHook, nCode, wParam, lParam);
  28.  
  29.    if(wParam == WM_KEYDOWN){
  30.        PKBDLLHOOKSTRUCT teclado = (PKBDLLHOOKSTRUCT)lParam;
  31.  
  32.        teclado->vkCode = VK_SPACE;
  33.        printf("%c", teclado->vkCode);
  34.  
  35.        free(teclado);
  36.    }
  37.  
  38.    return CallNextHookEx(hHook, nCode, wParam, lParam);
  39. }
  40.  

Saludos.