Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: CreateProcessAsUser Добавлено: 11.12.02 17:33  

Автор вопроса:  virus13k

Кто-нибудь может на примере показать, как использовать функцию CreateProcessAsUser или как иначе можно запустить прогу от имени другого пользователя???

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 Cooller



Вопросов: 11
Ответов: 32
 Профиль | | #1 Добавлено: 09.11.08 21:19
вопрос заданный 4 года назад до сих пор актуален:) кто-нить знает?

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 09.11.08 21:28
MSDN знает.

Ответить

Номер ответа: 3
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #3
Добавлено: 11.11.08 01:25
  1. Private Type STARTUPINFO
  2.         cb As Long
  3.         lpReserved As Long
  4.         lpDesktop As Long
  5.         lpTitle As Long
  6.         dwX As Long
  7.         dwY As Long
  8.         dwXSize As Long
  9.         dwYSize As Long
  10.         dwXCountChars As Long
  11.         dwYCountChars As Long
  12.         dwFillAttribute As Long
  13.         dwFlags As Long
  14.         wShowWindow As Integer
  15.         cbReserved2 As Integer
  16.         lpReserved2 As Long
  17.         hStdInput As Long
  18.         hStdOutput As Long
  19.         hStdError As Long
  20. End Type
  21. Private Type PROCESS_INFORMATION
  22.         hProcess As Long
  23.         hThread As Long
  24.         dwProcessId As Long
  25.         dwThreadId As Long
  26. End Type
  27.  
  28. Private Declare Function LogonUser Lib "Advapi32" Alias "LogonUserA" (ByVal lpszUsername As String, ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As Long, ByVal dwLogonProvider As Long, phToken As Long) As Long
  29. Private Declare Function CreateProcessAsUserA Lib "kernel32" (ByVal hToken As Long, ByVal lpApplicationName As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As String, ByVal lpCurrentDirectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
  30.  
  31. Private Const LOGON32_LOGON_INTERACTIVE = 2
  32. Private Const LOGON32_PROVIDER_DEFAULT = 0
  33. Private Const NORMAL_PRIORITY_CLASS = &H20
  34. Private Const INVALID_HANDLE_VALUE = -1
  35.  
  36. Function CreateProcessAsUser(ByVal UserName As String, ByVal Domain As String, ByVal Password As String, ByVal CommandLine As String) As Long
  37.     Dim hToken As Long
  38.     Dim SI As STARTUPINFO
  39.     Dim PI As PROCESS_INFORMATION
  40.     SI.cb = Len(SI)
  41.     CreateProcessAsUser = INVALID_HANDLE_VALUE
  42.     If Not LogonUser(UserName, Domain, Password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, hToken) Then Stop 'Exit Function
  43.     Debug.Print Err.LastDllError
  44.     If Not CreateProcessAsUserA(hToken, vbNullString, CommandLine, ByVal 0&, ByVal 0&, False, NORMAL_PRIORITY_CLASS, ByVal 0&, ByVal 0&, SI, PI) Then Exit Function
  45.     CreateProcessAsUser = PI.hProcess
  46. End Function
  47.  
  48. Private Sub Form_Load()
  49.     CreateProcessAsUser "TestUser", "DOMKRATT_PC", "MegaPassword1", "notepad.exe"
  50. End Sub

А вообще проще юзать АПИ CreateProcessWithLogon =)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам