Re[5]: Передача нажатия клавиш в нективное окно.
От: sokolprog Россия  
Дата: 13.02.04 13:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ваш пример работает, если только notepad — активное окно. Если не активное — не работает, а мне именно это и нужно. В смысле чтоб работало когда окно не активно : )


Так, ёшкар-ола, замени некоторые вызовы...
struct ChildINFO {
    HWND hTarget;
    // ...
};
BOOL CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam) { 
    char szClass[256];
    GetClassName(hwndChild, szClass, sizeof(szClass));
    if (!strcmp(szClass, "Edit")) {
        ChildINFO* pci=(ChildINFO*)lParam;
        pci->hTarget = hwndChild;    // хендл окна
        return FALSE; // поиск завершен, Edit найден
    }
    return TRUE;// продолжаем поиск
}


Потом из примера замени
HWND hwndFore = ::GetForegroundWindow();

на
HWND hwndFore = ::FindWindow("Notepad", NULL);


Дальше
ChildINFO wi;
EnumChildWindows(hwndFore, EnumChildProc, (LPARAM)&wi);
HWND hwndEdit=wi.hTarget; // тут хендл Edit'а
::SendMessage(hwndEdit, WM_SETTEXT, 0, (LPARAM)"Всего-то нужно было изменить пару строчек!!!");


... и усё будет работать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.