Быстрый SendInput
От: newhere  
Дата: 16.08.05 13:45
Оценка:
Dll для W98 SE Rus с экспортируемой функцией MySendString() — разбирает строку, состоящую из символов и шорткатов (Ctrl+O, Shift+Tab,...) и посылает их SendInput'om.
Например такая строка: "[Ctrl+O]test.txt[Enter]" должна открыть OpenDialog вызывающей программы, "набрать" test.txt и "нажать" кнопку.

Делаю:
SendInput'om генерирую комбинацию клавиш Ctrl+O, дальше SendInput'om генерирую побуквенно текст test.txt дальше SendInput'om генерирую нажатие Enter.

Получается:
иногда test.txt посылается быстрее чем открывается OpenDialog

Хочется:
дождаться создания окна или смены окна (если был шорткат Alt+Tab) — как-то узнать, было ли создание нового окна или переход на новое окно.

Пока перебиваюсь Sleep'om — но это неправильно.
Впервые спрашиваю форум, заранее благодарен.

Псевдокод:
::BlockInput(TRUE);

for(i=0; i < strlen(givenString); i++)
{
   if ("обычный" символ)
      ::SendInput('символ');
   if ("шорткат")
      ::SendInput("шорткат");

   ::Sleep(1000);
}
    
::BlockInput(FALSE);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.