.Net - Условие запуска ключа реестра - PullRequest
1 голос
/ 13 марта 2012

Я пытаюсь добавить условие запуска в развертывание моего пакета MSI, но оно не работает. Я хочу проверить, включено ли UAC на целевой машине. Мои значения для поиска в реестре:

 Property: UACSTATUS
 RegKey: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
 Root: vsdrrHKLM
 Value: EnableLUA

Значение имеет тип REG_DWORD. 1 для включения, 0 для отключения.

Затем я создал условие запуска:

 (Name): UACVerification
 Condition: UACSTATUS = 0
 InstallUrl: <left blank for now>
 Message: You must disable UAC prior to install this application.

Проблема в том, что это не работает. При тестировании на моем компьютере (на котором отключено UAC) оба сравнения для 0 или 1 в условии возвращают значение false и не позволяют мне продолжить установку.

Разве типы REG_DWORD не рассматриваются как числа? Я пытался использовать кавычки ("0" или "0"), но это также не работает.

Ответы [ 2 ]

0 голосов
/ 24 августа 2012

Типы REG_DWORD рассматриваются как логические.

0 = ложь 1 = верно

0 голосов
/ 13 марта 2012

Я бы проверил настройку HKEY.Убедитесь, что вы проверяете HKEY_CURRENT_USER?(или HKEY_LOCAL_MACHINE).Я сталкивался с подобной проблемой в прошлом, и если моя память работает должным образом, то это решило ее для меня.

О, и если это окажется правильным, то я считаю, что причина, по которой вы получаетеfalse, потому что в некоторых из этих ветвей System или UACSTATUS не существует.

...