C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Программно нажимаем на кнопки / Система / Visual C++

Программно нажимаем на кнопки.

В данном примере хочу показать, как просто манипулировать над элементами управления, чужой программы. Для этого нам понадобится всего несколько API функций. HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName); - Ищет окно, поиск дочерних окон не производит. lpClassName – имя класса окна; lpWindowName – имя заголовка окна. HWND FindWindowEx(HWND hwndParent,HWND hwndChildAfter,LPCTSTR lpszClass, LPCTSTR lpszWindow ); - Ищет окно, производит поиск дочерних окон. hwndParent – основное окно, в котором производится поиск дочерних; hwndChildAfter – элемент с которого следует начинать поиск, если NULL тогда поиск пойдет с самого первого элемента; lpszClass – класс элемента управления; lpszWindow – имя, если NULL тогда поиск всех элементов класса lpszClass. LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); - функция посылает сообщения окнам. hWnd – описатель окна; Msg – сообщение; wParam – первый параметр; lParam – второй параметр. Для проверки, было создано обыкновенное приложение с помощью AppWizard`a. На главном окне расположены Edit, в который будет вставляться текст и кнопка, которая будет выводит сообщение, текст которого находится в EditBox. После создается проект Win32 Application и пишется следующий код:
#include "stdafx.h" int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { HWND hwndMain = FindWindow(NULL,"Test"); if(hwndMain) { HWND hwnd = FindWindowEx(hwndMain,NULL,"Edit",NULL); if(hwnd) { if(SendMessage((HWND)hwnd,WM_SETTEXT,(WPARAM)NULL,(LPARAM)(LPCTSTR)"Code by Lazy_elf")) { hwnd = FindWindowEx(hwndMain,NULL,"Button","Push"); if(hwnd) { SendMessage((HWND)hwnd,BM_CLICK,(WPARAM)NULL,(LPARAM)NULL); }else{MessageBox(NULL,"Error FindWindowEx","Error",MB_OK|MB_ICONSTOP);} }else{MessageBox(NULL,"Error SendMessage","Error",MB_OK|MB_ICONSTOP);} }else{MessageBox(NULL,"Not find Edit Box","Error",MB_OK|MB_ICONSTOP);} }else{MessageBox(NULL,"Not find main window","Error",MB_OK|MB_ICONSTOP);} return 0; }