I. QUÁ TRÌNH THIẾT KẾ HỆ THỐNG SỐ.
2. Xử lý Menu
Bạn đã có thể thêm menu của bạn vào Menu của IE nhưng đó chỉ mới nửa vấn đề, vấn đề còn lại là làm sao để biết người dùng đã chọn Link nào và làm sao để gọi chương trình của bạn. Muốn giải quyết được vấn đề này bạn cần biết một chút về VBScript. Chúng ta sẽ sử dụng đối tượng (Object) external, một cô nàng dễ thương mà IE đã dành cho các lập trình viên. Nếu muốn tìm hiểu chi tiết về Object này bạn có thể tìm thấy nó trong MSDN.
Bạn sửa nộ ở trên thành: <script language=”VBScript”>
Sub AddLink(Url,Info) Dim oShell
Set oShell = CreateObject(“WScript.Shell”)
oShell.run “C:\test.exe “ + Url
Set oShell = Nothing end sub
Sub OnContextMenu()
set srcEvent = external.menuArguments.event set EventElement = external.menuArguments.
document.elementFromPoint ( srcEvent.clientX, rcEvent.clientY )
if srcEvent.type = “MenuExtAnchor” then set srcAnchor = EventElement
do until TypeName(srcAnchor)=”HTMLAnchorE lement” set srcAnchor=srcAnchor.parentElement Loop Call AddLink(srcAnchor.href,srcAnchor. innerText)
elseif srcEvent.type=”MenuExtImage” then if TypeName(EventElement)=”HTMLAreaEleme
nt” then
Call AddLink(EventElement.href,EventElement.
Alt)
else
set srcImage = EventElement
set srcAnchor = srcImage.parentElement
do until TypeName(srcAnchor)=”HTMLAnchorE lement” set srcAnchor=srcAnchor.parentElement if TypeName(srcAnchor)=”Nothing” then call AddLink(srcImage.href,srcImage.Alt) exit sub end if Loop Call AddLink(srcAnchor.href,srcImage.Alt) end if
elseif srcEvent.type=”MenuExtUnknown” then set srcAnchor = EventElement
do until TypeName(srcAnchor)=”HTMLAnchorE lement” set srcAnchor=srcAnchor.parentElement if TypeName(srcAnchor)=”Nothing” then Call AddLink(EventElement.href,EventElement. innerText) exit sub end if Loop Call AddLink(srcAnchor.href,srcAnchor. innerText) elseif 1=1 then
MsgBox(“Unknown Event Source “”” + srcEvent. type + “””” + vbCrLf)
end if end sub
call OnContextMenu()
</script>
Cả đoạn Code trên chỉ làm mỗi một việc là trả về URL của đối tượng bạn đã chọn. Bạn không cần phải bực bội nếu không hiểu hết nó. Vào một ngày đẹp trời nào đó bạn đang tắm và bỗng thốt lên “à ra thế”, ngoài đường đông người lắm, đừng có như thế mà chạy ra đường há. Bạn chỉ cần chú ý đến hàm AddLink() ở đầ ôi xin ghi lại để các bạn dễ nhìn.
Sub AddLink(Url,Info) Dim oShell
Set oShell = CreateObject(“WScript.Shell”) oShell.run “C:\test.exe “ + Url
Set oShell = Nothing End sub
Hàm này sẽ gọ ới tham số là đường dẫn của link (tham số URL) người dùng vừa chọn. Bạn cũng thắc mắc là còn cái tham số Info thì để làm cái gì. Cái đó sẽ cho bạn biết thông tin về cái Link. Bạn cứ hiểu như vậy còn cụ thể thì bạn sẽ tự khám phá ra khi ngồi “vọc” nó. Bạn chỉ cần thay đường dẫn đến chương trình của bạn là xong. Công việc còn lại cuối cùng là chương trình của bạn. Bạn phải viết một đoạn mã để lấy kết quả mà bạn đã dày