• 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
User avatar
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Posts: 1259
Joined: Thu 03/06/2010 9:23 pm
Location: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 times
Been thanked: 138 times
Contact:

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

Postby VuVanHoanh » Mon 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:
[vb]
Dim r() As OpnFiles, i%
If ShowOpeningFiles(r) Then
For i = 0 to ubound(r)
List1.AddItem r(i).iID & ";" & r(i).sPath & ";" & r(i).sType & ";" & r(i).sUser
Next
Else
Msgbox "No files and folders are opening"
End If[/vb]

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 ạ ;)
[vb]Public Enum OpenMode
ReadWrite = 1
ReadOnly = 2
Read = 3
AnyType = 4
End Enum

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
On Error Resume Next
If IsMissing(bID) And IsMissing(bUser) And IsMissing(bOpnMode) And IsMissing(bFile) Then Exit Function
Dim prm$

If Not IsMissing(bUser) Then
prm = prm & " /U " & Chr(34) & bUser & Chr(34)
If Not IsMissing(uPass) Then prm = prm & " /P " & Chr(34) & uPass & Chr(34)
End If
If Not IsMissing(bID) Then prm = prm & " /ID " & Chr(34) & bID & Chr(34)
If Not IsMissing(sOpnMode) Then
Select Case CInt(sOpnMode)
Case 1
prm = prm & " /O " & Chr(34) & "Read/Write" & Chr(34)
Case 2
prm = prm & " /O " & Chr(34) & "Read" & Chr(34)
Case 3
prm = prm & " /O " & Chr(34) & "Write" & Chr(34)
Case 4
prm = prm & " /O *"
End Select
End If
If Not IsMissing(bFile) Then prm = prm & " /OP " & Chr(34) & bFile & Chr(34)
Shell "cmd /c openfiles /disconnect" & prm, vbHide
QuitCnt = (Err.Number = 0)
End Function
[/vb]

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

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

Who is online

Users browsing this forum: No registered users and 1 guest