用VB寫的一個元件,實現新增系統使用者,並新增到指定組
[@more@]宣告部分
Option Explicit
Const NERR_Success = 0
Const ERROR_MORE_DATA = 234&
Const MAX_PREFERRED_LENGTH = -1&
Const LG_INCLUDE_INDIRECT = &H1
Const User_Priv_User = &H1
Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Const NERR_BASE = 2100
Const MAX_NERR = NERR_BASE + 899
Const LOAD_LIBRARY_AS_DATAFILE = &H2
Const FORMAT_MESSAGE_FROM_HMODULE = &H800
Type TUser1 ’ Level 1
ptrName As Long
ptrPassword As Long
dwPasswordAge As Long
dwPriv As Long
ptrHomeDir As Long
ptrComment As Long
dwFlags As Long
ptrScriptPath As Long
End Type
Type USER_INFO_0
usri0_name As Long
End Type
Type LOCALGROUP_INFO_0
lgrpi0_name As Long
End Type
Type LOCALGROUP_USER_INFO_0
lgrui0_name As Long
End Type
Type UserInfo_1
Username As String
Password As String
PasswordAge As Long
Privilege As Long
HomeDir As String
Comment As Long
Flags As Long
ScriptPath As String
End Type
Type LOCALGROUP_MEMBERS_INFO_3
lgrmi3_domainandname As Long
End Type
Type USER_INFO_1003
usri1003_password As Long
End Type
Private Usr1 As UserInfo_1
’使用者所在組
Declare Function NetUserGetLocalGroups Lib "netapi32.dll" (ByVal ServerName As String, ByVal Username As String, ByVal Level As Long, ByVal flag As Long, bufptr As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long) As Long
’本地組
Declare Function NetLocalGroupEnum Lib "netapi32.dll" (ByVal ServerName As String, ByVal Level As Long, bufptr As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resumehandle As Long) As Long
Declare Function lstrlen Lib "Kernel32.dll" Alias "lstrlenW" (ByVal lpszString As Long) As Long
Declare Function lstrcpy Lib "Kernel32.dll" Alias "lstrcpyW" (lpszString1 As Any, lpszString2 As Any) As Long
Declare Function NetApiBufferFree Lib "netapi32.dll" (ByVal Buffer As Long) As Long
Declare Sub RtlMoveMemory Lib "Kernel32.dll" (Destination As Any, Source As Any, ByVal Length As Long)
’新增使用者
Private Declare Function NetUserAdd Lib "Netapi32" (ByVal ServerName As String, ByVal Level As Long, Buffer As Any, ParamErr As Long) As Long
’使用者列表
Declare Function NetUserEnum Lib "netapi32.dll" (ByVal ServerName As String, ByVal Level As Long, ByVal filter As Long, bufptr As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resume_handle As Long) As Long
’新增到本地組
Declare Function NetLocalGroupAddMembers Lib "netapi32.dll" (ByVal ServerName As String, ByVal GroupName As String, ByVal Level As Long, buf As Any, ByVal totalentries As Long) As Long
’刪除使用者
Declare Function NetUserDel Lib "netapi32.dll" (ServerName As Byte, Username As Byte) As Long
’從組中刪除使用者
Declare Function NetGroupDelUser Lib "netapi32.dll" (ServerName As Byte, GroupName As Byte, Username As Byte) As Long
’修改密碼
Declare Function NetUserChangePassword Lib "netapi32.dll" (ByVal domainname As String, ByVal Username As String, ByVal OldPassword As String, ByVal NewPassword As String) As Long
Private Declare Function NetGetDCName Lib "netapi32.dll" (ServerName As Long, domainname As Byte, bufptr As Long) As Long
Private Declare Function LoadLibraryEx Lib "kernel32" Alias "LoadLibraryExA" (ByVal lpLibFileName As String, ByVal hFile As Long, ByVal dwFlags As Long) As Long
Private Declare Function NetUserSetInfo Lib "netapi32.dll" (ByVal ServerName As String, ByVal Username As String, ByVal Level As Long, UserInfo As Any, ParmError As Long) As Long
Private Declare Sub lstrcpyW Lib "kernel32" (dest As Any, ByVal src As Any)
Private Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, ByVal lpSource As Long, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Any) As Long
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
函式部分
修改密碼
Function ChangePassword(ByVal ServerName As String, ByVal Username As String, ByVal OldPassword As String, ByVal NewPassword As String)
Dim strServer As String, strUserName As String
Dim strNewPassword As String, strOldPassword As String
Dim UI1003 As USER_INFO_1003
Dim dwLevel As Long
Dim lRet As String
Dim sNew As String
’strServer = StrConv(ServerName, vbUnicode)
strUserName = StrConv(Username, vbUnicode)
’strOldPassword = StrConv(OldPassword, vbUnicode)
strNewPassword = StrConv(NewPassword, vbUnicode)
If Left(ServerName, 2) = "" Then
strServer = StrConv(ServerName, vbUnicode)
Else
’ Domain was referenced, get the Primary Domain Controller
strServer = StrConv(GetPrimaryDCName(ServerName), vbUnicode)
End If
If OldPassword = "" Then
’ Administrative over-ride of existing password.
’ Does not require old password
dwLevel = 1003
sNew = NewPassword
UI1003.usri1003_password = StrPtr(sNew)
lRet = NetUserSetInfo(strServer, strUserName, dwLevel, UI1003, 0&)
Else
’ Set the Old Password and attempt to change the user’s password
strOldPassword = StrConv(OldPassword, vbUnicode)
lRet = NetUserChangePassword(strServer, strUserName, strOldPassword, strNewPassword)
End If
If lRet <> 0 Then
DisplayError lRet
Else
MsgBox "Password Change was Successful"
End If
End Function
新增使用者
Function UserAdd(ByVal ServerName As String, ByVal Username As String, ByVal Password As String) As String
ServerName = StrConv(ServerName, vbUnicode)
Usr1.Username = StrConv(Username, vbUnicode)
Usr1.Password = StrConv(Password, vbUnicode)
Usr1.Privilege = User_Priv_User
Usr1.Comment = 0
Usr1.Flags = 0
UserAdd = NetUserAdd(ServerName, 1, Usr1, 0)
End Function
新增使用者到組
Function AddUserToGroup(ByVal ServerName As String, ByVal GroupName As String, ByVal Username As String) As Long
Dim lngWin32apiResultCode As Long
Dim strServerName As String
Dim strLocalGroupName As String
Dim lngBufPtr As Long
Dim udtLGMemInfo As LOCALGROUP_MEMBERS_INFO_3
Dim strName As String
strServerName = StrConv(ServerName, vbUnicode)
strLocalGroupName = StrConv(GroupName, vbUnicode)
’strName = StrConv(UserName, vbUnicode)
strName = Username
udtLGMemInfo.lgrmi3_domainandname = StrPtr(strName)
lngWin32apiResultCode = NetLocalGroupAddMembers(strServerName, strLocalGroupName, 3, udtLGMemInfo, 1)
NetApiBufferFree lngBufPtr
End Function
列舉使用者
Sub EnumUsers(cboUsers As ComboBox)
Dim lngWin32apiResultCode As Long
Dim strServerName As String
Dim lngBufPtr As Long
Dim lngMaxLen As Long
Dim lngEntriesRead As Long
Dim lngTotalEntries As Long
Dim lngResumeHandle As Long
Dim udtUserInfo0 As USER_INFO_0
Dim lngEntry As Long
strServerName = StrConv("", vbUnicode)
Do
lngWin32apiResultCode = NetUserEnum(strServerName, 0, 0, lngBufPtr, lngMaxLen, lngEntriesRead, lngTotalEntries, lngResumeHandle)
If (lngWin32apiResultCode = NERR_Success) Or (lngWin32apiResultCode = ERROR_MORE_DATA) Then
For lngEntry = 0 To lngEntriesRead - 1
RtlMoveMemory udtUserInfo0, ByVal lngBufPtr + Len(udtUserInfo0) * lngEntry, Len(udtUserInfo0)
cboUsers.AddItem PointerToString(udtUserInfo0.usri0_name)
Next
End If
If lngBufPtr <> 0 Then
NetApiBufferFree lngBufPtr
End If
Loop Until lngEntriesRead = lngTotalEntries
End Sub
列舉本地組
Sub EnumLocalGroups(lstLocalGroups As ListBox) Dim lngWin32apiResultCode As Long
Dim strServerName As String
Dim lngBufPtr As Long
Dim lngEntriesRead As Long
Dim lngTotalEntries As Long
Dim lngResumeHandle As Long
Dim udtLGInfo0 As LOCALGROUP_INFO_0
Dim lngEntry As Long
lstLocalGroups.Clear
strServerName = StrConv("", vbUnicode)
Do
lngWin32apiResultCode = NetLocalGroupEnum(strServerName, 0, lngBufPtr, MAX_PREFERRED_LENGTH, lngEntriesRead, lngTotalEntries, lngResumeHandle)
If (lngWin32apiResultCode = NERR_Success) Or (lngWin32apiResultCode = ERROR_MORE_DATA) Then
For lngEntry = 0 To lngEntriesRead - 1
RtlMoveMemory udtLGInfo0, ByVal lngBufPtr + Len(udtLGInfo0) * lngEntry, Len(udtLGInfo0)
lstLocalGroups.AddItem PointerToString(udtLGInfo0.lgrpi0_name)
Next
End If
If lngBufPtr <> 0 Then
NetApiBufferFree lngBufPtr
End If
Loop While lngWin32apiResultCode = ERROR_MORE_DATA
End Sub
使用者所在組
Sub EnumUserLocalGroups(lstUserLocalGroups As ListBox, lstLocalGroups As ListBox, cmbUser As ComboBox)
Dim lngWin32apiResultCode As Long
Dim strServerName As String
Dim strUserName As String
Dim lngBufPtr As Long
Dim lngEntriesRead As Long
Dim lngTotalEntries As Long
Dim lngResumeHandle As Long
Dim udtLGInfo0 As LOCALGROUP_USER_INFO_0
Dim lngEntry As Long
Dim strLocalGroup As String
Dim lngListCounter As Long
lstUserLocalGroups.Clear
strServerName = StrConv("", vbUnicode)
strUserName = StrConv(cmbUser.Text, vbUnicode)
Do
lngWin32apiResultCode = NetUserGetLocalGroups(strServerName, strUserName, 0, LG_INCLUDE_INDIRECT, lngBufPtr, MAX_PREFERRED_LENGTH, lngEntriesRead, lngTotalEntries)
If (lngWin32apiResultCode = NERR_Success) Or (lngWin32apiResultCode = ERROR_MORE_DATA) Then
For lngEntry = 0 To lngEntriesRead - 1
RtlMoveMemory udtLGInfo0, ByVal lngBufPtr + Len(udtLGInfo0) * lngEntry, Len(udtLGInfo0)
strLocalGroup = PointerToString(udtLGInfo0.lgrui0_name)
lstUserLocalGroups.AddItem strLocalGroup
’With lstLocalGroups
’For lngListCounter = 0 To .ListCount - 1
’If strLocalGroup = .List(lngListCounter) Then
’.RemoveItem (lngListCounter)
’End If
’Next
’End With
Next
End If
If lngBufPtr <> 0 Then
NetApiBufferFree lngBufPtr
End If
Loop Until lngEntriesRead = lngTotalEntries
End Sub
刪除使用者
Function DelUser(ByVal SName As String, ByVal UName As String) As Long
Dim UNArray() As Byte, SNArray() As Byte
UNArray = UName & vbNullChar
SNArray = SName & vbNullChar
DelUser = NetUserDel(SNArray(0), UNArray(0))
End Function
Option Explicit
Const NERR_Success = 0
Const ERROR_MORE_DATA = 234&
Const MAX_PREFERRED_LENGTH = -1&
Const LG_INCLUDE_INDIRECT = &H1
Const User_Priv_User = &H1
Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Const NERR_BASE = 2100
Const MAX_NERR = NERR_BASE + 899
Const LOAD_LIBRARY_AS_DATAFILE = &H2
Const FORMAT_MESSAGE_FROM_HMODULE = &H800
Type TUser1 ’ Level 1
ptrName As Long
ptrPassword As Long
dwPasswordAge As Long
dwPriv As Long
ptrHomeDir As Long
ptrComment As Long
dwFlags As Long
ptrScriptPath As Long
End Type
Type USER_INFO_0
usri0_name As Long
End Type
Type LOCALGROUP_INFO_0
lgrpi0_name As Long
End Type
Type LOCALGROUP_USER_INFO_0
lgrui0_name As Long
End Type
Type UserInfo_1
Username As String
Password As String
PasswordAge As Long
Privilege As Long
HomeDir As String
Comment As Long
Flags As Long
ScriptPath As String
End Type
Type LOCALGROUP_MEMBERS_INFO_3
lgrmi3_domainandname As Long
End Type
Type USER_INFO_1003
usri1003_password As Long
End Type
Private Usr1 As UserInfo_1
’使用者所在組
Declare Function NetUserGetLocalGroups Lib "netapi32.dll" (ByVal ServerName As String, ByVal Username As String, ByVal Level As Long, ByVal flag As Long, bufptr As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long) As Long
’本地組
Declare Function NetLocalGroupEnum Lib "netapi32.dll" (ByVal ServerName As String, ByVal Level As Long, bufptr As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resumehandle As Long) As Long
Declare Function lstrlen Lib "Kernel32.dll" Alias "lstrlenW" (ByVal lpszString As Long) As Long
Declare Function lstrcpy Lib "Kernel32.dll" Alias "lstrcpyW" (lpszString1 As Any, lpszString2 As Any) As Long
Declare Function NetApiBufferFree Lib "netapi32.dll" (ByVal Buffer As Long) As Long
Declare Sub RtlMoveMemory Lib "Kernel32.dll" (Destination As Any, Source As Any, ByVal Length As Long)
’新增使用者
Private Declare Function NetUserAdd Lib "Netapi32" (ByVal ServerName As String, ByVal Level As Long, Buffer As Any, ParamErr As Long) As Long
’使用者列表
Declare Function NetUserEnum Lib "netapi32.dll" (ByVal ServerName As String, ByVal Level As Long, ByVal filter As Long, bufptr As Any, ByVal prefmaxlen As Long, entriesread As Long, totalentries As Long, resume_handle As Long) As Long
’新增到本地組
Declare Function NetLocalGroupAddMembers Lib "netapi32.dll" (ByVal ServerName As String, ByVal GroupName As String, ByVal Level As Long, buf As Any, ByVal totalentries As Long) As Long
’刪除使用者
Declare Function NetUserDel Lib "netapi32.dll" (ServerName As Byte, Username As Byte) As Long
’從組中刪除使用者
Declare Function NetGroupDelUser Lib "netapi32.dll" (ServerName As Byte, GroupName As Byte, Username As Byte) As Long
’修改密碼
Declare Function NetUserChangePassword Lib "netapi32.dll" (ByVal domainname As String, ByVal Username As String, ByVal OldPassword As String, ByVal NewPassword As String) As Long
Private Declare Function NetGetDCName Lib "netapi32.dll" (ServerName As Long, domainname As Byte, bufptr As Long) As Long
Private Declare Function LoadLibraryEx Lib "kernel32" Alias "LoadLibraryExA" (ByVal lpLibFileName As String, ByVal hFile As Long, ByVal dwFlags As Long) As Long
Private Declare Function NetUserSetInfo Lib "netapi32.dll" (ByVal ServerName As String, ByVal Username As String, ByVal Level As Long, UserInfo As Any, ParmError As Long) As Long
Private Declare Sub lstrcpyW Lib "kernel32" (dest As Any, ByVal src As Any)
Private Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, ByVal lpSource As Long, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Any) As Long
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
函式部分
修改密碼
Function ChangePassword(ByVal ServerName As String, ByVal Username As String, ByVal OldPassword As String, ByVal NewPassword As String)
Dim strServer As String, strUserName As String
Dim strNewPassword As String, strOldPassword As String
Dim UI1003 As USER_INFO_1003
Dim dwLevel As Long
Dim lRet As String
Dim sNew As String
’strServer = StrConv(ServerName, vbUnicode)
strUserName = StrConv(Username, vbUnicode)
’strOldPassword = StrConv(OldPassword, vbUnicode)
strNewPassword = StrConv(NewPassword, vbUnicode)
If Left(ServerName, 2) = "" Then
strServer = StrConv(ServerName, vbUnicode)
Else
’ Domain was referenced, get the Primary Domain Controller
strServer = StrConv(GetPrimaryDCName(ServerName), vbUnicode)
End If
If OldPassword = "" Then
’ Administrative over-ride of existing password.
’ Does not require old password
dwLevel = 1003
sNew = NewPassword
UI1003.usri1003_password = StrPtr(sNew)
lRet = NetUserSetInfo(strServer, strUserName, dwLevel, UI1003, 0&)
Else
’ Set the Old Password and attempt to change the user’s password
strOldPassword = StrConv(OldPassword, vbUnicode)
lRet = NetUserChangePassword(strServer, strUserName, strOldPassword, strNewPassword)
End If
If lRet <> 0 Then
DisplayError lRet
Else
MsgBox "Password Change was Successful"
End If
End Function
新增使用者
Function UserAdd(ByVal ServerName As String, ByVal Username As String, ByVal Password As String) As String
ServerName = StrConv(ServerName, vbUnicode)
Usr1.Username = StrConv(Username, vbUnicode)
Usr1.Password = StrConv(Password, vbUnicode)
Usr1.Privilege = User_Priv_User
Usr1.Comment = 0
Usr1.Flags = 0
UserAdd = NetUserAdd(ServerName, 1, Usr1, 0)
End Function
新增使用者到組
Function AddUserToGroup(ByVal ServerName As String, ByVal GroupName As String, ByVal Username As String) As Long
Dim lngWin32apiResultCode As Long
Dim strServerName As String
Dim strLocalGroupName As String
Dim lngBufPtr As Long
Dim udtLGMemInfo As LOCALGROUP_MEMBERS_INFO_3
Dim strName As String
strServerName = StrConv(ServerName, vbUnicode)
strLocalGroupName = StrConv(GroupName, vbUnicode)
’strName = StrConv(UserName, vbUnicode)
strName = Username
udtLGMemInfo.lgrmi3_domainandname = StrPtr(strName)
lngWin32apiResultCode = NetLocalGroupAddMembers(strServerName, strLocalGroupName, 3, udtLGMemInfo, 1)
NetApiBufferFree lngBufPtr
End Function
列舉使用者
Sub EnumUsers(cboUsers As ComboBox)
Dim lngWin32apiResultCode As Long
Dim strServerName As String
Dim lngBufPtr As Long
Dim lngMaxLen As Long
Dim lngEntriesRead As Long
Dim lngTotalEntries As Long
Dim lngResumeHandle As Long
Dim udtUserInfo0 As USER_INFO_0
Dim lngEntry As Long
strServerName = StrConv("", vbUnicode)
Do
lngWin32apiResultCode = NetUserEnum(strServerName, 0, 0, lngBufPtr, lngMaxLen, lngEntriesRead, lngTotalEntries, lngResumeHandle)
If (lngWin32apiResultCode = NERR_Success) Or (lngWin32apiResultCode = ERROR_MORE_DATA) Then
For lngEntry = 0 To lngEntriesRead - 1
RtlMoveMemory udtUserInfo0, ByVal lngBufPtr + Len(udtUserInfo0) * lngEntry, Len(udtUserInfo0)
cboUsers.AddItem PointerToString(udtUserInfo0.usri0_name)
Next
End If
If lngBufPtr <> 0 Then
NetApiBufferFree lngBufPtr
End If
Loop Until lngEntriesRead = lngTotalEntries
End Sub
列舉本地組
Sub EnumLocalGroups(lstLocalGroups As ListBox) Dim lngWin32apiResultCode As Long
Dim strServerName As String
Dim lngBufPtr As Long
Dim lngEntriesRead As Long
Dim lngTotalEntries As Long
Dim lngResumeHandle As Long
Dim udtLGInfo0 As LOCALGROUP_INFO_0
Dim lngEntry As Long
lstLocalGroups.Clear
strServerName = StrConv("", vbUnicode)
Do
lngWin32apiResultCode = NetLocalGroupEnum(strServerName, 0, lngBufPtr, MAX_PREFERRED_LENGTH, lngEntriesRead, lngTotalEntries, lngResumeHandle)
If (lngWin32apiResultCode = NERR_Success) Or (lngWin32apiResultCode = ERROR_MORE_DATA) Then
For lngEntry = 0 To lngEntriesRead - 1
RtlMoveMemory udtLGInfo0, ByVal lngBufPtr + Len(udtLGInfo0) * lngEntry, Len(udtLGInfo0)
lstLocalGroups.AddItem PointerToString(udtLGInfo0.lgrpi0_name)
Next
End If
If lngBufPtr <> 0 Then
NetApiBufferFree lngBufPtr
End If
Loop While lngWin32apiResultCode = ERROR_MORE_DATA
End Sub
使用者所在組
Sub EnumUserLocalGroups(lstUserLocalGroups As ListBox, lstLocalGroups As ListBox, cmbUser As ComboBox)
Dim lngWin32apiResultCode As Long
Dim strServerName As String
Dim strUserName As String
Dim lngBufPtr As Long
Dim lngEntriesRead As Long
Dim lngTotalEntries As Long
Dim lngResumeHandle As Long
Dim udtLGInfo0 As LOCALGROUP_USER_INFO_0
Dim lngEntry As Long
Dim strLocalGroup As String
Dim lngListCounter As Long
lstUserLocalGroups.Clear
strServerName = StrConv("", vbUnicode)
strUserName = StrConv(cmbUser.Text, vbUnicode)
Do
lngWin32apiResultCode = NetUserGetLocalGroups(strServerName, strUserName, 0, LG_INCLUDE_INDIRECT, lngBufPtr, MAX_PREFERRED_LENGTH, lngEntriesRead, lngTotalEntries)
If (lngWin32apiResultCode = NERR_Success) Or (lngWin32apiResultCode = ERROR_MORE_DATA) Then
For lngEntry = 0 To lngEntriesRead - 1
RtlMoveMemory udtLGInfo0, ByVal lngBufPtr + Len(udtLGInfo0) * lngEntry, Len(udtLGInfo0)
strLocalGroup = PointerToString(udtLGInfo0.lgrui0_name)
lstUserLocalGroups.AddItem strLocalGroup
’With lstLocalGroups
’For lngListCounter = 0 To .ListCount - 1
’If strLocalGroup = .List(lngListCounter) Then
’.RemoveItem (lngListCounter)
’End If
’Next
’End With
Next
End If
If lngBufPtr <> 0 Then
NetApiBufferFree lngBufPtr
End If
Loop Until lngEntriesRead = lngTotalEntries
End Sub
刪除使用者
Function DelUser(ByVal SName As String, ByVal UName As String) As Long
Dim UNArray() As Byte, SNArray() As Byte
UNArray = UName & vbNullChar
SNArray = SName & vbNullChar
DelUser = NetUserDel(SNArray(0), UNArray(0))
End Function
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9437124/viewspace-1016748/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 將使用者新增到一個指定組 linux usermodLinux
- linux建立使用者並新增到sudo使用者組中Linux
- 新建使用者並將使用者新增到root使用者組內
- 在 Linux 中把使用者新增到組的四個方法Linux
- React 實現一個簡單實用的 Form 元件ReactORM元件
- 用Python寫一個FUSE(使用者態檔案系統)檔案系統Python
- Aero:用rust編寫的新現代作業系統Rust作業系統
- mysql8.0新增使用者,並指定許可權MySql
- win10系統下怎麼將應用程式新增到信任列表Win10
- Win10系統中怎麼將Store遊戲應用新增到SteamWin10遊戲
- 實現一個SSO系統
- 用canvas實現一個vue彈幕元件CanvasVue元件
- 用VB編寫一個彈出選單類 (轉)
- 【DB2學習】如何把root 使用者新增到DB2 組DB2
- 一次ASM新增新的磁碟組ASM
- 用 class 寫法完整實現一個 PromisePromise
- Linux中awk命令實現指定欄位的第一個字母大寫Linux
- Linux useradd 命令實現系統使用者及使用者組的管理Linux
- 實現一個沙漏⏳元件元件
- 實現一個webscoket聊天系統Web
- [資料庫中介軟體]將使用者新增到DB2組授權資料庫DB2
- 使用TypeScript給Vue 3.0寫一個指令實現元件拖拽TypeScriptVue元件
- Win10系統下怎麼將pin新增到使用者賬戶_win10新增PIN密碼的方法Win10密碼
- 如何編寫一個可複用元件元件
- 用ssh思想寫的一個學生資訊管理系統
- spring注入一個實體bean的集合並指定順序SpringBean
- 一個用於實現並行執行的 Java actor 庫並行Java
- 如何寫一個實用的 bind?
- 只允許指定使用者或組應用組策略
- MX記錄獲取元件(vb實現) (轉)元件
- 如何把一個ABAP檢視新增到SAP GUI的收藏夾裡GUI
- react實現一個button元件React元件
- win10新增新使用者的方法_w10系統怎麼增加新使用者Win10
- 在Linux中,如何新增一個使用者到特定的組?Linux
- 一個表單中的資料新增到不同的資料表中
- 建立一個連線資料庫的VB元件 (轉)資料庫元件
- Linux系統中如何新增刪除使用者及使用者組?Linux
- 在Linux中, 如何建立一個新使用者和新組?Linux