• 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

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

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
nhochoclaptrinh
Thành viên danh dự
Thành viên danh dự
Bài viết: 514
Ngày tham gia: T.Bảy 28/05/2011 12:10 pm
Has thanked: 15 time
Been thanked: 83 time

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

Gửi bàigửi bởi nhochoclaptrinh » T.Bảy 04/02/2012 11:02 pm

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é :)



Sad eyes never lie :((

Hình đại diện của người dùng
Zeroplus
Guru
Guru
Bài viết: 546
Ngày tham gia: T.Bảy 16/04/2011 11:31 pm
Đến từ: Gò Dầu - Tây Ninh
Has thanked: 6 time
Been thanked: 98 time
Liên hệ:

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

Gửi bàigửi bởi Zeroplus » T.Ba 07/02/2012 3:38 pm

Cái này trong vblib đã có rồi mà bạn. Dù sao cũng cám ơn :)

Hình đại diện của người dùng
nhochoclaptrinh
Thành viên danh dự
Thành viên danh dự
Bài viết: 514
Ngày tham gia: T.Bảy 28/05/2011 12:10 pm
Has thanked: 15 time
Been thanked: 83 time

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

Gửi bàigửi bởi nhochoclaptrinh » T.Ba 07/02/2012 6:29 pm

Mình chưa kiểm tra trong vblib thấy hay nên Post lên forum :)
Sad eyes never lie :((


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.2 khách