WinApi -> не хэндляться элементы

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Spot, 11 Jan 2015.

  1. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Привет други, потребовалось пожмякать на кнопки в другом окне.
    Code:
    IntPtr hWnd = FindWindowByCaption(IntPtr.Zero,  WindowName.Length > 0 ? WindowName :"Viber");
     prozess = FindWindowEx(hWnd, IntPtr.Zero, "Button", null);
    
    Первым поиском находит hWnd, но когда хочу получить елемент с формы (тип button), но не находит.
    С другой стороны если вместо "button" передаю null, то что то находит. Удивился, потестировал на обачыном калькуляторе - та же самая фигня, хотя в сети приводиться тот же код.

    В чем может быть заковыка ? (вин7)
     
  2. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    В вибере нет элементов Button, там все классы начинаются на Qt5Q...
     
  3. Spot

    Spot Elder - Старейшина

    Joined:
    1 Mar 2007
    Messages:
    461
    Likes Received:
    38
    Reputations:
    1
    Я пробывал с калькулятором, его тоже не находит. Вернее его находит, а вот кнопки на форме нет.
    Вот тут брал код что бы протестировать, у меня не работает. Не находит кнопки на окне калькулятора, хотя сам калькулятор находится.
     
  4. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    У калькулятора кнопки лежат не в родительском окне, а на панели, имеющей класс #32770, а эта панель, в свою очередь лежит на другой панели, которая имеет класс CalcFrame, но поскольку дисплей калькулятора тоже имеет класс #32770, то придется делать перебор с условием по размеру окна.

    В общем RTFM
     
    #4 #colorblind, 12 Jan 2015
    Last edited: 12 Jan 2015
  5. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    Spy++ попробуй.
     
  6. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    Потдерживаю M_script, спаем отслежиаешь сообщения, потом банально сенд мессадж с нужным id, и всё
     
  7. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    Это называется костыль.