Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2011, 18:34   #1
Wov
 
Регистрация: 28.02.2011
Сообщений: 3
По умолчанию значение из стороннего приложения

Здравствуйте!

Есть задача, нужно записать в переменную, число. Значение это нужно взять из одного из запущенных приложений, подскажите пожалуйста, как это сделать, если известен адрес значения.
Wov вне форума Ответить с цитированием
Старый 28.02.2011, 18:42   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

OpenProcess
ReadProcessMemory
CloseHandle
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.02.2011, 21:25   #3
Wov
 
Регистрация: 28.02.2011
Сообщений: 3
По умолчанию

Спасибо. Задача частично решена:

const
WindowTitle = 'Project1_1';
ZnachAdress = $0045CBE8;


var
Form1: TForm1;
Wnd : THandle;
ProcessId, ProcHandle, MainZnach : integer;
rw : cardinal;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Wnd := FindWindow(nil,WindowTitle);
GetWindowThreadProcessId(Wnd, @ProcessId);
ProcHandle := OpenProcess(PROCESS_ALL_ACCESS,fals e,ProcessId);
ReadProcessMemory(ProcHandle,ptr(Zn achAdress),@MainZnach,4,rw);
Label1.caption := FloatToStr(MainZnach);
Closehandle(ProcHandle);
End
end;


end.

Но теперь появился другой вопрос.
WindowTitle = 'Project1_1'. но как быть если название окна программы постоянно меняется? вернее название программы в окне есть, но перед ним постоянно менятся значения. в этом случае нужно будет вызывать список всех запущенных процессов и выбирать нужный, либо же можно вобще не использовать название окна?
Wov вне форума Ответить с цитированием
Старый 28.02.2011, 22:10   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

может вам стоит привязатся к имени процесса?
или к классу окна?(а не его заголовку)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.03.2011, 00:04   #5
Wov
 
Регистрация: 28.02.2011
Сообщений: 3
По умолчанию

Пробую получить класс окна, т.к. предполагаю что как и имя заголовка будет изменятся и имя процесса. чтобы узнать класс окна пользую след.:

procedure TForm1.Timer1Timer(Sender: TObject);
var nm:array [0..100] of char;
begin
GetClassName(WindowFromPoint(Mouse. CursorPos),Nm,sizeof(nm));
caption:=nm;
end;

Класс окна у нужного приложения не определяется. не определяется почему то только у него, со всеми остальными окнами работает. есть какой либо еще способ определить класс окна?

P.S. Наверняка делаю что то не так, ибо не програмист, делфи держу в руках меньше недели, ранее если где то и писал то только какиенибуть скрипты, ну и когда то давно QBasic юзал... стала задача, решил автоматизировать некоторые процессы, пришлось взять в руки делфи.
Wov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение данных из TStringGrid стороннего приложения BeerDrinker Win Api 9 31.01.2011 17:53
Защита стороннего приложения Mifody Общие вопросы Delphi 1 25.03.2010 13:19
Работа с компонентами стороннего приложения imprezident Win Api 1 30.05.2009 22:12
Как определить класс стороннего приложения. Son Win Api 6 25.11.2008 11:52
Смена иконки стороннего приложения Wiedzmin Win Api 2 01.05.2007 16:19