Нажатие кнопки внутри произвольного приложения

Тема в разделе "ASM, С/С++, Delphi, Java", создана пользователем StrikeOFF, 23 июл 2013.

Статус темы:
Закрыта.
  1. StrikeOFF

    StrikeOFF ♥kan inte lyfta utan lift♥

    Регистр.:
    20 мар 2010
    Сообщения:
    362
    Симпатии:
    200
    Как-то видел на ютубе видео где на С++ где человек показывал принципы работы WinAPI. Насколкьо помню он там написал код который активирует окно приложения(по названию) и кликает по кнопке в этом приложении. У меня такая же задача, такое реализуемо?
    Есть софтина которую надо раз в пару часов открывать и жмакать кнопку старт. реально это? Есть зависимость от того на чем эта софтина написана? По-моему на .Net
     
  2. Java

    Java

    Регистр.:
    14 окт 2011
    Сообщения:
    155
    Симпатии:
    34
    Т.е. программа каждое n-ное время открываться и ждать пока по кнопке клинут? На delphi я напишу это, но тебе надо на c++?
     
  3. StrikeOFF

    StrikeOFF ♥kan inte lyfta utan lift♥

    Регистр.:
    20 мар 2010
    Сообщения:
    362
    Симпатии:
    200
     
  4. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.723
    Симпатии:
    2.098
    стартануть программу, найти хендл окна-кнопки (FindWindow) и послать ей SendMessage?

    может лучше
     
    StrikeOFF нравится это.
  5. StrikeOFF

    StrikeOFF ♥kan inte lyfta utan lift♥

    Регистр.:
    20 мар 2010
    Сообщения:
    362
    Симпатии:
    200
    интересная штука судя с того что я прочел. Завтра буду тестить.
     
    Шумадан нравится это.
  6. gothmog

    gothmog Постоялец

    Регистр.:
    18 июн 2011
    Сообщения:
    60
    Симпатии:
    24
    Если на WinApi, то для начала берете spy++ (из студии или гугла), запускаете прогу, выбираете в спае нужный вам процесс, смотрите имена классов для кнопок, окон и так далее. Далее отправляете сообщение. Вот пример на скорую руку, который в браузере интернет эксплорер открывает нуллед.
    Код:
    #include <windows.h>
    int main()
    {
     
    HWND ie,worker,toolbar,combo,edit;
    /*---- Поиск адресной строки---*/
    ie = FindWindow(PCHAR("IEFrame"),NULL);
     
    worker = FindWindowEx(ie,0,"WorkerW",NULL);
     
    toolbar= FindWindowEx(worker,0,"ReBarWindow32",NULL);
     
    combo = FindWindowEx(toolbar, 0, "Address Band Root",NULL);
     
    edit = FindWindowEx(combo,0,"Edit",NULL);
    /*---- Отправка текста и нажатие enter ---*/
    SendMessage(edit, WM_SETTEXT, 0, LPARAM(PCHAR("https://www.nulled.cc")));
    PostMessage(edit, WM_KEYDOWN, VK_RETURN, 0);
    PostMessage(edit, WM_KEYUP,  VK_RETURN, 0);
     
    }
    Но проще в самом деле заюзать аутоит или какой-нибудь эмулятор мыши/клавиатуры (полно разработок, и фришных, и платных).
     
    Шумадан нравится это.
  7. StrikeOFF

    StrikeOFF ♥kan inte lyfta utan lift♥

    Регистр.:
    20 мар 2010
    Сообщения:
    362
    Симпатии:
    200
    благодарю, но сейчас С++ не принципиально, а с Autoit я уже разобрался и реализовал функционал нужный. Бомба просто, не думал что есть такой конструктор простой. Задача решена
     
    Шумадан нравится это.
Статус темы:
Закрыта.