找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3626|回复: 29

[公告]:vlisp直接使用WINDOWS API已经实现 提供思路+个提示

[复制链接]
发表于 2008-12-30 08:07:27 | 显示全部楼层 |阅读模式

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

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

×
终于搞定这个问题 庆祝一下

我已经证明完全用VLisp(不必间接调用编译好的dll之类控件 不写vbs)

就可以使用Windows API处理问题!!

示例函数:

Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long
Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long


命令: (GetCurrentProcessId)
"3436"
命令: (SetCursorPos 200 670)
命令: (SetCursorPos 200 680)
命令: (SetCursorPos 200 300)

命令: (ShowCursor 0);隐藏鼠标
命令: (ShowCursor 1);显示鼠标

命令: (PlaySound "C:\\WINDOWS\\Media\\Windows XP 启动.wav" 1 1)


提供思路:
1 LISP自己能解释 API 语句吗?

2 当然不能 那靠谁解释(想想可以解释API的并且LISP能借用的都有哪些东西  大家可以跟帖讨论)?

3 怎样把代码交给解释器? (直接传递?写个文件?)

4 解释后怎样告诉LISP结果?

5 再给个提示:直接传递?间接传递?

上面的问题想想就出来了

大家猜了不少 7 楼是正解 但是我的其他发言也没有骗人.

本帖被以下淘专辑推荐:

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

已领礼包: 1915个

财富等级: 堆金积玉

发表于 2008-12-30 09:03:37 | 显示全部楼层
错误: no function definition: DECLARE_FUNCTION

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

使用道具 举报

 楼主| 发表于 2008-12-30 11:02:33 | 显示全部楼层
我自己用LISP定义的
我说了完全用lisp编写
不用VB定义函数帮忙
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2008-12-30 12:08:11 | 显示全部楼层
关注。。。。

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

使用道具 举报

已领礼包: 1915个

财富等级: 堆金积玉

发表于 2008-12-30 12:39:37 | 显示全部楼层
Lib "kernel32" Alias \"GetCurrentProcessId" () As Long
看着就像vb的语法
等楼主解密
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 1915个

财富等级: 堆金积玉

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

使用道具 举报

 楼主| 发表于 2008-12-30 13:33:24 | 显示全部楼层
现在还有一些问题需要解决
我需要判断哪个acad.exe在进程中是当前CAD的
按照楼上的意思写出一个.vbs也可以完全实现的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

 楼主| 发表于 2008-12-30 14:15:33 | 显示全部楼层
我提供了思路在一楼

-----------------------------------
HWND确实可以
其实ACET有函数(就是担心有些人电脑不装ET)
我想另外有没有办法可以判断
API 方法需要先处理一下这个问题才能生成 所以不能用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2008-12-30 20:47:23 | 显示全部楼层
以前借助第三方调用API的程序

API需要封装好 只能调用

无法根据自己的需要临时添加API

现在可以根据需要

即时生成需要的API调用函数(用lisp拆解API声明 自动转为lisp函数定义)

以下为今天测试成功样例:

"Declare Function SetCursorPos Lib \"user32\" (ByVal x As Long, ByVal y As Long) As Long"

自动生成函数 (SetCursorPos var0 var1)

使用(SetCursorPos 200 300);设置鼠标位置



Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

自动生成函数 (PlaySound var0 var1 var2)

使用(PlaySound "C:\\WINDOWS\\Media\\Windows XP 启动.wav" 1 1);播放WAV文件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2008-12-31 08:24:21 | 显示全部楼层
只了解winapi在 Autocad VBA 中可以声明后调用,vl 如何完成过渡转转还没有想出来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2008-12-31 12:33:40 | 显示全部楼层
高人啊!关注中。。。

期待老猫大侠出招解密,造福黎民,此乃名留青史之举啊,谨向猫大侠致敬。。。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 11:09 , Processed in 0.542080 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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