Это возможно, но вы должны понимать, что с внешней точки зрения кнопка - это окно (с дескриптором), родительским элементом которого является форма (также окно с дескриптором), и ее состояние может быть недоступно при совершенно те же полезные имена, что и свойства в WinForms, показывают это.
Например, этот код C ++ будет работать в приложении C #, даже если это приложение запускается через отладчик:
HWND hwndCSharp = ::FindWindow(NULL,_T("Form1") );
if (hwndCSharp != NULL)
{
// Walk the window's child windows (controls / views):
HWND hwndChild = ::GetWindow(hwndCSharp, GW_CHILD);
while (hwndChild != NULL)
{
// Get state here...
hwndChild = ::GetWindow(hwndChild, GW_HWNDNEXT);
}
}