• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

[Tip] Quản lý thư mục chia sẻ trong LAN 1

Các thủ thuật về hệ thống, thư mục, tập tin và mạng
Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

[Tip] Quản lý thư mục chia sẻ trong LAN 1

Gửi bàigửi bởi VuVanHoanh » T.Hai 30/07/2012 5:54 pm

Thủ thuật: Quản lý thư mục chia sẻ trong LAN 1
Tác giả: VuVanHoanh
Mô tả: Kiểm soát danh sách các tệp tin/thư mục chia sẻ đang được mở từ các máy khác / máy mình trong LAN; ngắt truy cập thư mục chia sẻ trong LAN



Rất đơn giản.! ;) sử dụng 1 chương trình có sẵn trong hệ thống Windows

1. Kiểm soát danh sách các tệp tin/thư mục chia sẻ đang được mở từ các máy khác:
  1. Option Explicit
  2.  
  3. Public Type OpnFiles
  4.     iID As String
  5.     sPath As String
  6.     sUser As String
  7.     sType As String
  8. End Type
  9.  
  10. Public Function ShowOpeningFiles(rtn() As OpnFiles) As Boolean
  11.     Dim wshShell
  12.     Set wshShell = CreateObject("WScript.Shell")
  13.     wshShell.Run "cmd /c openfiles /query /fo csv /nh>%temp%\tmp.txt", , True
  14.    
  15.     Dim i%, v() As String, tmp$, cnt%
  16.     Dim ret() As OpnFiles
  17.     On Error GoTo Ferr
  18.     i = 0: cnt = 0
  19.     Open Environ$("TEMP") & "\tmp.txt" For Input As #1
  20.         Do While Not EOF(1)
  21.             Line Input #1, tmp
  22.             i = i + 1
  23.             If i >= 9 And tmp <> "" And Left(tmp, 4) <> "INFO" Then
  24.                 tmp = Replace(tmp, Chr(34), "")
  25.                 v = Split(tmp, ",")
  26.                 ReDim Preserve ret(cnt)
  27.                 ret(cnt).iID = v(0)
  28.                 ret(cnt).sPath = v(3)
  29.                 ret(cnt).sType = v(2)
  30.                 ret(cnt).sUser = v(1)
  31.                 cnt = cnt + 1
  32.             End If
  33.         Loop
  34.     Close #1
  35.     If cnt = 0 Then ShowOpeningFiles = False Else ShowOpeningFiles = True
  36.     rtn = ret
  37.     Kill Environ$("TEMP") & "\tmp.txt"
  38.     Exit Function
  39. Ferr:
  40.     MsgBox "Error"
  41. End Function


Test ;) :
New Project\Standard EXE. Build 1 ListBox on Form1. Create 1 Module:
Dán code trên vào module
Dán code này vào sự kiện Load của Form:
  1. Dim r() As OpnFiles, i%
  2. If ShowOpeningFiles(r) Then
  3.     For i = 0 to ubound(r)
  4.         List1.AddItem r(i).iID & ";" & r(i).sPath & ";" & r(i).sType & ";" & r(i).sUser
  5.     Next
  6. Else
  7.     Msgbox "No files and folders are opening"
  8. End If


2. Ngắt kết nối truy cập trong thư mục chia sẻ (cần Admin Priv)
p/s: Code chưa test vì chưa có đk test :P mọi người test giùm rồi report. em sẽ sửa ạ ;)
  1. Public Enum OpenMode
  2.     ReadWrite = 1
  3.     ReadOnly = 2
  4.     Read = 3
  5.     AnyType = 4
  6. End Enum
  7.  
  8. Public Function QuitCnt(Optional bID As String, Optional bUser As String, Optional uPass As String, Optional sOpnMode As OpenMode, Optional bFile As String) As Boolean
  9.     On Error Resume Next
  10.     If IsMissing(bID) And IsMissing(bUser) And IsMissing(bOpnMode) And IsMissing(bFile) Then Exit Function
  11.     Dim prm$
  12.    
  13.     If Not IsMissing(bUser) Then
  14.         prm = prm & " /U " & Chr(34) & bUser & Chr(34)
  15.         If Not IsMissing(uPass) Then prm = prm & " /P " & Chr(34) & uPass & Chr(34)
  16.     End If
  17.     If Not IsMissing(bID) Then prm = prm & " /ID " & Chr(34) & bID & Chr(34)
  18.     If Not IsMissing(sOpnMode) Then
  19.         Select Case CInt(sOpnMode)
  20.         Case 1
  21.             prm = prm & " /O " & Chr(34) & "Read/Write" & Chr(34)
  22.         Case 2
  23.             prm = prm & " /O " & Chr(34) & "Read" & Chr(34)
  24.         Case 3
  25.             prm = prm & " /O " & Chr(34) & "Write" & Chr(34)
  26.         Case 4
  27.             prm = prm & " /O *"
  28.         End Select
  29.     End If
  30.     If Not IsMissing(bFile) Then prm = prm & " /OP " & Chr(34) & bFile & Chr(34)
  31.     Shell "cmd /c openfiles /disconnect" & prm, vbHide
  32.     QuitCnt = (Err.Number = 0)
  33. End Function
  34.  


p/s: đấy là chưa tìm hiểu hết tất cả các chức năng của OPENFILES. Các bạn thử cùng khám phá nào ;)


Since 2008...
One love! :x

Quay về “[VB] Hệ thống - Tập tin - Thư mục và Mạng”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách