Суть проблемы в следующем: имеется фрагмент кода записи ключа в реестр прекрасно работающий в ХР...
- Код: Выделить всё
Const REG_SZ = 1
Const HKEY_LOCAL_MACHINE = &H80000002
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Const strPath = "SOFTWARE\Microsoft\aData"
Private Sub Form_Load()
'Создаем раздел SOFTWARE\Microsoft\aData...
CreateKeySetting HKEY_LOCAL_MACHINE, strPath
'Создаем ключ Param со значением aDataKey...
SaveValueSetting HKEY_LOCAL_MACHINE, strPath, "Param", "aDataKey"
End
End Sub
Private Sub CreateKeySetting(hKey As Long, strPath As String)
'Процедура создания подраздела в реестре...
Dim Ret
RegCreateKey hKey, strPath, Ret
RegCloseKey Ret
End Sub
Private Sub SaveValueSetting(hKey As Long, strPath As String, strValue As String, strData As String)
'Процедура записи ключа в реестр...
Dim Ret
RegCreateKey hKey, strPath, Ret
RegSetValueEx Ret, strValue, 0, REG_SZ, ByVal strData, Len(strData)
RegCloseKey Ret
End Sub
Но уже в Windows 7 он не работает. И хотя я зашел в систему под Админом, 7-ка все равно запрашивает права Админа для записи в реестр. Правый клик по файлу: «Запустить от имени Администратора» - решают проблему, и ключ в реестре создается. Но моя программа должна запускаться в AutoRun, и, желательно, без геморроя с паролем и админ правами.
ВНИМАНИЕ, вопрос!..
Как назначить при запуске моей проги записи данных в реестр админ полномочия на постоянной основе БЕЗ необходимости вводить пароль и прочие лишние действия? Команда Runas с параметром /savecred не работает, у 7-ки и тут выдрыгон: она не поддерживает /savecred. Короче: как сделать так, чтобы все работало как и на ХР без всяких дрыгалок?