![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 09.09.2008
Сообщений: 395
|
![]()
Вообщем есть окно... Есть начальные символы (точнее они известны) окна.
Нужно сделать так... В случае если FindWindow находит окно где указанные символы есть, то показывает showmessage('ОК') что он нашел окно такое с начальными символами Но дело в том что я не знаю как это сделать! (pos не поможет вроде как) Помогайте ![]() (начальные символы окна!) Последний раз редактировалось zotox; 13.07.2009 в 17:59. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
![]() |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
начальные символы чего?
заголовка окна? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 09.09.2008
Сообщений: 395
|
![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
![]()
Найти все окна , занести допустим в TStringList . Далее какраз с тем-же pos выполнить поиск , и снова FindWindow только с уже найденым заголовком окна.
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 09.09.2008
Сообщений: 395
|
![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 384
|
![]()
Глянь пример.
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
EnumWindows в помощь
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
![]() Код:
Всегда рад помочь!
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 14.06.2009
Сообщений: 53
|
![]()
Смотрю тут тоже api обсуждается а я вот не могу решить задачку нужно считать строку из памяти процесса запущенной программы.
RVA строки $0036D0C8 нужен ведь RVA не VA Процедура выглядит следующим образом, для проверки значений заносил их в edit procedure TForm1.Button1Click(Sender: TObject); var hProc, PID, numberRead : DWORD; hWnd : THandle; // Хэндл окна чата IpBuf : string; // буфер куда поместиться наше значение ipBase: ^dword; // точка входа в памяти begin hWnd:=findwindow('TfChatClient',nil ); /// получаем хэндл окна программы Edit1.Text:=inttostr(hWnd); // заносим в edit Handle GetWindowThreadProcessId(hWnd, @PID); //получаем pid зная хэндл окошка интересующей нас программы Edit2.Text:=inttostr(PID); // заносим в edit ID hProc:=OpenProcess(PROCESS_VM_READ, False, PID); // подключаемся к процессу зная его ID try if hProc <> 0 then // условие проверки подключения к процессу begin Edit3.Text:=inttostr(hProc); // заносим в edit Process ipbuf:=' '; // очищаем буфер SetLength(ipbuf, 4); // устанавливаем длинну буфера ipBase:=ptr($0036D0C8); // RVA слова в памяти ReadProcessMemory(hProc, ipBase, Addr(ipbuf), 4, numberRead); // чтение из памяти строки Edit4.Text:=PCHAR(ipbuf); // заносим в edit Buffer end; finally CloseHandle(hProc); // отсоединяемся от процесса end; end; В результате получилось следующее хэндл, pid process считываються идеально, а вот переменная ipbuf куда должно занестись значение выдыдаёт какуето ерунду, строка в кодировке ascll. что не так где ошибки? |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
FindWindow | Comer_Jus | Win Api | 7 | 29.11.2008 10:17 |
FindWindow('TMainForm',nil) а дальше куча одноименных кнопок | Стелс | Win Api | 17 | 01.11.2008 01:27 |
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. | RustreX | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 11.11.2007 19:28 |
FindWindow не нашел окна, а ShellExecute возвращает ERROR_PATH_NOT_FOUND | malor | Win Api | 2 | 19.07.2007 15:15 |
Вопрос про функцию FindWindow | Dromok | Общие вопросы Delphi | 3 | 12.02.2007 23:00 |