Trang 1 trên 1

Xem các thư mục nào đang mở cửa sổ

Đã gửi: T.Bảy 04/02/2012 11:02 pm
gửi bởi nhochoclaptrinh
Sử dụng thư viện Microsoft Internet Controls (shdocvw.dll).
Cách thực hiện:
Đầu tiên add dll: Shdocvw.dll vào Project bằng References
Tiếp theo, sử dụng code:
  1. Private CurWindow As New InternetExplorer 'Current WIndow
  2. Private AllWindows As New ShellWindows
  3. 'Vì đường dẫn thư mục trả về kiểu URL nên cần fix trước cho chuẩn:
  4. Private Function FixPath(ByVal s As String) As String
  5.  
  6.     FixPath = Replace(Replace( _
  7.                 Replace(s, "%20", " "), "file:///", ""), "/", "\")
  8. End Function
  9.  
  10. 'Đôi khi mở các website bằng IE thì nó cũng trả về URL khi thao tác nên cần kiểm tra xem cái nào là URL mạng và URL trên máy tính
  11. Private Function CheckDirPath(ByVal s As String) As Boolean
  12.     'Các URL trên máy tính trong IE bắt đầu bằng 8 ký tự: file:///, dùng chỗ này để kiểm tra URL
  13.    If Left(LCase(s), 8) = "file:///" Then
  14.         CheckDirPath = True
  15.     Else
  16.         CheckDirPath = False
  17.     End If
  18. End Function
  19.  
  20. Private Sub Form_Load()
  21.     Dim sTmp As String, sMsg As String
  22.     For Each CurWindow In AllWindows 'Duyệt qua các cửa sổ đang browser trên windows
  23.        sTmp = CurWindow.LocationURL 'Lấy URL của window hiện tại
  24.        If CheckDirPath(sTmp) Then 'Kiểm tra xem có phải là URL tồn tại trên máy tính hay ko?
  25.            sMsg = sMsg & vbCrLf & FixPath(sTmp) 'lấy URL và Fix nó
  26.            'CurWindow.Quit <<-- có thể dùng
  27.        End If
  28.     Next
  29.     'Thông báo
  30.    If Trim(sMsg) = "" Then
  31.         MsgBox "Khong co thu muc dang mo !"
  32.     Else
  33.         MsgBox "Cac thu muc dang Open:---------------- " & vbCrLf & sMsg
  34.     End If
  35.     End
  36. End Sub
  37.  


Cách này có thể dùng để phát triển các ứng dụng bảo vệ thư mục, các AV
hoặc xem URL đang duyệt web bằng IE khi bỏ qua điều kiện CheckDirPath,
ngoài ra còn có thể áp dụng để bí mật thư mục cho ứng dụng của bạn chẳng hạn dùng CurWindow.Quit thì lập tức cửa sổ thư mục đang duyệt qua sẽ Close đi, còn nhiều phương thức cho đối tượng CurWindow các bạn khám phá nhé :)


Re: Xem các thư mục nào đang mở cửa sổ

Đã gửi: T.Ba 07/02/2012 3:38 pm
gửi bởi Zeroplus
Cái này trong vblib đã có rồi mà bạn. Dù sao cũng cám ơn :)

Re: Xem các thư mục nào đang mở cửa sổ

Đã gửi: T.Ba 07/02/2012 6:29 pm
gửi bởi nhochoclaptrinh
Mình chưa kiểm tra trong vblib thấy hay nên Post lên forum :)