728 / 519 / 129
Регистрация: 31.05.2013
Сообщений: 2,883
Записей в блоге: 3
1

Цикл и PostMessage

11.06.2015, 16:06. Показов 556. Ответов 3
Метки нет (Все метки)

Добрый день.
PostMessage отказывается работать в цикле, как я понимаю, что не успевает отработать PostMessage если цикл. Возможно как то отлавливать отработку команды, без всяких слипов и дальше подрожать цикл?


C
1
2
3
4
5
6
7
  for(i=0;i<20;++i)
    for(g=0;g<20;++g)
        if(sg->Cells[g][i]== "то что надо")
              {
                     PostMessage(hendle, WM_KEYDOWN, Key, MapVirtualKey(Key, 0) << 16 | 1);
                     PostMessage(hendle, WM_KEYUP,   Key, MapVirtualKey(Key, 0) << 16 | 1 | 1 << 30 | 1 << 31);
         }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2015, 16:06
Ответы с готовыми решениями:

PostMessage, SendMessage
Здравствуйте. Вопрос такой: я посылаю сообщения PostMessage и SendMessage в свернутое окно чужой...

PostMessage VS Win 10
На данной версии ОС,напрочь отказываются работать PostMessage, ни кто не сталкивался?

PostMessage+FindWindow+WM_KEYDOWN
Такая проблема, при использовании PostMessage + FindWindow для нажатия клавиши(WM_KEYDOWN), не...

PostMessage(hWnd,WM_KEYDOWN,VK_F5,0)
Добрый день подскажите пож. как передать в другое приложение произвольный символ?...

3
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31882 / 20780 / 8066
Регистрация: 22.10.2011
Сообщений: 36,000
Записей в блоге: 7
11.06.2015, 16:46 2
Цитата Сообщение от Dinkin Посмотреть сообщение
не успевает отработать PostMessage если цикл
PostMessage возвращается сразу, как только сообщение выслано в очередь. А уж когда сообщение, помещенное в конец очереди, будет обработано - неизвестно. Почему не SendMessage/SendNotifyMessage?
1
728 / 519 / 129
Регистрация: 31.05.2013
Сообщений: 2,883
Записей в блоге: 3
11.06.2015, 16:54  [ТС] 3
Цитата Сообщение от volvo Посмотреть сообщение
Почему не SendMessage/SendNotifyMessage?
Необходимо что бы нажиматься кнопка в неактивное окно, SendMessage не дает данного эффекта (про SendNotifyMessage не пробовал).

Сам пост шлю через глобальные горячие клавиши

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//---------------------------------------------------------------------------
void __fastcall TForm1::OnHotKey(TMessage& msg)
{
 
  j=sg->RowCount;
  for(i=0;i<j;++i)
    for(g=73;g<85;++g)
       if(sg->Cells[g][i]== st)
           {
             PostMessage(hendle, WM_KEYDOWN, Key, MapVirtualKey(Key, 0) << 16 | 1);
                     PostMessage(hendle, WM_KEYUP,   Key, MapVirtualKey(Key, 0) << 16 | 1 | 1 << 30 | 1 << 31);
            }
 
}
//---------------------------------------------------------------------------
И все срабатывает если перед пост поставить прерывание, даже sleep не спасает.
0
728 / 519 / 129
Регистрация: 31.05.2013
Сообщений: 2,883
Записей в блоге: 3
13.06.2015, 01:49  [ТС] 4
Получается такое только если вызывать цикл из функции "OnHotKey", если сделать данный цикл на обычную кнопку, то все нормально.
Видимо особая черта глобальных хоткеев?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2015, 01:49
Помогаю со студенческими работами здесь

PostMessage - координаты объекта в игре
Идея такая. Как использовать postmessage знаю. Но вот используя spy++ он берет все окно 3d игры как...

Обработка сообщения от PostMessage другой программы
Здравствуйте, коллеги! Подскажите добрым словом, делом, а может быть и кодом. Есть приложение...

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием...
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать...

PostMessage
Доброго дня. Слал через PostMessage кнопки и беды не знал. PostMessage(h, WM_KEYDOWN, Ord('1'),...

PostMessage
Не могу понять куда вводить координату Y. Если ввожу так: postmessage(h2,WM_LBUTTONDOWN,0,120);...

PostMessage и windows 7
В хп работает стабильно, в семёрке не хочет, кто нибудь сталкивался?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru