Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мигающие Num Lock Scroll Lock Caps Lock, Пытаюсь написать свою первую программу  
:(
    Опции темы
Gal78rus
Дата 1.12.2008, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



Здравствуйте, 
Хочу попробовать методику изучения С++ методом тыка, так сказать. Написать программу которая поочередно мигала лампочками клавиатуры " Num Lock Scroll Lock Caps Lock ", а далее улучшать ее в виде Windows forms, мигание в такт музыки... 
Из С++ знаю очень мало, но как писать, компилировать... в общем азы знаю(наверное). Короче, хотелось бы что бы вы помогли мне в написании и понятии каждого оператора этой программы. 
И пожалуйста, я очень прошу, не надо писать "очень много хочешь, иди и почитай книги, ... smile " я читаю книги и одновременно хочу делать проект. 
Нормально что я прошу у вас помощи, или самому надо понять как написать?
Спасибо
 smile 

Это сообщение отредактировал(а) Gal78rus - 1.12.2008, 14:38
PM MAIL ICQ Jabber   Вверх
ilyuha
Дата 1.12.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



keybd_event. там как раз пример есть того, что тебе надо.

PM MAIL   Вверх
Goliaf777
Дата 1.12.2008, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 19.11.2008

Репутация: нет
Всего: нет



Да знакомая ситуация)))) я тож по мере прочитывания книги че нить пидумываю)) smile 
PM MAIL ICQ Skype Jabber   Вверх
Gal78rus
Дата 1.12.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



#include <windows.h>

   void SetNumLock( BOOL bState )
   {
      BYTE keyState[256];

      GetKeyboardState((LPBYTE)&keyState);
      if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
          (!bState && (keyState[VK_NUMLOCK] & 1)) )
      {
      // 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);
      }
   }

   void main()
   {
      SetNumLock( TRUE );
   }

А какой командой организовать мигание?
PM MAIL ICQ Jabber   Вверх
xvr
Дата 1.12.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(Gal78rus @ 1.12.2008,  15:44)
Код

#include <windows.h>

   void SetNumLock( BOOL bState )
   {
      BYTE keyState[256];

      GetKeyboardState((LPBYTE)&keyState);
      if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
          (!bState && (keyState[VK_NUMLOCK] & 1)) )
      {
      // 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);
      }
   }

   void main()
   {
      SetNumLock( TRUE );
   }

А какой командой организовать мигание?

Код

void main()
{
 BOOL ff=TRUE;
  for(;;)
   {
    SetNumLock(ff);
    ff=!ff;
    Sleep(500);
   }
}

PM MAIL   Вверх
ilyuha
Дата 1.12.2008, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 10.7.2007

Репутация: нет
Всего: нет



Цитата
The following sample program toggles the NUM LOCK light by using keybd_event() with a virtual key of VK_NUMLOCK. It takes a Boolean value that indicates whether the light should be turned off (FALSE) or on (TRUE). The same technique can be used for the CAPS LOCK key (VK_CAPITAL) and the SCROLL LOCK key (VK_SCROLL).


Добавлено через 1 минуту и 28 секунд
xvr, опередил smile
PM MAIL   Вверх
Gal78rus
Дата 1.12.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



xvr
Спасибо за ответ
А куда надо вставить данные вами строки?  


Разобрался, вместо конца
void main()
   {
      SetNumLock( TRUE );
   }
   
Извиняюсь,больше так тупить не буду(надеюсь)

Данную тему открыл для того что бы понять код программы, кому не сложно объясните каждую строку кода. или где можно расшифровать? 

Кстати там мигает без перерыва, как поставить счетчик и завершение?

Это сообщение отредактировал(а) Gal78rus - 1.12.2008, 17:19
PM MAIL ICQ Jabber   Вверх
bsa
Дата 1.12.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Gal78rus, купи книжку и почитай. В данном коде нет ничего, что выходит за рамки базовых знаний о языке Си.
PM   Вверх
Gal78rus
Дата 1.12.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



bsa
Обязательно 
 smile 
PM MAIL ICQ Jabber   Вверх
xvr
Дата 1.12.2008, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(Gal78rus @ 1.12.2008,  17:07)
xvr
Кстати там мигает без перерыва, как поставить счетчик и завершение?

Цикл for тебе поможет   smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0828 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.