找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4071|回复: 21

[LISP函数]:在程序运行过程中按下功能建

[复制链接]
发表于 2004-8-14 16:29:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
用法:(sendkeys 字符串)
例如,(sendkeys "{F3}")  相当于按下F3键
      (sendkeys "{CAPSLOCK}")  相当于按下大小写键
      (sendkeys "^c") 相当于按下CTRL+C键
      (sendkeys "%F") 相当于按下ALT+F键
      ....
[php]
;;Written By AIdraft
(defun SendKeys (keys / ws)
  (setq ws (vlax-create-object "WScript.Shell"))
  (vlax-invoke-method ws 'sendkeys keys)
  (vlax-release-object ws)
  (princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-8-14 21:57:38 | 显示全部楼层
好帖。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-15 13:42:05 | 显示全部楼层
WScript.Shell,这个是什么东西,是不是功能健解释器,在什么地方的啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-8-15 16:07:34 | 显示全部楼层
好帖,加分

  1. ;;Written By AIdraft
  2. (defun SendKeys        (keys / ws)
  3.   (setq ws (vlax-create-object "WScript.Shell"))
  4.   (vlax-invoke-method ws 'sendkeys keys)
  5.   (vlax-release-object ws)
  6.   (princ)
  7. )
  8. (if (not commandreactor)
  9.   (setq        commandreactor
  10.          (vlr-command-reactor
  11.            nil
  12.            '((:vlr-commandwillstart . haha))
  13.          )
  14.   )
  15. )
  16. (defun haha (var1 var2)
  17.   (if (wcmatch (vl-princ-to-string (strcase (car var2))) "*PLOT")
  18.     (progn
  19.       (sendkeys "{ESC}")
  20.       (princ "\n不准打印!")
  21.     )
  22.   )
  23. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-16 09:00:37 | 显示全部楼层
请问有没有应用实例,例如把此功能运用在哪里最好?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-16 17:13:05 | 显示全部楼层
有没有实例,我向学。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-8-17 22:33:36 | 显示全部楼层
这种方法使用了脚本,在某些杀毒软件,比如Kv2004如果打开了脚本监控,就会出现提示。
经查阅资料偶然发现了还可以使用VBA 方法

  1. ;;字符串格式 ""{F3}"") ""{ESC}"" 依次类推
  2. (defun sendkeys (s)
  3.   (vla-eval (vlax-get-acad-object) (strcat "Sendkeys " s))
  4.   (princ)
  5. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-20 18:05:04 | 显示全部楼层
我看过了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-22 11:48:56 | 显示全部楼层
没人帮我解释一下,请帮忙解释一下WScript.Shell,这个是什么东西,是不是功能健解释器,在什么地方的啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-22 16:09:47 | 显示全部楼层
是WScript Host自带的ActiveX服务

Windows 脚本宿主对象模型Windows 脚本宿主对象模型提供了逻辑的、系统的方法来执行很多管理任务。它提供的这组 COM 接口有两个主要的类别。

脚本执行和疑难解答

直接与脚本执行相关的属性与方法。该组接口允许脚本执行基本的 Windows 脚本宿主操作、将消息显示到屏幕上并且执行基本的 COM 功能,例如 CreateObject 和 GetObject。

支持功能

例如映射网络驱动器、连接打印机、检索及修改环境变量、处理注册表项等执行操作的属性与方法。管理员也可以使用 Windows 脚本宿主支持功能来创建简单的登录脚本。

对象 可以用该对象完成的任务
WScript 设置和检索命令行参数
确定脚本文件的名称
确定宿主文件名(Wscript.exe 或者 Cscript.exe)
确定宿主版本信息
创建、连接到 COM 对象和与之断开
Sink 事件
通过程序停止执行脚本
将信息发送到默认的输出设备(对话框或者控制台)

WshArguments 访问整组命令行参数

WshNamed 访问一组命名的命令行参数

WshUnnamed 访问一组未命名的命令行参数

WshNetwork 连接到网络共享和网络打印机,以及断开网络共享和网络打印机的连接
映射到网络共享以及与网络共享断开
访问当前登录用户的相关信息

WshController 使用 Controller 方法 CreateScript() 创建远程脚本进程

WshRemote 远程管理在计算机网络上的计算机系统
通过程序操纵其他程序和脚本

WshRemote Error 访问当远程脚本(WshRemote 对象)终止时作为脚本错误结果的可用错误信息

WshShell 在本地运行程序
操纵注册表的内容
创建快捷方式
访问系统文件夹
操纵环境变量,例如 WINDIR、PATH、或 PROMPT

WshShortcut 通过程序创建快捷方式

WshSpecialfolders 访问任意 Windows 特殊文件夹

WshURLShortcut 通过程序创建 Internet 资源的快捷方式

WshEnvironment 访问任意环境变量,例如 WINDIR、PATH 或 PROMPT

WshScriptExec 确定以 Exec() 运行的脚本的终止状态和错误信息
访问 stdIn、stdOut 和 stdErrchannels


除了 Windows 脚本宿主提供的对象接口之外,管理员可以使用所有暴露自动接口的 ActiveX 控件在 Windows 平台上执行各种任务。例如,管理员可以编写脚本来管理 Active Directory 的目录服务。

详细信息,请参阅 Microsoft 网站中的 Windows 脚本技术网站 (http://www.microsoft.com/)。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-23 13:06:57 | 显示全部楼层
那我在程序中就可以模拟绘图时按“F3”切换捕捉开关了。
其它功能键基本上都有相应的变量,唯F3我不知如何开关,这下好了。谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-8-24 00:59:03 | 显示全部楼层
为了指定那些与 SHIFT、CTRL 及 ALT 等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:
     
按键 代码
SHIFT +
CTRL ^
ALT %


    为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 "+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 "+EC"。
    对 SendKeys 来说,加号 (+)、插入符 (^)、百分比符号 (%)、上划线 (~) 及圆括号 ( ) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号 ({}) 当中。例如,要指定正号,可用 {+} 表示。方括号 ([ ]) 对 SendKeys 来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE) 的时候,它可能具有重要意义。为了指定大括号字符,请使用 {{} 及 {}}。
    另外,参考Sendkeys的帮助,可以找到其他一些特殊键的传递方法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-25 17:47:40 | 显示全部楼层
aidraft 真是高手,我建议aidraft 做斑竹,不知道各位觉得怎么样
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-26 13:43:32 | 显示全部楼层
我想模拟打开CAD的“文件”菜单,为什么不行?代码如下,错在哪里?

(defun c:kk()
   (defun SendKeys (keys / ws)
        (setq ws (vlax-create-object "WScript.Shell"))
        (vlax-invoke-method ws 'sendkeys keys)
        (vlax-release-object ws)
        (princ)
   )
(sendkeys "%F")
)

错误提示如下:
Command: kk
error: null function
(VLAX-CREATE-OBJECT "WScript.Shell")
(SETQ WS (VLAX-CREATE-OBJECT "WScript.Shell"))
(SENDKEYS "%F")
(C:KK)
*Cancel*

怎么回事呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-26 14:25:27 | 显示全部楼层
你用什么版本的cad?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 06:29 , Processed in 0.529922 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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