Giúp em lấy tỷ giá trên web http://sbv.gov.vn

Liên hệ QC
Bổ sung : Định dạng cột [Tỷ giá] về kiểu số

# Trước hết xin cảm ơn anh @Siwtom.

# Bữa đó cũng loay hoay xử lý cái vụ "Get External Data from Web Wizard" nhưng không được.
# Hình như là do trang web tự động điều hướng và phải qua một số đoạn mã JavaScript nên Wizard bó tay.

# Hôm nay xin bổ sung một chút xíu từ file đính kèm của anh @Siwtom để có thể cộng trừ nhân chia với [Tỷ giá]
# Là tay không chuyên VBA, mong mọi người giúp đỡ, cùng nhau tiến bộ.
 

File đính kèm

  • GPE-95980 (original by Siwtom).xls
    51 KB · Đọc: 20
Lần chỉnh sửa cuối:
# Trước hết xin cảm ơn anh @Siwtom.

# Bữa đó cũng loay hoay xử lý cái vụ "Get External Data from Web Wizard" nhưng không được.
# Hình như là do trang web tự động điều hướng và phải qua một số đoạn mã JavaScript nên Wizard bó tay.

# Hôm nay xin bổ sung một chút xíu từ file đính kèm của anh @Siwtom để có thể cộng trừ nhân chia với [Tỷ giá]
# Là tay không chuyên VBA, mong mọi người giúp đỡ, cùng nhau tiến bộ.

Cám ơn bạn đã bổ sung.

Tất nhiên nếu dùng được công cụ ngay trong Excel thì nên dùng.

Hơn 2 năm trước tôi đã viết code để tải bảng tỷ giá của VietinBank (ngân hàng khác) - bài #10
Code viết cho cấu trúc cụ thể của trang web mà tới giờ vẫn chạy chứng tỏ cấu trúc không thay đổi.

Ai quan tâm thì mời tham khảo cho đỡ buồn

http://www.giaiphapexcel.com/forum/...-web-dùng-ID-và-pass-Help&p=411808#post411808

Trong các bài khác cùng chủ đề có đề cập tới "kỹ thuật" tự nhập mật khẩu, user và nhấn nút "Đăng nhập"
 
Lần chỉnh sửa cuối:
Xin lỗi chen ngang chủ đề này. Nếu ko được thì mình sẽ mở chủ đề mới. Nội dung cũng là dùng VBA điều khiển IE nhưng đã có ai thử được với trang Web viết bằng Silverlight chưa ạ?
Ví dụ trang: http://myfinalclubs.com/ làm sao để điền được vào textbox, làm sao để bấm được nút login?
Bạn nào biết xin hướng dẫn: Dùng VBA để điều khiển web Silverlight
 
Xin lỗi chen ngang chủ đề này. Nếu ko được thì mình sẽ mở chủ đề mới. Nội dung cũng là dùng VBA điều khiển IE nhưng đã có ai thử được với trang Web viết bằng Silverlight chưa ạ?
Ví dụ trang: http://myfinalclubs.com/ làm sao để điền được vào textbox, làm sao để bấm được nút login?
Bạn nào biết xin hướng dẫn: Dùng VBA để điều khiển web Silverlight

Bạn thử test xem. Tôi test thì thấy có vẻ có lúc không được.
Mã:
Sub Launch()
    Const strURL As String = "http://myfinalclubs.com"
    Const login As String = "[COLOR=#ff0000]***[/COLOR]"
    Const password As String = "[COLOR=#ff0000]***[/COLOR]"
    Dim objIE As Object
    Dim objPassword As Object
    Dim objUser As Object
    Dim objInput As Object
    Dim coll As Object
    Dim index As Long
    
    Set objIE = CreateObject("internetexplorer.application")
    objIE.Navigate strURL
    objIE.Visible = True
    Do While objIE.Busy
        DoEvents
    Loop
    Do
        Set objPassword = objIE.document.getElementById("password")
    Loop Until Not objPassword Is Nothing
    
    Do
        Set objUser = objIE.document.getElementById("username")
    Loop Until Not objUser Is Nothing
    
    objUser.Value = login
    objPassword.Value = password
    
    Do While objIE.Busy
        DoEvents
    Loop
    
    Set coll = objIE.document.getElementsByTagName("input")
    On Error Resume Next
    For index = 0 To coll.Length - 1
        If coll(index).Name = "Submit" And coll(index).Value = "Login" Then
            Set objInput = coll(index)
            Exit For
        End If
    Next
    On Error GoTo 0
    
    objInput.Click
End Sub


Nhập e-mail và password vào chỗ đỏ đỏ
 
Bạn thử test xem. Tôi test thì thấy có vẻ có lúc không được.
Mã:
Sub Launch()
    Const strURL As String = "http://myfinalclubs.com"
    Const login As String = "[COLOR=#ff0000]***[/COLOR]"
    Const password As String = "[COLOR=#ff0000]***[/COLOR]"
    Dim objIE As Object
    Dim objPassword As Object
    Dim objUser As Object
    Dim objInput As Object
    Dim coll As Object
    Dim index As Long
    
    Set objIE = CreateObject("internetexplorer.application")
    objIE.Navigate strURL
    objIE.Visible = True
    Do While objIE.Busy
        DoEvents
    Loop
    Do
        Set objPassword = objIE.document.getElementById("password")
    Loop Until Not objPassword Is Nothing
    
    Do
        Set objUser = objIE.document.getElementById("username")
    Loop Until Not objUser Is Nothing
    
    objUser.Value = login
    objPassword.Value = password
    
    Do While objIE.Busy
        DoEvents
    Loop
    
    Set coll = objIE.document.getElementsByTagName("input")
    On Error Resume Next
    For index = 0 To coll.Length - 1
        If coll(index).Name = "Submit" And coll(index).Value = "Login" Then
            Set objInput = coll(index)
            Exit For
        End If
    Next
    On Error GoTo 0
    
    objInput.Click
End Sub


Nhập e-mail và password vào chỗ đỏ đỏ
Mình thử code của bạn rồi nhưng không được. báo lỗi ngay ở dòng
Mã:
Set objPassword = objIE.document.getElementById("password")
Có lẽ Web viết = ngôn ngữ Silverlight nó khác, như kiểu flash vậy không thể "inspect element" hay tìm trong Source code đoạn phù hợp với element đó. Thật sự rất muốn tìm hiểu để xem VBA có làm việc được với Web Silverlight không mà chưa thấy tài liệu phù hợp.
 
Cái này chắc phải nhờ mí Pro CNTT vô làm thui
 
Mình thử code của bạn rồi nhưng không được. báo lỗi ngay ở dòng
Mã:
Set objPassword = objIE.document.getElementById("password")
Có lẽ Web viết = ngôn ngữ Silverlight nó khác, như kiểu flash vậy không thể "inspect element" hay tìm trong Source code đoạn phù hợp với element đó. Thật sự rất muốn tìm hiểu để xem VBA có làm việc được với Web Silverlight không mà chưa thấy tài liệu phù hợp.

Tôi không thấy lỗi gì cả.
Xin giải thích tại sao tôi viết
Tôi test thì thấy có vẻ có lúc không được.

Khi tôi viết xong code "thô" thì tôi có test vài lần. Có nhiều lần thành công nhưng nhiều lần thất bại. Lúc thì nhập được e-mail và mật khẩu nhưng click Button thì không thấy chuyển trang, lúc thì không nhập được e-mail và mật khẩu. Tôi đoán là do thời điểm "lấy" các object trên trang web thì trang web vẫn chưa ổn định hoàn toàn nên kết quả là object = Nothing. Tôi đã dùng vòng lặp Do ... Loop để lấy các object này. Sau khi sửa code thì tôi thử 5 lần đều thành công nhưng tôi không thể chắc chắn là vẫn là tình trạng "lúc được lúc không" như trước hay không (có thể đến test thứ 20 mới thất bại?). Vì thế mới có "có vẻ có lúc không được" trong bài viết

Tôi đã thành công khi chạy code trên XP Home + Excel 2010 + Internet Explorer 8 của mình. Nếu bạn không tin thì tải tập tin (AVI nhưng RAR = 767 KB thôi)

Còn tại sao bạn có lỗi thì tôi chịu. Về phần mình tôi chỉ có thể nhắc bạn là phải nhập e-mail + mật khẩu. Dùng được thì dùng. Tôi không có tham vọng giải quyết triệt để vấn đề của bạn. Tôi chỉ muốn phản biện cái dòng xanh xanh trong bài viết của bạn.

Mà ngôn ngữ gì? Chọn View --> Source thì rõ ràng mã HTML
 

File đính kèm

  • login.rar
    767.4 KB · Đọc: 38
Tôi không thấy lỗi gì cả.
Xin giải thích tại sao tôi viết


Khi tôi viết xong code "thô" thì tôi có test vài lần. Có nhiều lần thành công nhưng nhiều lần thất bại. Lúc thì nhập được e-mail và mật khẩu nhưng click Button thì không thấy chuyển trang, lúc thì không nhập được e-mail và mật khẩu. Tôi đoán là do thời điểm "lấy" các object trên trang web thì trang web vẫn chưa ổn định hoàn toàn nên kết quả là object = Nothing. Tôi đã dùng vòng lặp Do ... Loop để lấy các object này. Sau khi sửa code thì tôi thử 5 lần đều thành công nhưng tôi không thể chắc chắn là vẫn là tình trạng "lúc được lúc không" như trước hay không (có thể đến test thứ 20 mới thất bại?). Vì thế mới có "có vẻ có lúc không được" trong bài viết

Tôi đã thành công khi chạy code trên XP Home + Excel 2010 + Internet Explorer 8 của mình. Nếu bạn không tin thì tải tập tin (AVI nhưng RAR = 767 KB thôi)

Còn tại sao bạn có lỗi thì tôi chịu. Về phần mình tôi chỉ có thể nhắc bạn là phải nhập e-mail + mật khẩu. Dùng được thì dùng. Tôi không có tham vọng giải quyết triệt để vấn đề của bạn. Tôi chỉ muốn phản biện cái dòng xanh xanh trong bài viết của bạn.

Mà ngôn ngữ gì? Chọn View --> Source thì rõ ràng mã HTML
Quả thực là mình không hiểu sao code lại không chạy được trên máy mình, có thể không tương thích (win 8.1 64bit+ Excel 2010 + Internet Explorer 11). Mà mình đã xem trong Source thì ko thấy Element nào khả dĩ có thể tác động "password", "username", "Submit"..., thật lạ.
Bình thường mình đang ở trang web nào đó (IE) thì có thể nháy chuột phải lên bất kì thành phần nào và chọn Inspect Element=> có ngay đoạn mã html (Tag, Name, ID ...) để đưa vào code. Tuy nhiên với trang web "nhúng" Silverlight thì không thể tìm thấy. Thật khó. Cho nên theo như cách của bạn có thể đăng nhập nhưng sau đó thì chắc không tiếp tục điều khiển/ tương tác với Web được. Tìm trên mạng cũng không thấy đề cập đến vấn đề dùng VBA để thao tác với Web silverlight, khả năng là ứng dụng ít (đã từng nghe Silverlight có tiềm năng thay thế Flash). Đành phải cố tìm vậy xem có ý tưởng gì mới áp dụng được không.
Tks bạn.
 
Lần chỉnh sửa cuối:
Quả thực là mình không hiểu sao code lại không chạy được trên máy mình, có thể không tương thích (win 8.1 64bit+ Excel 2010 + Internet Explorer 11). Mà mình đã xem trong Source thì ko thấy Element nào khả dĩ có thể tác động "password", "username", "Submit"..., thật lạ.
Bình thường mình đang ở trang web nào đó (IE) thì có thể nháy chuột phải lên bất kì thành phần nào và chọn Inspect Element=> có ngay đoạn mã html (Tag, Name, ID ...) để đưa vào code. Tuy nhiên với trang web "nhúng" Silverlight thì không thể tìm thấy. Thật khó. Cho nên theo như cách của bạn có thể đăng nhập nhưng sau đó thì chắc không tiếp tục điều khiển/ tương tác với Web được. .

Tôi dùng IE 8 thì không có mục "Inspect Element". Dùng Firefox (31.0) thì có.
Bạn nói "không thể tìm thấy" thì không đúng.
Ví dụ

1.jpg
 
Tôi dùng IE 8 thì không có mục "Inspect Element". Dùng Firefox (31.0) thì có.
Bạn nói "không thể tìm thấy" thì không đúng.
Ví dụ

View attachment 127882

Hic, Bây giờ mới để ý cái chụp màn hình của bạn. Khác xa cái màn hinh của mình (file).
Bạn đã cài Silverlight (www.microsoft.com/getsilverlight) trên máy tính/ Control panel chưa? Mình đoán trang web thử nghiệm ở trên (http://myfinalclubs.com/ ) có 2 chế độ:
1) Nếu máy đã có SilverLight thì sẽ có giao diện như của mình (và nháy menu chuột phải trong trang web là không cho phép - chỉ hiện mỗi thông tin Silverlight
2) Nếu máy ko có Silverlight thì nó tự động chuyển sang giao diện như máy bạn
* Bây giờ bạn thử giúp mình = trang này, xem có tác động được vào trang web không (bạn cứ thử nhập - khi sai trên web sẽ hiện dòng tẽxt báo lỗi
http://www.vinamarinepa.gov.vn/pa/
 

File đính kèm

  • silverlight.jpg
    silverlight.jpg
    117.9 KB · Đọc: 5
  • source OF myfinalclubs.com.docx
    22.6 KB · Đọc: 1
  • source OF www.vinamarinepa.gov.vn.docx
    16.6 KB · Đọc: 4
  • Untitled.jpg
    Untitled.jpg
    23.3 KB · Đọc: 2
Lần chỉnh sửa cuối:
Hic, Bây giờ mới để ý cái chụp màn hình của bạn. Khác xa cái màn hinh của mình (file).
Bạn đã cài Silverlight (www.microsoft.com/getsilverlight) trên máy tính/ Control panel chưa? Mình đoán trang web thử nghiệm ở trên (http://myfinalclubs.com/ ) có 2 chế độ:
1) Nếu máy đã có SilverLight thì sẽ có giao diện như của mình (và nháy menu chuột phải trong trang web là không cho phép - chỉ hiện mỗi thông tin Silverlight
2) Nếu máy ko có Silverlight thì nó tự động chuyển sang giao diện như máy bạn
* Bây giờ bạn thử giúp mình = trang này, xem có tác động được vào trang web không (bạn cứ thử nhập - khi sai trên web sẽ hiện dòng tẽxt báo lỗi
http://www.vinamarinepa.gov.vn/pa/

Tôi đã nói rồi. Cách của tôi chỉ để tham khảo cho đỡ buồn, và khi không còn cách nào khác. Không có chỗ nào tôi nói là với mọi trang web đều dùng thành công. Thậm chí tôi còn nói là cùng một trang web nhưng cấu trúc thay đổi thì code không chạy, phải viết code mới.

Về Silverlight thì đúng là tôi không cài. Nhiều người cài 1000 thứ còn tôi chỉ cài những cái thực sự cần. Ngay cả antivirus tôi không có, chỉ có tường lửa thôi..
 
Tôi đã nói rồi. Cách của tôi chỉ để tham khảo cho đỡ buồn, và khi không còn cách nào khác. Không có chỗ nào tôi nói là với mọi trang web đều dùng thành công. Thậm chí tôi còn nói là cùng một trang web nhưng cấu trúc thay đổi thì code không chạy, phải viết code mới.

Về Silverlight thì đúng là tôi không cài. Nhiều người cài 1000 thứ còn tôi chỉ cài những cái thực sự cần. Ngay cả antivirus tôi không có, chỉ có tường lửa thôi..
Công việc có liên quan mới phải cài thôi ạ.
Bạn xem thử Source code của www.vinamarinepa.gov.vn/pa tại #30 thì thấy có cách nào khai thác được ko ạ? (Trang web chi co 1 textbox Usernam, 1textbox password, 1 button Submit). Mình đầu hàng.
 
Lần chỉnh sửa cuối:
Công việc có liên quan mới phải cài thôi ạ.
Bạn xem thử Source code của www.vinamarinepa.gov.vn/pa tại #30 thì thấy có cách nào khai thác được ko ạ? Mình đầu hàng.

Khi tôi mở trang web bạn đưa thì bạn muốn tôi khai thác cái gì? Nếu tôi click vào hình thì nhẩy ra cửa sổ để tải về Silverlight.exe.
Hãy viết cụ thể, dùng từ cụ thể.
---------
Ngoài ra bạn muốn tôi "khai thác" nhưng tôi có phải cài Silverlight không? Vì tôi chưa cài và sẽ không cài
 
Lần chỉnh sửa cuối:
Khi tôi mở trang web bạn đưa thì bạn muốn tôi khai thác cái gì? Nếu tôi click vào hình thì nhẩy ra cửa sổ để tải về Silverlight.exe.
Hãy viết cụ thể, dùng từ cụ thể.
---------
Ngoài ra bạn muốn tôi "khai thác" nhưng tôi có phải cài Silverlight không? Vì tôi chưa cài và sẽ không cài
Vâng. Rất cảm ơn vì sự nhiệt tình của bạn. Mình phải làm thủ công thôi a (vì phải cài SL)
Còn 1 vấn đề nữa mình muốn hỏi: có đoạn code Vba nào có thể "gọi"/ kich hoat dc JavaScripts trong trang web ko?
 
Vâng. Rất cảm ơn vì sự nhiệt tình của bạn. Mình phải làm thủ công thôi a (vì phải cài SL)
Còn 1 vấn đề nữa mình muốn hỏi: có đoạn code Vba nào có thể "gọi"/ kich hoat dc JavaScripts trong trang web ko?

Tốt nhất bạn nên diễn tả theo kiểu này: Ta truy cập tới trang web xyz. Trong trang xyz có abc. Có thể lấy, ra, đọc ra, thực thi abc không
 
Trở lại vấn đề trang http://myfinalclubs.com
thì bạn thử chạy code sau đây rồi cho tôi xem nội dung tập tin "c:\hichic.txt"
Mã:
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

Sub test()
    Const strURL As String = "http://myfinalclubs.com"
    Dim ie As Object
    Dim s As String
    On Error Resume Next
    
    Set ie = CreateObject("internetexplorer.application")
    ie.Navigate strURL
'    ie.Visible = True
    
    Do While ie.Busy
        DoEvents
    Loop
    
    Sleep 30000
    
    s = ie.document.body.innerHTML
    
    Open "c:\hichic.txt" For Binary As #1
    Put #1, , s
    Close #1
    
    ie.Quit
    
    MsgBox "Done"
End Sub
 
Lần chỉnh sửa cuối:
Bạn xem file giúp mình nhé. Tks

Thực ra bạn chỉ muốn đăng nhập tự động, đúng không?
Còn nếu bạn muốn đăng nhập rồi sau khi đăng nhập thì ở cửa sổ thứ 2 lại muốn click vào xyz để rồi trong cửa sổ nhẩy ra, tức cửa sổ thứ 3, lại chọn cái gì đó để rồi ... thì mất công lắm.

Nếu bạn chỉ muốn đăng nhập tự động và cửa sổ sau khi đăng nhập có đầy đủ chức năng của Silverlight thì đọc tiếp.

Tôi thử thì thấy nếu truy cập tới http://www.myfinalclubs.com thì khi chưa cài Silverlight như ở máy tôi thì cửa sổ đăng nhập có "password", "username" và "submit". Cũng với địa chỉ đó nhưng ở máy bạn có cài Silverlight thì không có "password", "username" và "submit" mà thay vào đó là object Silverlight.

Như vậy thì khi ta truy cập tới http://www.myfinalclubs.com thì sẽ có kiểm tra: nếu máy chưa cài Silverlight (như trên máy của tôi) thì script http://www.myfinalclubs.com/htmllogin.php được thực hiện để hiển thị cửa sổ đăng nhập không có Silverlight, còn nếu có cài Silverlight (như máy bạn) thì script khác sẽ được thực thi để hiển thị cửa sổ đăng nhập có Silverlight.

Như vậy ta có ý tưởng: ta không truy cập tới http://www.myfinalclubs.com mà truy cập tới http://www.myfinalclubs.com/htmllogin.php để có cửa sổ đăng nhập với "password", "username" và "submit" bất luận máy có cài Silverlight hay không.

Tiếp theo ta tìm "password", "username", "submit" và đăng nhập. Tất nhiên cửa sổ sau khi đăng nhập sẽ không có Silverlight ngay cả trên máy có cài Silverlight. Nhưng một khi đã đăng nhập được rồi thì một thao tác nào đó sẽ "châm ngòi" cho việc kiểm tra xem máy có cài Silverlight hay không. Nếu máy không cài thì cửa sổ vẫn không có Silverlight. Nhưng nếu có cài thì cửa sổ sau đăng nhập sẽ refresh để có Silverlight.

Vậy các bước là:

1 Truy cập vào http://www.myfinalclubs.com/htmllogin.php
2. Tìm "password", "username", "submit" và đăng nhập
3. Sau khi đăng nhập rồi (đợi trang load hoàn tất) thì truy cập tới http://www.myfinalclubs.com để "ép" refresh

Chỗ đỏ đỏ bạn nhập dữ liệu của mình.

Mã:
Sub Login()
    Const url1 As String = "http://www.myfinalclubs.com"
    Const url2 As String = "http://www.myfinalclubs.com/htmllogin.php"
    Const Login As String = "[COLOR=#ff0000]***[/COLOR]"
    Const password As String = "[COLOR=#ff0000]***[/COLOR]"
    Dim ie As Object
    Dim objPassword As Object
    Dim objUser As Object
    Dim objInput As Object
    Dim coll As Object
    Dim index As Long
    
'    1. buoc 1
    Set ie = CreateObject("internetexplorer.application")
    ie.Visible = True
    
    ie.Navigate url2
    
    Do While ie.Busy
        DoEvents
    Loop
'    2. buoc 2
    Do
        Set objPassword = ie.document.getElementById("password")
    Loop Until Not objPassword Is Nothing
    
    Do
        Set objUser = ie.document.getElementById("username")
    Loop Until Not objUser Is Nothing
    
    objUser.Value = Login
    objPassword.Value = password
    
    Do While ie.Busy
        DoEvents
    Loop
    
    Set coll = ie.document.getElementsByTagName("input")
    On Error Resume Next
    For index = 0 To coll.Length - 1
        If coll(index).Name = "Submit" And coll(index).Value = "Login" Then
            Set objInput = coll(index)
            Exit For
        End If
    Next
    On Error GoTo 0
    
    objInput.Click
    
    Do While ie.Busy
        DoEvents
    Loop
'    3. buoc 3
    ie.Navigate url1
    
    MsgBox "Done"
End Sub
 
Thực ra bạn chỉ muốn đăng nhập tự động, đúng không?
Còn nếu bạn muốn đăng nhập rồi sau khi đăng nhập thì ở cửa sổ thứ 2 lại muốn click vào xyz để rồi trong cửa sổ nhẩy ra, tức cửa sổ thứ 3, lại chọn cái gì đó để rồi ... thì mất công lắm.

Nếu bạn chỉ muốn đăng nhập tự động và cửa sổ sau khi đăng nhập có đầy đủ chức năng của Silverlight thì đọc tiếp.

Tôi thử thì thấy nếu truy cập tới http://www.myfinalclubs.com thì khi chưa cài Silverlight như ở máy tôi thì cửa sổ đăng nhập có "password", "username" và "submit". Cũng với địa chỉ đó nhưng ở máy bạn có cài Silverlight thì không có "password", "username" và "submit" mà thay vào đó là object Silverlight.

Như vậy thì khi ta truy cập tới http://www.myfinalclubs.com thì sẽ có kiểm tra: nếu máy chưa cài Silverlight (như trên máy của tôi) thì script http://www.myfinalclubs.com/htmllogin.php được thực hiện để hiển thị cửa sổ đăng nhập không có Silverlight, còn nếu có cài Silverlight (như máy bạn) thì script khác sẽ được thực thi để hiển thị cửa sổ đăng nhập có Silverlight.

Như vậy ta có ý tưởng: ta không truy cập tới http://www.myfinalclubs.com mà truy cập tới http://www.myfinalclubs.com/htmllogin.php để có cửa sổ đăng nhập với "password", "username" và "submit" bất luận máy có cài Silverlight hay không.

Tiếp theo ta tìm "password", "username", "submit" và đăng nhập. Tất nhiên cửa sổ sau khi đăng nhập sẽ không có Silverlight ngay cả trên máy có cài Silverlight. Nhưng một khi đã đăng nhập được rồi thì một thao tác nào đó sẽ "châm ngòi" cho việc kiểm tra xem máy có cài Silverlight hay không. Nếu máy không cài thì cửa sổ vẫn không có Silverlight. Nhưng nếu có cài thì cửa sổ sau đăng nhập sẽ refresh để có Silverlight.

Vậy các bước là:

1 Truy cập vào http://www.myfinalclubs.com/htmllogin.php
2. Tìm "password", "username", "submit" và đăng nhập
3. Sau khi đăng nhập rồi (đợi trang load hoàn tất) thì truy cập tới http://www.myfinalclubs.com để "ép" refresh

Chỗ đỏ đỏ bạn nhập dữ liệu của mình.

Mã:
Sub Login()
   
End Sub
Cảm ơn bạn đã nhiệt tình giúp đỡ mình. Vấn đề ở chỗ không phải trang web Silverlight nào cũng có phiên bản HTML (& còn nhiều việc sau đăng nhập), nên chắc mình phải làm thủ công thôi. Mình nghĩ chắc vẫn có thể làm được nhưng phải nghiên cứu thêm về SilverLight để tương tác với nó thì mất thời gian lắm. Tks again
 
Cảm ơn bạn đã nhiệt tình giúp đỡ mình. Vấn đề ở chỗ không phải trang web Silverlight nào cũng có phiên bản HTML (& còn nhiều việc sau đăng nhập), nên chắc mình phải làm thủ công thôi. Mình nghĩ chắc vẫn có thể làm được nhưng phải nghiên cứu thêm về SilverLight để tương tác với nó thì mất thời gian lắm. Tks again

Việc của bạn tôi nghĩ hoàn toàn có thể làm được. Chỉ cần tìm hiểu về API.
Không chỉ có Windows API. API là API - Application Programming Interface

Tôi cho vd.
Bạn lập trình một Player của mình, đơn giản thôi. Có Button để chọn một danh sách (play list) các tập tin mp3 đã lập sẵn vào 1 ListBox rồi chạy lần lượt các tập tin mp3 hoặc chọn 1 mp3 để chạy. Nhưng để làm khó dễ thì Button và ListBox thực ra không phải control của Windows mà do bạn "tự vẽ". Nếu một anh "lập trình chuyên nghiệp" muốn viết code để "điều khiển" Player của bạn thì anh ta bó tay. Không thể nào dùng code để chọn play list và chạy các tập tin của list được.

Nhưng nếu tôi muốn hỗ trợ những người lập trình thì tôi sẽ tạo ra API cho player của mình. Vd. tôi làm như sau:

1. Mọi "điều khiển" được thực hiện bằng cách gửi thông điệp tới cửa sổ Player. Thông điệp sẽ có 2 tham số: message (số), parameter

2. Tôi định nghĩa 2 hằng số
PM_LIST = abc (PM = Player Message)
PM_PLAY = rst

3.
a. Khi cần chọn list cho Player thì gửi thông điệp PM_LIST với parameter = đường dẫn tới list là tập tin TXT ghi trên đĩa. Lúc đó nếu hàm cửa sổ của Player nhận được thông điệp như thế thì code của Player sẽ mở tập tin TXT và nạp nội dung vào ListBox. Kết quả xử lí thông điệp sẽ được trả về vd. ở dạng số mục có trong list.

b. Khi cần phát toàn bộ list hoặc mục cụ thể thì gửi thông điệp PM_PLAY với parameter = -1 nếu chạy toàn bộ list hoặc parameter = k, với 0 ≤ k ≤ count - 1 (count = số mục trong list) nếu chạy mục cụ thể. Lúc đó nếu hàm cửa sổ của Player nhận được thông điệp như thế thì code của Player sẽ chạy toàn bộ list hoặc mục được chọn

4. Cửa sổ Player của tôi có class là MyPlayerWindowClass

Vậy thì khi tôi muốn hỗ trợ những người lập trình thì code của Player của tôi phải có thêm code xử lý những thông điệp PM_***. Và tôi phải công bố API của mình để những người lập trình biết là "điều khiển" thông qua việc gửi thông điệp, và những thông điệp đó có giá trị nào, parameter đi kèm có nghĩa như thế nào. Lúc này thì dễ rồi. Người lập trình sẽ viết code đại loại như:

Private Const PM_LIST = abc
Private Const PM_PLAY = xyz
...
Dim hWnd as Long, count As Long

hWnd = FindWindow("MyPlayerWindowClass", vbNullString)
if hWnd then
count = SendMessage(hWnd, PM_LIST, đường dẫn của list, 0)
SendMessage hWnd, PM_PLAY, -1, 0
hoặc
SendMessage hWnd, PM_PLAY, count \ 2, 0
End If
------------
Nếu bạn muốn làm những việc mà bạn nêu thì hãy tìm hiểu Silverlight API
vd.
http://msdn.microsoft.com/en-us/library/cc903953(v=vs.95).aspx

http://msdn.microsoft.com/en-us/library/cc903928(v=vs.95).aspx

Tôi không quan tâm Silverlight nên chưa bao giờ tìm hiểu.

Nếu bạn không muốn tìm hiểu thì bạn phải làm thủ công thế nào đó. Lựa chọn thuộc về bạn.
 
Nếu bạn muốn làm những việc mà bạn nêu thì hãy tìm hiểu Silverlight API
vd.
http://msdn.microsoft.com/en-us/library/cc903953(v=vs.95).aspx

http://msdn.microsoft.com/en-us/library/cc903928(v=vs.95).aspx

Tôi không quan tâm Silverlight nên chưa bao giờ tìm hiểu.

Nếu bạn không muốn tìm hiểu thì bạn phải làm thủ công thế nào đó. Lựa chọn thuộc về bạn.
Cảm ơn bạn. Mình sẽ tìm hiểu. Link bạn cho nháy vào ko mở được. Phải đúng địa chỉ này mới được ạ (ghi ra để nếu có ai quan tâm) http://msdn.microsoft.com/en-us/library/cc903953(v=vs.95).aspx
 
Web KT
Back
Top Bottom