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.
Nếu IP thay đổi liên tục thì có thể thử dùng computer name. Cứ thử bừa đi, có cái gì nổ hay cháy đâu mà sợ. Computer name là gì? Vd. trong Windows 10 tôi phải chuột và chọn Properties thì sẽ nhìn thấy computer name. Giả sử computer name = hichic-blala
Tôi chưa bao giờ phải thực hành nên không biết sẽ thế nào. Nhưng về mặt lý thuyết nếu là tôi thì tôi sẽ: mở CMD (dòng lệnh) -> gõ
net time \\hichic-blala -> ENTER
Nếu có IP tĩnh thì thử tiếp nhưng thay cho hichic-blala thì nhập IP.
Trước hết hãy thử thế xem nó ra cái gì, mặt mũi ra sao. Sau đó muốn hỏi gì thì hỏi tiếp.
A chú!ý của cháu là cháu cần đoạn code lấy ngày giờ nghĩa là chạy code là nó lấy được thông tin ngày giờ của máy tính theo địa chỉ IP nhập vào rồi đổ xuống ô nào đó chẳng hạn.
Chứ vào CMD xong phải làm thế thì bất tiện quá chú ơi.
A chú!ý của cháu là cháu cần đoạn code lấy ngày giờ nghĩa là chạy code là nó lấy được thông tin ngày giờ của máy tính theo địa chỉ IP nhập vào rồi đổ xuống ô nào đó chẳng hạn.
Chứ vào CMD xong phải làm thế thì bất tiện quá chú ơi.
Vâng thế chú cho cháu xin đoạn code để thực hiện câu lệnh: net time \\192.168.252.2
Trong cửa sổ cmd thay vì cháu phải vào cửa sổ cmd để gõ câu lệnh này.
Thông tin lấy được sẽ gán vào ô nào đó trên bảng tính.
Vâng thế chú cho cháu xin đoạn code để thực hiện câu lệnh: net time \\192.168.252.2
Trong cửa sổ cmd thay vì cháu phải vào cửa sổ cmd để gõ câu lệnh này.
Thông tin lấy được sẽ gán vào ô nào đó trên bảng tính.
Function ngaygio(ByVal computer As String) As String
Dim sCmd As String, tmpFile As String, text As String, fso As Object, sh As Object, re As Object
Set sh = CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set re = CreateObject("VBScript.RegExp")
tmpFile = ThisWorkbook.Path & "\" & Format(Time, "hh_mm_ss") & ".txt"
sCmd = "net time \\" & computer & ">" & tmpFile
sh.Run "cmd /c " & sCmd, 0, True
text = fso.OpenTextFile(tmpFile).ReadLine
fso.DeleteFile tmpFile
re.Pattern = ".*(.{10} \d{2}:\d{2}:\d{2}).*"
ngaygio = re.Replace(text, "$1")
Set sh = Nothing
Set fso = Nothing
Set re = Nothing
End Function
Sub test()
Dim ngaythang As String
ngaythang = ngaygio("desktop-13iclt9")
Sheet1.Range("A1").Value = CDate(ngaythang)
End Sub
Function ngaygio(ByVal computer As String) As String
Dim sCmd As String, tmpFile As String, text As String, fso As Object, sh As Object, re As Object
Set sh = CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set re = CreateObject("VBScript.RegExp")
tmpFile = ThisWorkbook.Path & "\" & Format(Time, "hh_mm_ss") & ".txt"
sCmd = "net time \\" & computer & ">" & tmpFile
sh.Run "cmd /c " & sCmd, 0, True
text = fso.OpenTextFile(tmpFile).ReadLine
fso.DeleteFile tmpFile
re.Pattern = ".*(.{10} \d{2}:\d{2}:\d{2}).*"
ngaygio = re.Replace(text, "$1")
Set sh = Nothing
Set fso = Nothing
Set re = Nothing
End Function
Sub test()
Dim ngaythang As String
ngaythang = ngaygio("desktop-13iclt9")
Sheet1.Range("A1").Value = CDate(ngaythang)
End Sub
Function ngaygio(ByVal computer As String) As String
Dim sCmd As String, tmpFile As String, text As String, fso As Object, sh As Object, re As Object
Set sh = CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set re = CreateObject("VBScript.RegExp")
tmpFile = ThisWorkbook.Path & "\" & Format(Time, "hh_mm_ss") & ".txt"
sCmd = "net time \\" & computer & ">" & tmpFile
sh.Run "cmd /c " & sCmd, 0, True
text = fso.OpenTextFile(tmpFile).ReadLine
fso.DeleteFile tmpFile
re.Pattern = ".*(.{10} \d{2}:\d{2}:\d{2}).*"
ngaygio = re.Replace(text, "$1")
Set sh = Nothing
Set fso = Nothing
Set re = Nothing
End Function
Sub test()
Dim ngaythang As String
ngaythang = ngaygio("desktop-13iclt9")
Sheet1.Range("A1").Value = CDate(ngaythang)
End Sub
99,99% trong trường hợp này nguyên nhân như tôi viết ở bài #14. Nếu code chạy trong tập tin đã được lưu thì tmpFile có đường dẫn đầy đủ và sẽ không có lỗi gì cả. Trong thư mục chứa tập tin Excel chắc chắn có thể tạo các tập tin mới. Nếu không có quyền đó thì bản thân tập tin Excel cũng không thể lưu được trong thư mục.
Truy cập không cho phép vì
C:\Users\DESKTOP-L8C0O6S>net time \\192.168.25.2>\10_23_02.txt
Rõ ràng \10_23_02.txt không là đường dẫn đầy đủ nên có lỗi, hoăc trong trường hợp \... thì Windows có thể coi là thư mục C:\. Trong Windows 10 thì mặc định C:\ sẽ có Access is denied.
Chắc chắn sau khi lưu tập tin thì tmpFile có đường dẫn đầy đủ và không còn lỗi nữa. Bản thân tôi cũng kiểm tra thấy:
Nhưng nếu tôi dán code vào tập tin mới chưa lưu, tức ThisWorkbook.Path = RỖNG thì khi chạy code có lỗi File not found trong code. Và khi gõ trong cmd
net time \\.... >\hichic.txt
thì có Access is denied.
Cái này ai cũng có thể kiểm tra mà.
Làm như sau: mở tập tin mới -> dán code bài #11 -> không lưu tập tin mới mà chạy luôn code test -> đảm bảo 100% là sẽ có lỗi như bài #13 -> lưu lại tập tin Excel -> chạy lại code test -> đảm bảo 100% là sẽ KHÔNG còn lỗi
99,99% trong trường hợp này nguyên nhân như tôi viết ở bài #14. Nếu code chạy trong tập tin đã được lưu thì tmpFile có đường dẫn đầy đủ và sẽ không có lỗi gì cả. Trong thư mục chứa tập tin Excel chắc chắn có thể tạo các tập tin mới. Nếu không có quyền đó thì bản thân tập tin Excel cũng không thể lưu được trong thư mục.
Truy cập không cho phép vì
C:\Users\DESKTOP-L8C0O6S>net time \\192.168.25.2>\10_23_02.txt
Rõ ràng \10_23_02.txt không là đường dẫn đầy đủ nên có lỗi, hoăc trong trường hợp \... thì Windows có thể coi là thư mục C:\. Trong Windows 10 thì mặc định C:\ sẽ có Access is denied.
Chắc chắn sau khi lưu tập tin thì tmpFile có đường dẫn đầy đủ và không còn lỗi nữa. Bản thân tôi cũng kiểm tra thấy:
Nhưng nếu tôi dán code vào tập tin mới chưa lưu, tức ThisWorkbook.Path = RỖNG thì khi chạy code có lỗi File not found trong code. Và khi gõ trong cmd
net time \\.... >\hichic.txt
thì có Access is denied.
Cái này ai cũng có thể kiểm tra mà.
Làm như sau: mở tập tin mới -> dán code bài #11 -> không lưu tập tin mới mà chạy luôn code test -> đảm bảo 100% là sẽ có lỗi như bài #13 -> lưu lại tập tin Excel -> chạy lại code test -> đảm bảo 100% là sẽ KHÔNG còn lỗi