|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Узнать путь установленной программы
Я могу найти программу через ОLE
Код:
Acad:=GetActiveOleObject('AutoCAD.Application') as IAcadApplication; IsOLEObjectInstalled('AutoCAD.Application') Как узнать где он установлен? В какой папке? Последний раз редактировалось lmikle, 25.08.2015 в 19:41. |
#2
|
||||
|
||||
Цитата:
Код:
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
|
|||
|
|||
Я так понял это путь к запущенной программе, да?
|
#4
|
||||
|
||||
Да это так, проверил, но судя по коду искомая программа запущена, это путь до неё найдёт
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
Цитата:
|
#6
|
||||
|
||||
на примере 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" по сути это обратный процесс регистрации объекта автоматизации Пишу программы за еду. __________________ |