Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение пути установленной программы. / 5 сообщений из 5, страница 1 из 1
04.10.2007, 16:06
    #34847255
songv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение пути установленной программы.
Задача - определить в системном реестре WINDOWS наличие установленного архиватора WINRAR
И определить путь установки для того, чтобы из fOXa запустить внешний архиватор.
Если он установлен в C:\PROGRAM FILES - то все понятно. А вот если по другому пути - то как?
Если кто сталкивался - плиз, помогите
...
Рейтинг: 0 / 0
04.10.2007, 22:05
    #34848110
pitermax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение пути установленной программы.
так куда его не ставь в реестре он все равно вроде как прописывается.
...
Рейтинг: 0 / 0
04.10.2007, 22:06
    #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
05.10.2007, 09:58
    #34848596
songv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение пути установленной программы.
чего-то сложновато. А есть какая-то готовая функция, которая позволяет считывать установленную программу из реестра WINRAR, WORD, ECXEL (по каким-то известным параметрам или ключам/адресам) ? И потом путь установки?
...
Рейтинг: 0 / 0
05.10.2007, 10:22
    #34848703
songv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение пути установленной программы.
Все, спасибо. Не все было понятно. Заменили ECXEL на WINRAR и все получилось.
СПАСИБО за программку!!!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определение пути установленной программы. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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