• 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

Phát hiện IE mở một trang web đặc biệt

Các mẹo vặt linh tinh khác, không thuộc nhóm nào
User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

Phát hiện IE mở một trang web đặc biệt

Postby truongphu » Mon 17/11/2008 8:53 pm

Thủ thuật: Phát hiện IE mở một trang web đặc biệt
Tác giả: truongphu
Mô tả: Phát hiện IE mở một trang web đặc biệt, vd "http://www.google.com.vn/". Nếu là trang web đen, hãy đóng IE. Code đóng IE đã có trên nầy.


Code: Select all

  1. Private Sub Form_Load()
  2. Set objShellWindows = CreateObject("Shell.Application").Windows
  3. TrangWeb = "http://www.google.com.vn/"
  4. On Error Resume Next
  5. Do While x >= 0
  6. DoEvents
  7. For i = 0 To objShellWindows.Count - 1
  8.     Set objIE = objShellWindows.Item(i)
  9.     strURL = objIE.LocationURL
  10.     If InStr(strURL, TrangWeb) Then Có = True Else Có = False
  11. Next
  12. If x = 1000 Then ' khoang 10 giây
  13. IfThen MsgBox "Ít nhât môt trình duyêt mo' " & TrangWeb
  14. x = 1
  15. End If
  16. x = x + 1
  17. Loop
  18. End Sub


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

buthieu
Posts: 8
Joined: Tue 04/11/2008 9:28 pm
Location: Lagi-Bình thuận
Been thanked: 1 time
Contact:

Re: Phát hiện IE mở một trang web đặc biệt

Postby buthieu » Tue 16/12/2008 6:12 pm

Sorry! Sao không chạy được bạn? Mình xài Vista.
Buồn nhất khi: Shut Down / Cúp điện

User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

Re: Phát hiện IE mở một trang web đặc biệt

Postby truongphu » Tue 16/12/2008 8:27 pm

Cảm ơn buthieu đã phát hiện lỗi
.. nhưng tôi không test được vì đang dùng Windows XP
Vậy nên: Code trên có thể không dùng cho Windows Vista được
Mong bạn đọc lưu ý và thông cảm
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Giang Hồ
Thành viên năng nổ
Thành viên năng nổ
Posts: 50
Joined: Sat 12/05/2007 2:36 pm
Location: http://vn-soft.net
Been thanked: 1 time
Contact:

Re: Phát hiện IE mở một trang web đặc biệt

Postby Giang Hồ » Sun 21/12/2008 1:43 pm

Đã test, code bác phú có thể chạy được trên Windows Vista Ultimate SP2

Có 1 số code khác có thể làm việc này như
Add vào Prefercence thư viện "shdocvw.dll" (Microsoft Internet Explorer) ->Về cơ bản giống của bác truongphu nhưng lằng nhằng hơn :D

Code: Select all

  1.  
  2. Private Sub Form_Load()
  3.  
  4. Dim IEWindow As InternetExplorer, sLocation As String
  5. Dim AllWindows As New ShellWindows
  6.  
  7. For Each IEWindow In AllWindows
  8.     DoEvents
  9.     If IEWindow.Busy Then GoTo SkipBusy
  10.     sLocation = IEWindow.LocationURL
  11.     If Left(sLocation, 7) = "http://" Then
  12.          MsgBox sLocation
  13.     End If
  14. SkipBusy:
  15. Next
  16.  
  17. End Sub



hoặc code này cũng ok (VBLib)

Code: Select all

  1. Private Sub Timer1_Timer()
  2.    Text1.LinkTopic = "iexplore|WWW_GetWindowInfo"
  3.    Text1.LinkTimeout = 10
  4.    Text1.LinkMode = vbLinkManual
  5.    Text1.LinkItem = &HFFFFFFFF
  6.    Text1.LinkRequest
  7. End Sub



@buthieu: Bạn thử sửa đoạn
For i = 0 To objShellWindows.Count - 1
Set objIE = objShellWindows.Item(i)

thành như vầy xem sao

For Each objIE In objShellWindows
Code chỉ một lần mà fix bug thì mãi mãi
-----------------------------------
VnSecurity 2008 - Bảo vệ máy tính theo phong cách của bạn
Website: http://vn-soft.net

Giang Hồ
Thành viên năng nổ
Thành viên năng nổ
Posts: 50
Joined: Sat 12/05/2007 2:36 pm
Location: http://vn-soft.net
Been thanked: 1 time
Contact:

Re: Phát hiện IE mở một trang web đặc biệt

Postby Giang Hồ » Sun 21/12/2008 4:08 pm

Ngồi vọc 1 lát gianghoplus chợt nảy ra ý kiến chặn web như sau. Cách này sẽ khắc phục được các nhược điểm của bác truongphu

+ Khi phát hiện ra web cần chặn thì ta chỉ cần chuyển địa chỉ trang web tới 1 điểm khác. Ví dụ như tới "about:blank" hay tới 1 file HTML chứa cảnh báo cấm là OK hơn cả (Nếu dùng cách kill process, nhỡ kill nhầm cái iexplore.exe khác hoặc IE mở nhiều TAB thì sao)

Set cái Timer tầm 1s

Code: Select all

  1. Private Sub Timer1_Timer()
  2. Dim objShellWindows, objIE, DenyWeb$
  3. DenyWeb = "http://www.google.com.vn/"
  4.  
  5. Set objShellWindows = CreateObject("Shell.Application").Windows
  6. For Each objIE In objShellWindows
  7.     If objIE.Busy Then GoTo SkipBusy
  8.     If objIE.LocationURL = DenyWeb Then
  9.         objIE.Navigate "about" & Chr(58) & "blank" ' or exist file "C:/Windows/DenyAlert.htm"
  10.         'objIE.Quit 'Close this window or this ietab if you like ^^!
  11.     End If
  12. Next
  13. SkipBusy:
  14. End Sub


100% Working - kể cả IE mở nhiều TAB :))
Code chỉ một lần mà fix bug thì mãi mãi
-----------------------------------
VnSecurity 2008 - Bảo vệ máy tính theo phong cách của bạn
Website: http://vn-soft.net

buthieu
Posts: 8
Joined: Tue 04/11/2008 9:28 pm
Location: Lagi-Bình thuận
Been thanked: 1 time
Contact:

Re: Phát hiện IE mở một trang web đặc biệt

Postby buthieu » Mon 22/12/2008 12:41 am

Xin lỗi bác truongphu [-O< , chắc mình đang xài Vista Home Pre (SP1, Tìm hoài ko thấy bản SP2 [-O< ) nên không chạy được đoạn code trên. Cảm ơn bác Giang Hồ đã giúp !!!
Buồn nhất khi: Shut Down / Cúp điện


Return to “[VB] Mẹo vặt khác”

Who is online

Users browsing this forum: No registered users and 1 guest