Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Технологии
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.08.2015, 10:29
dolar18 dolar18 вне форума
Прохожий
 
Регистрация: 26.06.2015
Сообщения: 6
Версия Delphi: DELPHI XE5, VS
Репутация: 10
По умолчанию Узнать путь установленной программы

Я могу найти программу через ОLE

Код:
Acad:=GetActiveOleObject('AutoCAD.Application') as IAcadApplication;
IsOLEObjectInstalled('AutoCAD.Application')

Как узнать где он установлен? В какой папке?

Последний раз редактировалось lmikle, 25.08.2015 в 19:41.
Ответить с цитированием
  #2  
Старый 25.08.2015, 10:39
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от dolar18
...Как узнать где он установлен? В какой папке?
Пример из drkb (02121)
Код:
uses
TlHelp32;

function GetExeFilePath(ExeFileName: String): String;
var
hSnapshot, hSnapshot2: THandle;
Proc: TProcessEntry32;
m: TModuleEntry32;
begin
Result := '';
hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
try
   proc.dwSize := Sizeof(proc);
   if Process32First(hSnapshot, proc) then
   repeat
     if AnsiSameText(proc.szExeFile, ExeFileName) then
     begin
       hSnapshot2 := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,
         proc.th32ProcessID);
       try
         m.dwSize := SizeOf(TModuleEntry32);
         if Module32First(hSnapshot2, m) then
         begin
           Result := m.szExePath;
           Exit;
         end;
       finally
         CloseHandle(hSnapshot2);
       end;
     end;
   until not Process32Next(hSnapshot, proc);
finally
   CloseHandle(hSnapshot);
end;
end;
Ответить с цитированием
  #3  
Старый 25.08.2015, 10:52
dolar18 dolar18 вне форума
Прохожий
 
Регистрация: 26.06.2015
Сообщения: 6
Версия Delphi: DELPHI XE5, VS
Репутация: 10
По умолчанию

Я так понял это путь к запущенной программе, да?
Ответить с цитированием
  #4  
Старый 25.08.2015, 10:59
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Да это так, проверил, но судя по коду искомая программа запущена, это путь до неё найдёт
Ответить с цитированием
  #5  
Старый 14.09.2015, 10:37
dreindeimos dreindeimos вне форума
Заблокирован
 
Регистрация: 04.06.2015
Сообщения: 12
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от dolar18
Я так понял это путь к запущенной программе, да?
Да, глупый вопрос
Ответить с цитированием
  #6  
Старый 14.09.2015, 11:37
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

на примере OLE Excel:
-ищем в реестре в "HKEY_CLASSES_ROOT" раздел "Excel.Application"
-если нашли идем в раздел "CLSID"
-если зашли берем параметр по умолчанию: "{00024500-0000-0000-C000-000000000046}"
-ищем в реестре в "HKEY_CLASSES_ROOT\CLSID" раздел "{00024500-0000-0000-C000-000000000046}"
-если нашли идем в раздел "LocalServer32"
-если зашли берем параметр по умолчанию: "C:\PROGRA~1\MICROS~2\Office14\EXCEL.EXE /automation"

по сути это обратный процесс регистрации объекта автоматизации
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter