2008/01/14

Common Lisp : cl-win32ole 結局は

cl-win32ole で Ruby がメソッドミッシングで実現していることを、どう実装しようと悩んでいました。
よくよく考えると、そんなことより ie.document.all.Item("q").value = "aaa" 相当が簡単にできればいい、と思い関数を2つほど実装しました。
これで (setf (ole ie :document :all :item "q" :value) "aaa") と書けるようになりました。

(let ((ie (create-object "InternetExplorer.Application")))
(setf (ole ie :visible) t)
(ole ie :navigate "http://www.google.co.jp/")
(loop while (ole ie :busy) do (sleep 0.5))
(setf (ole ie :document :all :item "q" :value) "Common Lisp")
(ole ie :document :all :item "btnG" :click)
(sleep 3)
(ole ie :quit))

0 件のコメント: