明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: yyzhan12

[函数] 我也来个VLISP直接调用WIN API函数

    [复制链接]
 楼主| 发表于 2009-3-12 09:36 | 显示全部楼层
nonsmall发表于2009-3-12 9:27:00API声明好 eval就可以用了另外使用(repeat 10)的时候还是容易出现无法卸载的情况(还是会有提示出现)

我试过(repeat 200 (ysx-use-api nil "Private Declare Function GetCurrentProcessId Lib \"kernel32\" () As Long" "GetCurrentProcessId" nil)))没问题,但执行速度较低

 楼主| 发表于 2009-3-12 09:39 | 显示全部楼层
本帖最后由 作者 于 2009-3-12 9:40:41 编辑

nonsmall发表于2009-3-12 9:31:00我想可以这样改改:加载程序时判断若没有就vbanew一个然后用一个全局变量记录这个Global宏名称下次执行程序不新建也不删除建立一个图形反应器当图形即将关闭的时候触发 自动关闭这个Global宏即可

其实还是在宏里打转,最理想的应该像VLISP调用vbs

发表于 2009-3-12 09:47 | 显示全部楼层

我试了 效果不错

应该算解决了循环和卸载的问题

效率上我认为甚至可以这样

既然隐藏不好那就不隐藏了

让API部分的代码完全暴露

加载程序时一次生成所有的东西 然后不删除 一直用着 关图时再清空

发表于 2009-3-12 09:53 | 显示全部楼层
yyzhan12发表于2009-3-12 9:39:00其实还是在宏里打转,最理想的应该像VLISP调用vbs

VBS 何曾不想用 API 呢?

除非封装DLL能达到那种调用的效果 但是那就脱离Only Lisp范畴了

API声明是驻留内存中 如果Lisp能对内存进行特殊的读写就能实现更强的功能

没实力动手验证了

 楼主| 发表于 2009-3-12 17:31 | 显示全部楼层
nonsmall发表于2009-3-12 9:47:00我试了 效果不错应该算解决了循环和卸载的问题效率上我认为甚至可以这样既然隐藏不好那就不隐藏了让API部分的代码完全暴露加载程序时一次生成所有的东西 然后不删除 一直用着 关图时再清空

用完不删除,这是不合理的,因为不可能保证都同一个工程,因为其它程序也可能加载工程或用VBANEW命令,当出来时会有一大堆的保存信息提示,很烦人的.

效率上其实不是很大的问题,只是不够完美而已

API代码隐蔽性是个比较难的问题

 楼主| 发表于 2009-3-12 17:36 | 显示全部楼层
本帖最后由 作者 于 2009-3-12 20:43:23 编辑

nonsmall发表于2009-3-12 9:53:00VBS 何曾不想用 API 呢?除非封装DLL能达到那种调用的效果 但是那就脱离Only Lisp范畴了API声明是驻留内存中 如果Lisp能对内存进行特殊的读写就能实现更强的功能没实力动手验证了

要想VBS调用API,可借用DYNACALL.DLL文件,方法如下:

把DYNACALL.DLL存储于fas文件中,通过写操作生成DYNACALL.DLL,直接在在VBS中调用API.

DYNACALL.DLL不知在哪可下载?网上提供的链接大多都无效.

DYNACALL.DLL文件不知道有多大?太大了就没必要这样做了

 楼主| 发表于 2009-3-13 17:14 | 显示全部楼层
nonsmall发表于2009-3-12 9:53:00VBS 何曾不想用 API 呢?除非封装DLL能达到那种调用的效果 但是那就脱离Only Lisp范畴了API声明是驻留内存中 如果Lisp能对内存进行特殊的读写就能实现更强的功能没实力动手验证了

VBA是如何声明API的呢?是否可以从这方面入手?要是声明搞好,使用VBA语句就不是难事了

发表于 2009-3-16 19:50 | 显示全部楼层
API->lisp????
发表于 2009-3-19 08:42 | 显示全部楼层
yyzhan12发表于2009-3-5 16:32:00Vlx封装VBA窗体,和调用API有何区别?

你试试窗体是如何打包的?

发表于 2009-3-19 11:37 | 显示全部楼层
yyzhan12发表于2009-3-12 9:39:00其实还是在宏里打转,最理想的应该像VLISP调用vbs

我解密了你的代码

看到你所用的方法还不是最好

我的方法不需要写出外部文件

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

本版积分规则

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

GMT+8, 2024-4-25 18:34 , Processed in 0.245382 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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