在2K/XP下,有个软件运行时需要administrator的权限,但出于管理的原因,不可能给每个使用者这个权力,所以我想写一个LOADER,在LOADER里面以管理员身份加载软件(和RUNAS命令有点相似,不过RUNAS需要手工输入密码)。请问是否可以实现?
解决方案 »
- VB 打开一个变量的文件名 求解
- sendmessage 和postmessage 为什么不能关闭迅雷的弹出窗口
- 两个数组间的快速合并,请教高手帮助,谢谢!!!
- 请教查询图片数据库
- 如何让每输入只记录奇数次,而在label1里按顺序记录??
- 关于webbrowser的问题!
- 如何标准操作二进制类型字段
- 如何实现随机变换颜色??
- word文档转换为JPG
- 找了很久的<<高级 VISUAL BASIC编程>> (Matthew Curland著)终于找到了,散分!!!!!!!!!!!
- 穷的没分了,请大家帮忙.如何让datagrid显示行数?比如第一行,在最左边就显示"1"我看到很多表格控件都有.
- 关于sql的查询语句。按某一特性查找数据库;(菜鸟问题,在线等待啊!)
Option ExplicitPrivate 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
End Sub
我先试试