Чтение значений реестра с помощью cmake - PullRequest
4 голосов
/ 19 ноября 2009

На компьютере с Windows 7 я не могу прочитать значения реестра, содержащие точку с запятой.

Например, если у вас есть 7-zip, запустите следующее

SET(MYPATH  [HKEY_LOCAL_MACHINE\\SOFTWARE\\7-Zip;Path])
MESSAGE("MYPATH = ${MYPATH}")

Результаты в

MYPATH = [HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip;Path]

вместо фактического пути согласно следующему thread . Я думаю, что поддержка cmake для путей реестра, которые содержат ";" не работают на Windows 7. Кто-нибудь может это подтвердить? Есть ли обходной путь?

1 Ответ

5 голосов
/ 26 декабря 2009

Согласно вики , вы не можете использовать SET для просмотра значения ключа реестра. Значение реестра читается только тогда, когда вы выполняете какие-либо операции с кешем. Например, следующий код должен вывести желаемый путь:

GET_FILENAME_COMPONENT(MYPATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\7-Zip;Path]"
                       ABSOLUTE CACHE)
MESSAGE("MYPATH = ${MYPATH}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...