Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Эмуляция нажатия клавиш в с++


Автор: valid 9.3.2009, 01:30
Здравствуйте! 
Помогите плиз эмулировать нажатие клавиш в с++!
Вобщем идея такая:
"К примеру нажимаем клавишу <F7> и у нас в активном окне начинает печататься некий текст"!

Заранее спасибо!!!

Автор: azesmcar 9.3.2009, 05:52
В C++ нет такой функции, есть в WinAPI. Посмотри в MSDN keyb_event

пример
Код

      // Simulate a key press
         keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | 0,
                      0 );

      // Simulate a key release
         keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                      0);
      }

Автор: valid 9.3.2009, 10:29
Спасибо

Добавлено через 1 минуту и 35 секунд
а как будет выглядеть полный код?  smile 

Автор: azesmcar 9.3.2009, 10:42
Ну, например вот так

Код

#include "windows.h"

void simulateKeyPress(BYTE key)
{
    // Simulate a key press
    keybd_event( key, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 );
    // Simulate a key release
    keybd_event( key, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}

int main()
{
    const int noOfTimes        = 10;
    const int keyCount        = 3;
    BYTE keyArray[keyCount]    = {VK_NUMLOCK, VK_CAPITAL, VK_SCROLL};

    for ( int i = 0; i < noOfTimes * keyCount; ++i )
    {
        simulateKeyPress( keyArray[i % keyCount] );
        Sleep(200);
    }
}


Автор: valid 9.3.2009, 12:33
спасибо большое )

Автор: azesmcar 9.3.2009, 13:14
Пожалуйста, пометь тему решенной.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)