Chào mọi người,em muốn đoạn code đứng từ máy tính A lấy thông tin ngày tháng năm giờ phút của một máy tính B trong cùng hệ thống mạng, mọi người xem giúp em với.
Cảm ơn chú nhiều, hiện tại cháu cũng chưa test được nên cháu hỏi thêm một ý nữa. Vậy sửa thế này máy của chú đọc ngon chứ vì máy của chú đang khác của cháu và sửa như vậy liệu system ở mỗi máy khác nhau ngày trước tháng sau hay tháng trước ngày sau, 1 số hoặc 2 số v.v.. thì có vấn đề gì không chú?
Cảm ơn chú nhiều, hiện tại cháu cũng chưa test được nên cháu hỏi thêm một ý nữa. Vậy sửa thế này máy của chú đọc ngon chứ vì máy của chú đang khác của cháu và sửa như vậy liệu system ở mỗi máy khác nhau ngày trước tháng sau hay tháng trước ngày sau, 1 số hoặc 2 số v.v.. thì có vấn đề gì không chú?
Ta thử lần cuối. Nếu không thành công thì bạn chờ người khác, hoặc lập chủ đề mới.
Để khỏi rắc rối ta không dùng NET TIME nữa, ta thử dùng WMI. Không phải lăn tăn chuyện ngày hay tháng trước, vì ta nhận được ngày tháng năm giờ phút giây riêng rẽ. ngaygioWMI trả về Double là ngày tháng + thời gian. Nếu chỉ lấy ngày tháng thì lấy phần nguyên, nếu chỉ lấy thời gian thì lấy phần thập phân.
Mã:
Function ngaygioWMI(ByVal computer As String) As Double
Dim wmi As Object, items As Object, item As Object
Set wmi = GetObject("winmgmts:\\" & computer & "\root\cimv2")
Set items = wmi.ExecQuery("Select * from Win32_LocalTime")
For Each item In items
ngaygioWMI = DateSerial(item.Year, item.Month, item.Day) + TimeSerial(item.Hour, item.Minute, item.Second)
Exit For
Next
End Function
Sub test()
Dim ngaythang As Double
ngaythang = ngaygioWMI("desktop-13iclt9")
Sheet1.Range("A1").Value = CDate(ngaythang)
End Sub
Ta thử lần cuối. Nếu không thành công thì bạn chờ người khác, hoặc lập chủ đề mới.
Để khỏi rắc rối ta không dùng NET TIME nữa, ta thử dùng WMI. Không phải lăn tăn chuyện ngày hay tháng trước, vì ta nhận được ngày tháng năm giờ phút giây riêng rẽ. ngaygioWMI trả về Double là ngày tháng + thời gian. Nếu chỉ lấy ngày tháng thì lấy phần nguyên, nếu chỉ lấy thời gian thì lấy phần thập phân.
Mã:
Function ngaygioWMI(ByVal computer As String) As Double
Dim wmi As Object, items As Object, item As Object
Set wmi = GetObject("winmgmts:\\" & computer & "\root\cimv2")
Set items = wmi.ExecQuery("Select * from Win32_LocalTime")
For Each item In items
ngaygioWMI = DateSerial(item.Year, item.Month, item.Day) + TimeSerial(item.Hour, item.Minute, item.Second)
Exit For
Next
End Function
Sub test()
Dim ngaythang As Double
ngaythang = ngaygioWMI("desktop-13iclt9")
Sheet1.Range("A1").Value = CDate(ngaythang)
End Sub
Cảm ơn chú rất nhiều,các làm này thì cháu thấy chuẩn và khả thi hơn cách trước nhiều.
Nhưng cháu thử chạy thì có vấn đề như sau, nếu chú biết nguyên nhân chỉ giúp cháu cách khắc phục với:
Cháu chạy net time như bài 11 thì không lỗi, như vậy là mạng có thông.
Cảm ơn chú rất nhiều,các làm này thì cháu thấy chuẩn và khả thi hơn cách trước nhiều.
Nhưng cháu thử chạy thì có vấn đề như sau, nếu chú biết nguyên nhân chỉ giúp cháu cách khắc phục với:
Cháu chạy net time như bài 11 thì không lỗi, như vậy là mạng có thông.
Chú ơi,cháu đã thử thay địa chỉ IP bằng tên máy tính, với câu lệnh Net Time thì OK, nhưng với câu lệnh WMI thì lỗi "Permission denied",chú xem có cần điều chỉnh gì thêm không?
Chú ơi,cháu đã thử thay địa chỉ IP bằng tên máy tính, với câu lệnh Net Time thì OK, nhưng với câu lệnh WMI thì lỗi "Permission denied",chú xem có cần điều chỉnh gì thêm không? View attachment 267130
Dùng IP 127.0.0.1 xem có được không( địa chỉ này là ko của chính máy chạy code. Ko được là code cần chỉnh lại). Hình như phải cấu hình bên máy kia mới được
Chú ơi,cháu đã thử thay địa chỉ IP bằng tên máy tính, với câu lệnh Net Time thì OK, nhưng với câu lệnh WMI thì lỗi "Permission denied",chú xem có cần điều chỉnh gì thêm không?