Вызов программы с запросом на права администратора - VB

Узнай цену своей работы

Формулировка задачи:

Собственно, из основной программы вызываются вспомогательные программы, которым требуются права администратора Но, почему то для одной программы окошко с запросом прав выскакивает, а для другой нет Вот думаю, что делать? Вызывать программы с помощью CreateProcess? Как прикрутить к ShellExecuteEx айпишку ожидания - WaitForSingleObject ? голова кругом уже идет... как можно просто заставить ехе-шник требовать права администратора при запуске? (естественно в самом ехе-шнике) // нужно не только вызвать запросив права администратора, но и дождаться заверешния Пытался нагуглить по поводу записей в реестре об запросах прав Вот что нашел, но так и не понял как использовать...
Спойлер

Не по теме:

я надеюсь ссылки на другие форумы данной тематики не являются рекламой?

помогите нубу

Решение задачи: «Вызов программы с запросом на права администратора»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Sub Main()
  4.   MsgBox "Run"
  5.   Call CheckUAC
  6.   'main routine ...
  7. End Sub
  8.  
  9. Private Sub CheckUAC()
  10.   Dim colOS, oOS, strOSLong, oShellApp
  11.  
  12.   Set colOS = GetObject("winmgmts:\root\cimv2").ExecQuery("Select * from Win32_OperatingSystem")
  13.   For Each oOS In colOS
  14.     strOSLong = oOS.Version
  15.   Next
  16.  
  17.   If Left(strOSLong, 1) = "6" Then
  18.     If Not isAdminRights Then
  19.         Set oShellApp = CreateObject("Shell.Application")
  20.         oShellApp.ShellExecute App.Path & "\" & App.EXEName & ".exe", "", "", "runas", 1
  21.         End
  22.     End If
  23.   End If
  24. End Sub
  25.  
  26. Function isAdminRights()
  27.     Const HKCU = &H80000001, HKLM = &H80000002, KQV = &H1, KSV = &H2
  28.     Dim oReg, strKey, intErrNum, flagAccess
  29.     Set oReg = GetObject("winmgmts:root\default:StdRegProv")
  30.     strKey = "System\CurrentControlSet\Control\Session Manager"
  31.     intErrNum = oReg.CheckAccess(HKLM, strKey, KQV + KSV, flagAccess)
  32.     isAdminRights = flagAccess
  33.     MsgBox isAdminRights
  34. End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы