Dùng VBA xác định tên của máy tính

Liên hệ QC

PhanTuHuong

VBA & VB.NET for Excel & AutoCad
Thành viên danh dự
Tham gia
13/6/06
Bài viết
7,183
Được thích
24,627
Bạn có thể xác định được tên máy tính của bạn khi sử dụng hàm sau:

PHP:
Private Declare Function GetComputerName Lib "kernel32" _
    Alias "GetComputerNameA" _
    (ByVal lpBuffer As String, nSize As Long) As Long


Function ReturnComputerName() As String
Dim rString As String * 255, sLen As Long, tString As String
    tString = ""
    On Error Resume Next
    sLen = GetComputerName(rString, 255)
    sLen = InStr(1, rString, Chr(0))
    If sLen > 0 Then
        tString = Left(rString, sLen - 1)
    Else
        tString = rString
    End If
    On Error GoTo 0
    ReturnComputerName = UCase(Trim(tString))
End Function
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mã:
[SIZE=3][FONT=Courier New][COLOR=#000088]Private[/COLOR] [COLOR=#000088]Sub[/COLOR] Command1_Click()
    fname = "c:\pcname.reg"
    str2 = [COLOR=#000088]Chr[/COLOR](34) & "ComputerName" & [COLOR=#000088]Chr[/COLOR](34) & "="

    [COLOR=#000088]Shell[/COLOR] "regedit.exe /e " & fname & _
     " HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName"

    [COLOR=#000088]Open[/COLOR] fname [COLOR=#000088]For[/COLOR] [COLOR=#000088]Input[/COLOR] [COLOR=#000088]As[/COLOR] #1
    [COLOR=#000088]Do[/COLOR] [COLOR=#000088]While[/COLOR] [COLOR=#000088]Not[/COLOR] [COLOR=#000088]EOF[/COLOR](1)
        [COLOR=#000088]Line[/COLOR] [COLOR=#000088]Input[/COLOR] #1, str1
        i = [COLOR=#000088]InStr[/COLOR](1, str1, str2)
        [COLOR=#000088]If[/COLOR] i > 0 [COLOR=#000088]Then[/COLOR] MsgBox str1
    [/FONT][/SIZE][SIZE=3][FONT=Courier New][COLOR=#000088]Loop
[/COLOR]    [COLOR=#000088]Close[/COLOR] #1
    [COLOR=#000088]Kill[/COLOR] fname
[COLOR=#000088]End[/COLOR] [COLOR=#000088]Sub[/COLOR][/FONT][/SIZE]

cái này ko xài hàm API nè, hàm này ko phải mình viết, mình sưu tập trên caulacbovb.com. Cũng đơn giản dễ hiểu phải ko các bạn
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
vậy nhận ra user của domain thì sao bạn. Xin cảm ơn trước nhé
 
Upvote 0
Mình thấy đơn giản thế này cũng có tên máy mà, chứ đụng API mình gai cả người

PHP:
Function Tenmay()
Tenmay = Environ("COMPUTERNAME")
End Function
 
Upvote 0
Mình bổ sung thêm code này cho đầy đủ luôn nha!
Nguồn: http://www.vbaexpress.com/kb/getarticle.php?kb_id=217
PHP:
Sub EnvironListing()
     'Note: Usage of Environ is limited to VBA only. This macro just creates a list of
     ' variables and their return value, to show you what VBA can return for you
     '
     'Example: The following line of code, when used in a macro, will create a messagebox
     '         with the username signed into the computer
     '   Msgbox Environ("username")
     ' Note: using      Msgbox Environ(31)       will return USERNAME=computerusername, where
     '  Msgbox Environ("username")      will return just the username
    Dim i As Integer, wb As Workbook
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
     'To create a new workbook if nothing open, otherwise create a new sheet
    On Error Resume Next
    Set wb = ActiveWorkbook
    On Error GoTo 0
    If wb Is Nothing Then
        Workbooks.Add
    Else
        wb.Sheets.Add
    End If
     
     'Creates a list of environ arguments, in the form ARGUMENT=EnvironString
    i = 1
    Do Until Environ(i) = ""
        Cells(i, 1) = Environ(i)
        i = i + 1
    Loop
     
     'Separates the column into environ argument, and return value for that argument
    Range("A1:A" & i - 1).TextToColumns DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="="
     
     'Autofit columns for easier readability
    Columns.AutoFit
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

Mã:
Sub MsgBoxCompUserName()
    MsgBox Environ("USERNAME")
End Sub
Thân.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom