Здравствуйте. Не подскажете, как можно проверить существование ключа реестра? Само значение ключа не важно.
Необходимо для Launch Condition в WindowsInstaller.
Как проверяется наличие файла на диске мне известно, но там сразу - условие существования (FILEEXISTS), а при добавления условия проверки на ключ реестра, в свойствах условия добавляется ещё и поле значения ключа. Оно нафиг мне не нужно, так как значение ключа, если он и существует, мне не известно. Нужно знать только сам факт существования. Потому, что если он существует, я знаю, что в системе есть определенная переменная среды, и я пользуюсь её значением для определения каталога установки по-умолчанию.
А вообще, вся каша заварилась для того, чтобы устанавливать файлы в директорию, путь к которой храниться в переменной среды. Но может сложиться так, что при установке этой переменной может еще и не быть в системе. Тогда мне надо прервать установку. Как решить проблему?
Windows Installer. как проверить существование ключа реестра
Модераторы: Duncon, Hawk, Romeo, Eugie
Redcat, Думаю, если нужная тебе переменная реестра не существует, то функция чтения переменной реестра вернет ошибку:
LONG RegQueryValueEx(
HKEY hKey, // handle to key
LPCTSTR lpValueName, // value name
LPDWORD lpReserved, // reserved
LPDWORD lpType, // type buffer
LPBYTE lpData, // data buffer
LPDWORD lpcbData // size of data buffer
);
Return Values
If the function succeeds, the return value is ERROR_SUCCESS.
If the function fails, the return value is a nonzero error code defined in Winerror.h.
LONG RegQueryValueEx(
HKEY hKey, // handle to key
LPCTSTR lpValueName, // value name
LPDWORD lpReserved, // reserved
LPDWORD lpType, // type buffer
LPBYTE lpData, // data buffer
LPDWORD lpcbData // size of data buffer
);
Return Values
If the function succeeds, the return value is ERROR_SUCCESS.
If the function fails, the return value is a nonzero error code defined in Winerror.h.
Да, но я создаю Setup в MS Visual Studio Setup Project. Там негде кодировать, все настраивается с помощью свойств. Я не знаю как это выполнить
-
- Сообщения: 2
- Зарегистрирован: 31 июл 2007, 00:39
- Откуда: Столица нашей необъятной
- Контактная информация:
По поводу
KeyExist( )
Action: Checks for the existence of a registry subkey.
Syntax: KEYEXIST ("subkey")
Parameters: Subkey - Identifies the subkey you want to locate.
Returns: 1 Subkey found
0 Subkey not found
Надеюсь перевод не особо нужен?
скрипт займет строчек пять кода.
Впрочем, полагаю, практически в любом серьезном языке есть функции, позволяющие проверить наличие ключа реестра.
я только недавно всерьез начал изучать программирование. Начал с KiXtart - скриптового языка. так вот там есть функция:" писал(а):... как можно проверить существование ключа реестра?...
KeyExist( )
Action: Checks for the existence of a registry subkey.
Syntax: KEYEXIST ("subkey")
Parameters: Subkey - Identifies the subkey you want to locate.
Returns: 1 Subkey found
0 Subkey not found
Надеюсь перевод не особо нужен?

Впрочем, полагаю, практически в любом серьезном языке есть функции, позволяющие проверить наличие ключа реестра.