明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1894|回复: 9

如何实现弹出指定网页?

[复制链接]
发表于 2007-8-16 15:44:00 | 显示全部楼层 |阅读模式
用LSP如何实现点一个按钮弹出指定网页?
发表于 2007-8-16 16:43:00 | 显示全部楼层

用VLA-LUNTCHBROWSER函数吧.

记得好像以前有个版主写过这个函数

 楼主| 发表于 2007-8-16 16:55:00 | 显示全部楼层
我去找找看
发表于 2007-8-17 15:09:00 | 显示全部楼层

(startapp (GetBrowser) "www.mjtd.com");打开明经主页

(defun GetBrowser (/ str)
  (substr (setq str (vl-registry-read
                      "HKEY_CLASSES_ROOT\\htmlfile\\shell\\open\\command"
                    )
          )
          2
          (1- (vl-string-search "\" " str))
  )
)

发表于 2007-8-17 17:16:00 | 显示全部楼层

good idea.

 楼主| 发表于 2007-8-17 17:34:00 | 显示全部楼层
谢谢版主!
发表于 2007-8-17 17:35:00 | 显示全部楼层
王工你的头像变成一把叉了.
 楼主| 发表于 2007-8-21 17:52:00 | 显示全部楼层

王咣生

你的好像有返回值:33!如何去掉.  (setvar "cmdecho" 0)这个不行吧!

发表于 2007-8-21 18:48:00 | 显示全部楼层
简单一点的:
(startapp "explorer.exe" "http://www.mjtd.com");;这个可以用默认浏览器打开
有返回值不是坏事,如果要屏蔽返回值.可以加一个(princ)
  1. ;| www = 打开网页 -----by lxx.2007.8
  2. (www "http://www.mjtd.com")
  3. (www "www.mjtd.com")
  4. |;
  5. (defun www (www)
  6.   (setq www (strcase www T)
  7. www (if (wcmatch www "http://*") www (strcat "http://" www))
  8.   )
  9.   (startapp "explorer.exe" www)
  10.    (princ)
  11. )
发表于 2007-8-22 11:04:00 | 显示全部楼层
本帖最后由 作者 于 2007-8-22 11:12:40 编辑

;;利用LSP打开网页的几种方法

;;利用 command,这种方法简单,但不可以用在打开对话框的情况下
(command "browser" "http://civilworker.com/wltools/")

;;利用 "Microsoft.XMLHTTP",这种方法可以在隐藏窗口的情况下和网站联系,但可以被防火墙拦截
(VL-LOAD-COM)
(if (setq XMLHTTP (vlax-create-object "Microsoft.XMLHTTP"))
  (progn (vlax-method-applicable-p XMLHTTP "open")
  (vlax-method-applicable-p XMLHTTP "send")
  (vlax-invoke-method XMLHTTP "open" "POST" (strcat server msg) t nil nil)
  (vlax-invoke-method XMLHTTP "send" "")
  (setq timemark (getvar "date"))
  (while (and (/= 4 (setq ck (vlax-get-property XMLHTTP "readyState")))
       (< (* 86400.0 (- (getvar "date") timemark)) 2)
  )
  )
  (setq ret (if (= ck 4)
       (vlax-get-property XMLHTTP "responseText")
       ""
     )
  )
  (vlax-release-object XMLHTTP)
  )
  (setq ret "")
)


;;利用 "Shell.Application",这种方法比较简单,可以用在打开对话框的情况下
;;对话框里建议用这个办法
(VL-LOAD-COM)
(SETQ shell (VLAX-CREATE-OBJECT "Shell.Application"))
(VLAX-INVOKE shell "OPEN" "http://stramodel.com")
(VLAX-RELEASE-OBJECT shell)


;;利用"internetexplorer.application",可应控制更多信息,可以和网页交互信息,功能强大
;;这个是利用explorer做对话框的程序
(VL-LOAD-COM)
(if (SETQ OBJW (VLAX-CREATE-OBJECT "internetexplorer.application"))
  (progn (setq width 400
        height 300
        fullscreen 0
  )
  (vlax-put-property OBJW "fullscreen" fullscreen)
  (vlax-put-property OBJW "statusbar" "0")
  (vlax-put-property OBJW "width" width)
  (vlax-put-property OBJW "height" height)
  (vlax-invoke-method OBJW "navigate" "about:blank");可以在此直接输入网址或用下面办法写网页内容
  (setq ie-doc-obj (vlax-get-property OBJW "document"))
  (setq ie-window-obj (vlax-get-property ie-doc-obj "parentwindow"))
  (setq ie-screen-obj (vlax-get-property ie-window-obj "screen"))
  (vlax-put-property OBJW "left" (/ (- (vlax-get-property ie-screen-obj "availwidth") width) 2))
  (vlax-put-property OBJW "top" (/ (- (vlax-get-property ie-screen-obj "availheight") height 20) 2))
  (setq htm (list "<html>\n" "<head>\n" "<title>Wl-tools制图工具密码计算器</title>\n" "</head>\n" "<body align=\"middle\" topmargin=\"20\" leftmargin=\"0\" bgcolor=\"#d0d0d0\" scroll=no>\n"
    "<FORM name=form1 method=post>\n" "<INPUT type=hidden value=\"0\" name=constate>\n" "<p align=center>Wl-tools制图工具密码计算器\n" "<p align=center>*******\n"
    "<p align=center>机器信息码:<input name=\"Hwword\" maxlength=\"27\" size=\"20\"\">\n" "<p align=center>程序注册码:<input name=\"Psword\" maxlength=\"27\" size=\"20\"\">\n"
    "<p align=center><input id=confirm type=button value=\" 计 算 \" class=size2 onclick=\"javascript:ModConstate('-1')\">"
    "    <input id=confirm type=button value=\" 退 出 \" class=size2 onclick=\"javascript:ModConstate('1')\"> </p>\n" "</FORM>\n" "</body>\n" "</html>\n"
    "<SCRIPT language=javascript>\n" "function ModConstate(s) {\n" "document.form1.constate.value = s;\n" "}\n" "</SCRIPT>\n"
   )
  )
  (foreach str htm (vlax-invoke-method ie-doc-obj "write" str ""))
  (vlax-put-property OBJW "addressbar" "0")
  (vlax-put-property OBJW "menubar" 0)
  (vlax-put-property OBJW "visible" "1")
  (vlax-put-property OBJW "toolbar" "0")
  (while (/= (setq str (vlax-get-property (vlax-invoke-method (vlax-get-property ie-doc-obj "all") "namedItem" "constate")
       "value"
         )
      )
      "1"
  )
    (if (= str "-1")
      (progn (vlax-put-property (vlax-invoke-method (vlax-get-property ie-doc-obj "all") "namedItem" "constate")
           "value"
           "0"
      )
      (setq Hwword (vlax-get-property (vlax-invoke-method (vlax-get-property ie-doc-obj "all") "namedItem" "Hwword")
          "value"
     )
      )
      (setq Hwword (vl-string-trim " " Hwword))
      (setq Psword "无此试用权限")
      (cond ((< (strlen Hwword) 17) (setq Psword "机器信息码有效位数不足"))
     (T ;计算过程
     )
      )
      (vlax-put-property (vlax-invoke-method (vlax-get-property ie-doc-obj "all") "namedItem" "Psword")
           "value"
           Psword
      )
      )
    )
    (command "delay" 200)
  )
  (vlax-invoke-method OBJW "quit")
  (vlax-release-object ie-screen-obj)
  (vlax-release-object ie-window-obj)
  (vlax-release-object ie-doc-obj)
  (vlax-release-object OBJW)
  )
  (alert "internetexplorer 不正确")
)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-8-4 04:30 , Processed in 0.165284 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表