Lấy danh sách tên các máy tính đang hoạt động trong mạng LAN (1 người xem)

  • Thread starter Thread starter viehoai
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

viehoai

Thành viên gắn bó
Tham gia
22/5/09
Bài viết
2,599
Được thích
2,908
Các anh chị vui lòng giúp em code VBA lấy danh sách tên các máy tính đang hoạt động trong mạng LAN (bao gồm cả trong nhóm Mshome và Workgroup). Kết quả có thể là Array hoặc xuất ra bảng tính.
Xin cảm ơn các anh chị.
 
Các anh chị vui lòng giúp em code VBA lấy danh sách tên các máy tính đang hoạt động trong mạng LAN (bao gồm cả trong nhóm Mshome và Workgroup). Kết quả có thể là Array hoặc xuất ra bảng tính.
Xin cảm ơn các anh chị.
Bạn có thể dùng lệnh Net view trong msdos
Còn thực hiện trong VBA có thể dùng:
[gpecode=vb]MsgBox CreateObject("WScript.Shell").Exec("net view").StdOut.ReadAll[/gpecode]
hoặc lưu ra file text kết quả, việc còn lại là xử lý dữ liệu từ file text đó.
 
Upvote 0
Sao import ra file text không được nhỉ?
PHP:
shell(net view > "C:\listcp.txt")
Run ở CMD thì import được.
 
Upvote 0
Cảm ơn VMH0307, sau khi chuyển file text ta có thể sử dụng bài này của anh quanghai1969 để xuất ra bảng tính.
 
Upvote 0
Hình như lệnh này không lấy trong nhóm Mshome.
Tôi cũng không rõ danh sách các máy tính trong mạng lan của bạn như thế nào. Hiện tại ở cơ quan tôi có duyệt qua và có hiện các pc và serve trên lan.
Nếu vẫn chưa đạt nhu cầu của bạn, có lẽ cần làm theo hướng khác, có khi dùng thêm một số hàm API chăng (có thể là: WNetOpenEnum, WNetEnumResource).
 
Upvote 0
Tôi cũng không rõ danh sách các máy tính trong mạng lan của bạn như thế nào. Hiện tại ở cơ quan tôi có duyệt qua và có hiện các pc và serve trên lan.
Nếu vẫn chưa đạt nhu cầu của bạn, có lẽ cần làm theo hướng khác, có khi dùng thêm một số hàm API chăng (có thể là: WNetOpenEnum, WNetEnumResource).
Mình không biết dùng hàm API. Mong bạn tiếp tục giúp đỡ
 
Upvote 0
Lấy danh sách máy tính online trong mạng LAN - Kỹ thuật lập trình API trong VBA

Các anh chị vui lòng giúp em code VBA lấy danh sách tên các máy tính đang hoạt động trong mạng LAN (bao gồm cả trong nhóm Mshome và Workgroup). Kết quả có thể là Array hoặc xuất ra bảng tính.
Xin cảm ơn các anh chị.

Mình cung cấp cho bạn giải pháp lập trình API để có một kết quả lấy được danh sách máy tính online trong mạng LAN.

[GPECODE=vb]
Sub Danh_sach_may_tinh_trong_mang()
On Error GoTo ErrHandler:

Columns(1).Clear
Cells(1, 1).Value = "Chuong trinh dang lay danh sach may tinh trong mang. Neu co loi lien he duytuan@bluesofts.net ..."

Dim compNames() As String

compNames = GetCommServers(vbNullString, SV_TYPE_ALL)

Dim compName As String
Dim x As Integer, I As Integer

I = 1
Cells(I, 1).Value = "Danh sach may tinh trong mang"
For x = LBound(compNames) To UBound(compNames)
If Trim(compNames(x)) <> "" Then
I = I + 1
Cells(I, 1).Value = compNames(x)
End If
Next

MsgBox "Co " & I - 1 & " may tinh dang online trong mang LAN.", vbInformation

Exit Sub

ErrHandler:
MsgBox Err.Description & vbCrLf & "Neu co co loi lien he duytuan@bluesofts.net"

End Sub
[/GPECODE]
 

File đính kèm

Upvote 0
Mình cung cấp cho bạn giải pháp lập trình API để có một kết quả lấy được danh sách máy tính online trong mạng LAN.

Dạ cám ơn anh , nhưng sao em bấm nút nó hổng lấy được danh sách máy tính , mà chỉ lấy được bảng thông báo :
Microsoft Excel has Stopped working !$@!!!$@!!!$@!!
 
Upvote 0
Upvote 0
Xin hỏi anh, code của anh đã xử lý được vấn đề của viehoai chưa anh? (do máy em chưa đủ cơ hội để test các trường hợp)

Mạng của mình chỉ có 1 domain nhưng cách lập trình API của mình là quét tất cả các máy tính của các domain trong mạng.

Mọi người dùng các dịch vụ của Windows không nên dùng hàm VBA GetObject() vì nó bị lỗi ở chế độ chạy ứng dụng mức an toàn (chuẩn của Windows Vista trở lại đây).
 
Upvote 0
Lấy danh sách máy tính online trong mạng LAN - Kỹ thuật lập trình API trong VBA

Mình gửi lại phiên bản lấy danh sách tên máy tính đang online trong mạng LAN chạy trong Excel 32 và 64-bit.
 

File đính kèm

Upvote 0
Mình gửi lại phiên bản lấy danh sách tên máy tính đang online trong mạng LAN chạy trong Excel 32 và 64-bit.

thực sự thì anh chỉ thay Long thành LongPtr thôi chứ chưa từng thử trên máy 64 bit đúng không ? cũng không sao , nay mai rảnh em xem lại xem Crash ở đâu , vì có 1 số hàm API khi ở máy 32 bit bình thường nhưng cứ chạy trên máy 64 bit là Crash luôn dù cho thay kiểu gì đi nữa .
 
Upvote 0
thực sự thì anh chỉ thay Long thành LongPtr thôi chứ chưa từng thử trên máy 64 bit đúng không ? cũng không sao , nay mai rảnh em xem lại xem Crash ở đâu , vì có 1 số hàm API khi ở máy 32 bit bình thường nhưng cứ chạy trên máy 64 bit là Crash luôn dù cho thay kiểu gì đi nữa .

Đó là phương pháp làm tương thích 32 và 64-bit với các hàm API. Có thể máy bạn đang bị lỗi ở vấn đề khác? Các bạn dùng Excel 64-bit có bị lỗi vậy không?
 
Upvote 0
Đó là phương pháp làm tương thích 32 và 64-bit với các hàm API. Có thể máy bạn đang bị lỗi ở vấn đề khác? Các bạn dùng Excel 64-bit có bị lỗi vậy không?

cái đó chỉ là vòng gửi xe thôi anh . Chú ý : các bài viết ở trên em không đề cập tới vấn đề Type Missmatch
Type Mismatch và Crash là 2 vấn đề khác nhau , với hàm API Copymemory thì phải cẩn thận , và phải có máy 64bit thật mới test được mình sai ở đâu , và em sẽ nêu rõ ở bài viết tiếp theo ngay sau đây , đây cũng là bài học cho chúng ta cùng rút kinh nghiệm
 
Upvote 0
Web KT

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

Back
Top Bottom