Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
NikP
-
- Начинающий
-
-
- Сообщения: 2
- Зарегистрирован: 17.05.2005 (Вт) 16:10
- Откуда: Тула
NikP » 17.05.2005 (Вт) 16:26
Есть сетевая папка доступ на чтение которой открыт
только пользователю MyTest с паролем: testpas. Как
можно открыть из нее документ html с помощью
программы, если пользователь работает под другим логином???
С помощью стандартной команды Runas, что-то не получилось..
Если запускать в командной строке, то спрашивает пароль.
Например: runas /user:MyTest "notepad c:\ForMe\test.txt"
а далее идет запрос пароля для пользователя MyTest.
Как его программно ввести?
-
Igor_123
-
- Осторожный Баянист
-
-
- Сообщения: 1325
- Зарегистрирован: 21.07.2004 (Ср) 13:00
- Откуда: Днепропетровск
-
Igor_123 » 17.05.2005 (Вт) 16:45
/password:testpas
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.
Аватара (с) Тёмыч
-
NikP
-
- Начинающий
-
-
- Сообщения: 2
- Зарегистрирован: 17.05.2005 (Вт) 16:10
- Откуда: Тула
NikP » 17.05.2005 (Вт) 17:05
runas /user:MyTest "notepad c:\ForMe\test.txt" /password:testpas ни
runas /user:MyTest /password:testpas "notepad c:\ForMe\test.txt"
не работает!!! Так как в примечании (runas /?) сказано, что пароль надо вводить только когда он запрашивается.
Может быть можно обойтись без runas?!!!
-
tyomitch
-
- Пользователь #1352
-
-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 17.05.2005 (Вт) 19:06
Можно. Поиск в руки и CreateProcessWithLogonW на шею.
-
GM
-
- programador
-
-
- Сообщения: 1427
- Зарегистрирован: 24.06.2003 (Вт) 15:56
- Откуда: 194.67.52.100
-
GM » 17.05.2005 (Вт) 23:15
Скину еще раз пример с АПИ-гайда:
- Код: Выделить всё
Private Const LOGON_WITH_PROFILE = &H1&
Private Const LOGON_NETCREDENTIALS_ONLY = &H2&
Private Const CREATE_DEFAULT_ERROR_MODE = &H4000000
Private Const CREATE_NEW_CONSOLE = &H10&
Private Const CREATE_NEW_PROCESS_GROUP = &H200&
Private Const CREATE_SEPARATE_WOW_VDM = &H800&
Private Const CREATE_SUSPENDED = &H4&
Private Const CREATE_UNICODE_ENVIRONMENT = &H400&
Private Const ABOVE_NORMAL_PRIORITY_CLASS = &H8000&
Private Const BELOW_NORMAL_PRIORITY_CLASS = &H4000&
Private Const HIGH_PRIORITY_CLASS = &H80&
Private Const IDLE_PRIORITY_CLASS = &H40&
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const REALTIME_PRIORITY_CLASS = &H100&
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long
End Type
Private Type STARTUPINFO
cb As Long
lpReserved As Long
lpDesktop As Long
lpTitle As Long
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Byte
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Private Declare Function CreateProcessWithLogon Lib "Advapi32" Alias "CreateProcessWithLogonW" (ByVal lpUsername As Long, ByVal lpDomain As Long, ByVal lpPassword As Long, ByVal dwLogonFlags As Long, ByVal lpApplicationName As Long, ByVal lpCommandLine As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO, lpProcessInfo As PROCESS_INFORMATION) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub Form_Load()
Dim lpUsername As String, lpDomain As String, lpPassword As String, lpApplicationName As String
Dim lpCommandLine As String, lpCurrentDirectory As String
Dim StartInfo As STARTUPINFO, ProcessInfo As PROCESS_INFORMATION
lpUsername = "OtherUser"
lpDomain = ""
lpPassword = "other_user_password"
lpApplicationName = "C:\WINNT\NOTEPAD.EXE"
lpCommandLine = vbNullString 'use the same as lpApplicationName
lpCurrentDirectory = vbNullString 'use standard directory
StartInfo.cb = LenB(StartInfo) 'initialize structure
StartInfo.dwFlags = 0&
CreateProcessWithLogon StrPtr(lpUsername), StrPtr(lpDomain), StrPtr(lpPassword), LOGON_WITH_PROFILE, StrPtr(lpApplicationName), StrPtr(lpCommandLine), CREATE_DEFAULT_ERROR_MODE Or CREATE_NEW_CONSOLE Or CREATE_NEW_PROCESS_GROUP, ByVal 0&, StrPtr(lpCurrentDirectory), StartInfo, ProcessInfo
CloseHandle ProcessInfo.hThread 'close the handle to the main thread, since we don't use it
CloseHandle ProcessInfo.hProcess 'close the handle to the process, since we don't use it
'note that closing the handles of the main thread and the process do not terminate the process
'unload this application
Unload Me
End Sub
[/code]
الفيجوال بيسك الرابح
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: SemrushBot и гости: 189