powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение пути установленной программы.
5 сообщений из 5, страница 1 из 1
Определение пути установленной программы.
    #34847255
songv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача - определить в системном реестре WINDOWS наличие установленного архиватора WINRAR
И определить путь установки для того, чтобы из fOXa запустить внешний архиватор.
Если он установлен в C:\PROGRAM FILES - то все понятно. А вот если по другому пути - то как?
Если кто сталкивался - плиз, помогите
...
Рейтинг: 0 / 0
Определение пути установленной программы.
    #34848110
pitermax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так куда его не ставь в реестре он все равно вроде как прописывается.
...
Рейтинг: 0 / 0
Определение пути установленной программы.
    #34848111
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
   Определяем полный путь к EXCEL.EXE
*------------------------------------------------------------------------------
#define HKEY_LOCAL_MACHINE 0x80000002 
#define KEY_READ 0x00020019 
#define ERROR_SUCCESS  0 
 
DECLARE INTEGER RegOpenKeyEx IN ADVAPI32 INTEGER HKLM, STRING SubKey, INTEGER Dummy, INTEGER Access, INTEGER @hKey 
DECLARE INTEGER RegCloseKey IN ADVAPI32 INTEGER 
DECLARE INTEGER RegQueryValueEx IN ADVAPI32 INTEGER hKey, STRING ValueName, INTEGER Dummy, INTEGER Type, STRING Data, INTEGER @Size 

* это ветвь реестра, в которой находится интересующий нас параметр 
SubKey="Software\Microsoft\Windows\CurrentVersion\App Paths\EXCEL.EXE"
hkey= 0 

* Открываем эту ветвь и получаем её handle 
IF RegOpenKeyEx(HKEY_LOCAL_MACHINE, SubKey,  0 , KEY_READ, @hKey) != ERROR_SUCCESS 
   MESSAGEBOX("Не найден пакет MS Excel.Дальнейшая работа невозможна", 16 ,"Внимание") 
   
   IF File(lcFile)
      ERASE (lcFile)
   ENDIF
   RETURN 
ENDIF 

* "Path" - это название параметра, значение которого надо получить.
*------------------------------------------------------------------------------ 
*Сначала определяем, сколько памяти нам нужно зарезервировать, чтобы принять этот параметер 
nSize= 0  
RegQueryValueEx(hKey, "Path",  0 ,  0 ,  0 , @nSize) 

* Резервируем память 
lcResult=SPACE(nSize) 

* Теперь считываем значение параметра 
RegQueryValueEx(hKey,"Path", 0 , 0 ,@lcResult, @nSize) 

* Заканчиваем работать с реестром 
RegCloseKey(hKey) 

*   Формируем строку вызова
lcResult=ALLTRIM(STRTRAN(lcResult, Chr( 0 ), " ")) 

Кусок из работавшей программы. Сперто откудато из foxclub.ru
Откуда точно уже не помню за давностью лет. Надо поискать в решениях в разделе посвещеном Win API. Автору все равно спасибо :)
...
Рейтинг: 0 / 0
Определение пути установленной программы.
    #34848596
songv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чего-то сложновато. А есть какая-то готовая функция, которая позволяет считывать установленную программу из реестра WINRAR, WORD, ECXEL (по каким-то известным параметрам или ключам/адресам) ? И потом путь установки?
...
Рейтинг: 0 / 0
Определение пути установленной программы.
    #34848703
songv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все, спасибо. Не все было понятно. Заменили ECXEL на WINRAR и все получилось.
СПАСИБО за программку!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение пути установленной программы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]