программно нажать на кнопку

Тема в разделе "WASM.WIN32", создана пользователем loleg, 15 июн 2010.

  1. loleg

    loleg New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    93
    не отобразилась картинка..
     
  2. jabocrack

    jabocrack New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    96
  3. osox

    osox New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2009
    Сообщения:
    280
    я делал так следил при нажатии на кнопку что получает родительское окно в младшем слове параметра wParam сообщения WM_COMMAND это id кнопки а потом родительскому окну этой кнопки SendMessage(hParendWnd, WM_COMMAND, 0x234, 0);
    как будто бы на кнопку нажали оконная процедура кнопки обработала это и отправила родтельскому окну WM_COMMAND
    должно работать и для disable кнопок
     
  4. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
  5. CoolCmd

    CoolCmd New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2007
    Сообщения:
    21
    Адрес:
    Moscow
    Я на всякий случай напомню, что если кнопка в проге, работающей с более высоким приоритетом чем прога, посылающая сообщения (например из-за гребаного UAC), то сообщения не дойдут. Это начиная с Писты.
     
  6. Constantine

    Constantine New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2010
    Сообщения:
    4
    loleg
    Добрый день у меня вопрос: получилось ли нажать на кнопочку?
     
  7. Constantine

    Constantine New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2010
    Сообщения:
    4
    Не буду создавать новый пост, надеюсь ни кто не обидится.
    У меня проблема в следующем всплывает дочернее окно и спрашивает разрешить или запретить, вот мне и нужно постоянно разрешать! Ну собственно нахожу хендл дочернего окна в котором содержатся кнопки а получить идентификатор кнопки не могу, IntPtr hChldBut = FindWindowEx(hChld, IntPtr.Zero, "Button", "Разрешить") , да и просто если задаю IntPtr hChldBut = FindWindowEx(hChld, IntPtr.Zero, "Button", null) пусто. Подскажите в чем трабла?
     
  8. Constantine

    Constantine New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2010
    Сообщения:
    4
    В общем дело в том что это не gdi похоже кнопки рисуются другой библиотекой!
     
  9. sometime

    sometime Odessa

    Публикаций:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    227
    Адрес:
    sunday
    Constantine
    SendMessage( WM_LBUTTONDOWN );
    SendMessage( WM_LBUTTONUP );

    мож так подойдёт и не нужны айдихи кнопок тогда)

    вы уверены что класс Button у кнопки, сморели Spy++, например?
     
  10. Constantine

    Constantine New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2010
    Сообщения:
    4
    Там окошко с кнопками, spy++ показывает только окошо а кнопки не определяет!
     
  11. proteus00

    proteus00 New Member

    Публикаций:
    0
    Регистрация:
    15 сен 2009
    Сообщения:
    4
    щелкаю на кнопку тоже ничего не работает,
    ни SendMessage(Handle, BM_CLICK, 0, 0),
    ни SendMessage(GetParent(Handle), WM_COMMAND, makewparam(Handle, 0), 0),
    ни SendMessage(Handle, WM_LBUTTONDOWN, 1, 0) + SendMessage(Handle, WM_LBUTTONUP, 1, 0)

    лог записи сообщений с помощью MS Spy++:
    http://img337.imageshack.us/img337/3430/1111e.png

    какие будут мысли, как еще нажать на кнопку можно?
     
  12. jabocrack

    jabocrack New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    96
    proteus00
    чуток подробнее, пжлста. что где и как. лог с spy++ можно не выкладывать :)
     
  13. proteus00

    proteus00 New Member

    Публикаций:
    0
    Регистрация:
    15 сен 2009
    Сообщения:
    4
    простая кнопка класса TPSUNButton (распологается на главном окне приложения, не отдельный какой-то модальный диалог), все вышеперечисленые способы не дали результата
    шлю паренту такое сообщение

    SendMessage(GetAncestor(Handle, GA_PARENT), WM_COMMAND, makewparam(1, 0), lparam(Handle)

    0012FE18 00070158 |hWnd = 70158
    0012FE1C 00000111 |Message = WM_COMMAND
    0012FE20 00000001 |Notify = MENU/BN_CLICKED... ID = 1.
    0012FE24 00080258 \hControl = 00080258 (class='TPSUNButton',parent=00070158)

    окно молчит, не щелкается и даже не перерисовывается