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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.09.2007, 16:29   #11
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Цитата:
Сообщение от Tokolist Посмотреть сообщение
вот довольно таки неплохая статья по этому поводу
_http://rsdn.ru/article/qna/baseserv/enumproc.xml
Что-то неншёл там как путь к файлу запущенной программы определить. Тем тем более там на "Сях" написано. Лучше бы что-нибудь на Delphi или Pascal. Первое предпочтительнее.
Alter вне форума Ответить с цитированием
Старый 06.09.2007, 21:01   #12
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

вот код на дельфи
Код:
function GetFullNameByPID(PID: DWORD): string;
var
 hProcess, Readed: DWORD;
 Info: PROCESS_BASIC_INFORMATION;
 ProcessParams: Pointer;
 UniFileName: TUnicodeString;
 FileName: array[0..MAX_PATH] of WideChar;
begin
 Result := '';
 ZeroMemory(@FileName, MAX_PATH * SizeOf(WideChar));
 hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, false, PID);
 if ZwQueryInformationProcess(hProcess, ProcessBasicInformation, @Info,
      SizeOf(PROCESS_BASIC_INFORMATION), nil) = STATUS_SUCCESS then
  begin
   if ReadProcessMemory(hProcess, pointer(dword(Info.PebBaseAddress) + $10), @ProcessParams,
        SizeOf(pointer), Readed) and
      ReadProcessMemory(hProcess, pointer(dword(ProcessParams) + $38), @UniFileName,
        SizeOf(TUnicodeString), Readed)  and
      ReadProcessMemory(hProcess, UniFileName.Buffer, @FileName,
                        UniFileName.Length, Readed) then
        begin
          Result := WideCharToString(FileName);
        end;
   end;
 CloseHandle(hProcess);
end;
но нужны дополнительные структуры и надо много стуктур
вот некоторые
Код:
 NTStatus = cardinal;
Код:
PUnicodeString = ^TUnicodeString;
  TUnicodeString = packed record
    Length: Word;
    MaximumLength: Word;
    Buffer: PWideChar;
  end;
Код:
Function ZwQueryInformationProcess(
                                ProcessHandle:THANDLE;
                                ProcessInformationClass:DWORD;
                                ProcessInformation:pointer;
                                ProcessInformationLength:ULONG;
                                ReturnLength: PULONG):NTStatus;stdcall;
                                external 'ntdll.dll';
Код:
PROCESS_BASIC_INFORMATION = packed record
   ExitStatus: BOOL;
   PebBaseAddress: pointer;
   AffinityMask: PULONG;
   BasePriority: dword;
   UniqueProcessId: ULONG;
   InheritedFromUniqueProcessId: ULONG;
  end;
если ещё будут ошибки скажи
rpy3uH вне форума Ответить с цитированием
Старый 07.09.2007, 01:04   #13
Tokolist
Пользователь
 
Аватар для Tokolist
 
Регистрация: 04.09.2007
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Alter Посмотреть сообщение
Что-то неншёл там как путь к файлу запущенной программы определить. Тем тем более там на "Сях" написано. Лучше бы что-нибудь на Delphi или Pascal. Первое предпочтительнее.
Честно говоря, язык программирования в данном случае играет второстепенную роль
а то что Вы там не нашли как это сделать значит, что Вы плохо искали
но, к счастью, у Вас уже есть готовый пример реализации одного из способов на Delphi
Tokolist вне форума Ответить с цитированием
Старый 17.10.2007, 23:22   #14
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Хоть что-то есть
Alter вне форума Ответить с цитированием
Старый 07.05.2009, 02:37   #15
Diktofon
 
Регистрация: 07.05.2009
Сообщений: 5
По умолчанию

А как получить доступ к компонентам чужой программы (один исполняемый файл, в котором реализован графический интерфейс) через MATLAB? У меня есть exe-шник, у него на форме парочка Edit Text и пара кнопок. Меня интересует: есть ли хоть какая то возможность получить к этим компонентам доступ из MATLABа? По возможности, оперировать ими, т.е. изменять значения текстовых строк в Edit Text и вызывать действие "нажатия" кнопок?

Да, забыл упомянуть, что я не в курсе, на чем написан exe-шник. Может быть, это С, но я не уверен.

Последний раз редактировалось rpy3uH; 11.05.2009 в 20:52.
Diktofon вне форума Ответить с цитированием
Старый 11.05.2009, 20:48   #16
Diktofon
 
Регистрация: 07.05.2009
Сообщений: 5
По умолчанию

никто не в курсе? а из Delphi такое возможно?
Diktofon вне форума Ответить с цитированием
Старый 11.05.2009, 20:53   #17
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

если надо получить доступ из MATLAB к твоей проге, то такое врядли получится.
rpy3uH вне форума Ответить с цитированием
Старый 11.05.2009, 21:39   #18
Diktofon
 
Регистрация: 07.05.2009
Сообщений: 5
По умолчанию

rpy3uH, а какими другими способами можно получить доступ к этим компонентам? Как я понял, вышеописанные процедуры относятся к получению доступа из Delphi к программам, написанным на Delphi. Если моя программа была написана, скажем, на С, и я хочу получить к ней доступ из Delphi, эти процедуры будут работать?
Diktofon вне форума Ответить с цитированием
Старый 11.05.2009, 22:11   #19
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

язык не важен
я из Дельфи получал доступ к прогам на С
таам используется ВИНАпи, а он и в африке ВИНАпи

просто программы на Дельфи имеют свои названия классов окон
а у С свои
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.05.2009, 21:04   #20
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Diktofon, я неправильно понял задачу. Надо из Delphi-программы получить доступ к программе MATLAB, так можно, но надо очень сильно захотеть.
rpy3uH вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление чужой программой через WEB. MethSpeed Безопасность, Шифрование 9 20.07.2008 14:45
Получить содержимое Memo в чужой программе. Иллидан Win Api 14 12.05.2008 14:39
открытие документа в чужой программе joker Win Api 2 22.10.2007 16:59
Управление чужой прогой MAcK Win Api 2 30.01.2007 14:02