Я не могу использовать FindWindowEx (), чтобы найти контроль

Я хочу открыть программу Microsoft Security Essential и нажать кнопку «Сканировать сейчас» с помощью ВК. Я могу найти окно, но не могу найти контроль. Это мой код, когда я запускаю этот код, он показывает элемент управления не найден. Я пытаюсь протестировать этот код нажатием кнопки «Обзор» в «Запустить программу», он работает, но когда я пытаюсь использовать его с Microsoft Security Essential, он не находит управления Я не знаю, почему, возможно, этот элемент управления находится в Tab. Как использовать FindWindowEx (), нажмите кнопку «Сканировать сейчас» в Microsoft Security Essential?

int run_ms(){

ShellExecute(NULL, L"open", L"C:/Program Files/Microsoft Security Client/msseces.exe", NULL, NULL, SW_SHOWNORMAL);

HWND w;
w=FindWindow(NULL, L"Microsoft Security Essentials");

if(w==NULL)
MessageBox(NULL,L"Not found",L"",MB_OK);

else{
HWND cb;
cb = FindWindowEx(w,NULL,NULL,_T("&Scan now"));

if(cb!=NULL)
{
SendMessage(cb,WM_LBUTTONDOWN, NULL,NULL);
SendMessage(cb,WM_LBUTTONUP, NULL,NULL);
}
else
MessageBox(NULL,L"Control not found",L"",MB_OK);
}

return 0;
}

Я использую Spy ++ с кнопкой в ​​Microsoft Security Essential, это выглядит так

Caption : &Scan now
Class : ALT:BUTTON
I use FindWindowEx() like this cb = FindWindowEx(w,NULL,NULL,_T("&Scan now"));

но оно не нашло контроля.

1

Решение

FindWindowEx Функция не будет «углубляться» в иерархию окон — она ​​будет смотреть только на дочерние окна того, что вы просите найти. С учетом сказанного и быстрого просмотра снимка экрана пользовательского интерфейса Microsoft Security Essentials я на 99% уверен, что кнопка «Сканировать сейчас», которую вы ищете, не является непосредственный дочернее окно основного окна Microsoft Security Essentials. И вот почему ваш FindWindowEx вызов не проходит.

У меня нет доступа к программному обеспечению Microsoft Security Essentials, но есть доступ к Spy++ должно быть легко определить, кто является родителем кнопки «Сканировать сейчас»: окно Microsoft Security Essentials или другое окно, которое само по себе является дочерним элементом окна Microsoft Security Essentials.

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]