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.