Как запустить прогу с правами админа в Windows 7

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Как запустить прогу с правами админа в Windows 7

Сообщение Vova_2581 » 11.12.2013 (Ср) 13:31

Здравствуйте!
Суть проблемы в следующем: имеется фрагмент кода записи ключа в реестр прекрасно работающий в ХР...

Код: Выделить всё
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. Короче: как сделать так, чтобы все работало как и на ХР без всяких дрыгалок?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как запустить прогу с правами админа в Windows 7

Сообщение alibek » 11.12.2013 (Ср) 13:44

Нет никакой необходимости для программы, чтобы запускаться с правами администратора в autorun и вносить изменения в HKLM.
Если пишешь утилиту для себя, то можешь отключить UAC.
Lasciate ogni speranza, voi ch'entrate.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Как запустить прогу с правами админа в Windows 7

Сообщение Mikle » 11.12.2013 (Ср) 13:51

Vova_2581
В этой теме есть решение:
viewtopic.php?f=9&t=44761

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как запустить прогу с правами админа в Windows 7

Сообщение Vova_2581 » 12.12.2013 (Чт) 1:20

alibek писал(а):Если пишешь утилиту для себя, то можешь отключить UAC.

Хорошо, попробую... Вы думаете это поможет спасти "отца русской демократии"??? :)

Mikle
Та тема, что вы указали... ответ, имеется ввиду, в сообщении BV про манифест и requestedExecutionLevel ???
Про манифест слышал, но никогда не пользовался, а как использовать requestedExecutionLevel вообще не пойму.
В гугле все примеры на Си и .NET.
Или вы имели ввиду, что нужно будет запускать мою прогу через bat-файл, пример которого вы написали?
Если не трудно, не могли бы вы показать "на пальцах" как, где и что?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Как запустить прогу с правами админа в Windows 7

Сообщение Mikle » 12.12.2013 (Чт) 8:13

Vova_2581 писал(а):Или вы имели ввиду, что нужно будет запускать мою прогу через bat-файл, пример которого вы написали?

Да, я об этом. В том bat-файле нужно заменить эту строку:
Код: Выделить всё
regsvr32 %~dp0dx8vb.dll

На строку вызова своей программы, и всё.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 12.12.2013 (Чт) 14:37

Ну манифест же...

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как запустить прогу с правами админа в Windows 7

Сообщение Vova_2581 » 12.12.2013 (Чт) 14:57

Qwertiy
Да я понял... но я с этим дело никогда не имел. На будущее попробую разобраться, что это за зверь такой.

Mikle
Vova_2581 писал(а):Да, я об этом. В том bat-файле нужно заменить эту строку:Код: Выделить всёregsvr32 %~dp0dx8vb.dllНа строку вызова своей программы, и всё.


Все сделал... запустил bat-файл – работает! :) Данные записываются в реестр, но все равно при запуске моей проги в bat срабатывает UAC. :(

alibek
Самый точный ответ на мой вопрос! Когда я вообще отключил UAC все заработало как в старой, доброй ХР. И никаких заморочек.
БОЛЬШОЕ СПАСИБО, alibek! :)
...и всем кто, так или иначе, пытался мне помочь. Тему можно считать закрытой. :)

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 12.12.2013 (Чт) 15:05

Vova_2581 писал(а):но все равно при запуске моей проги в bat срабатывает UAC. :(

Так и будет, независимо от способа. Запрос не будет возникать только для служб и планировщика заданий.
Ну и в случаях, когда запускающее приложение уже имеет админские права.

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как запустить прогу с правами админа в Windows 7

Сообщение Vova_2581 » 12.12.2013 (Чт) 17:14

Ок, спасибо за пояснения.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 39

    TopList