Здравствуйте, Аноним, Вы писали:
А>Ваш пример работает, если только 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)"Всего-то нужно было изменить пару строчек!!!");
... и усё будет работать!