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);