你有种再说一遍 发表于 2024-6-25 16:07:17

fangmin723 发表于 2024-6-25 15:07
是啊,之前没有考虑到动态更改命令这一层

因为低版本无法实现AddCommand,所以我很早就发现这个缺陷了.
不要迷恋官方提供的接口,因为这个接口说不定其他cad也没有,其他软件revit也没有,所以要从本质出发去想问题.
如果没有AddCommand,那么就需要动态编译,而动态编译无法更改的,所以不用它,从而再想一个调用函数的方法.
触发函数,无非就是等待无命令期间,阻塞主线程,执行你的函数,再放行主线程.

你有种再说一遍 发表于 2024-6-25 16:46:27

d1742647821 发表于 2024-6-25 16:06
所以昨天我就问你,没有桥接函数,如何定义cad自带的命令,比如line copy这种,惊惊这种方案不行的,别想 ...

哪里不行了?是不是你不行啊?

fangmin723 发表于 2024-6-25 17:28:54

d1742647821 发表于 2024-6-25 16:06
所以昨天我就问你,没有桥接函数,如何定义cad自带的命令,比如line copy这种,惊惊这种方案不行的,别想 ...

哈哈哈,想想也不是不行,万一实现了呢,那就想想怎么获取cad自带的cmdaction,不知道反射能否获取到

fangmin723 发表于 2024-6-25 17:30:33

你有种再说一遍 发表于 2024-6-25 16:07
因为低版本无法实现AddCommand,所以我很早就发现这个缺陷了.
不要迷恋官方提供的接口,因为这个接口说不 ...

动态编译的话,可以用反射获取方法

你有种再说一遍 发表于 2024-6-25 17:44:32

fangmin723 发表于 2024-6-25 17:30
动态编译的话,可以用反射获取方法
其实福萝卜已经教会我了...
在拦截输入法上面有一个功能是逐个字发送到命令栏,
那么在命令栏上面检测空格和回车也不是什么难题,
因此我根本就不需要启动时候去实现动态编译.
我甚至可以利用这个方法屏蔽命令

fangmin723 发表于 2024-6-25 18:00:43

你有种再说一遍 发表于 2024-6-25 17:44
其实福萝卜已经教会我了...
在拦截输入法上面有一个功能是逐个字发送到命令栏,
那么在命令栏上面检测空 ...

666,还是大佬们玩的溜啊,不过,这不就是hook吗,这个一直在后台运行会不会对cad运行速度有没有影响啊

你有种再说一遍 发表于 2024-6-25 18:09:13

fangmin723 发表于 2024-6-25 18:00
666,还是大佬们玩的溜啊,不过,这不就是hook吗,这个一直在后台运行会不会对cad运行速度有没有影响啊

为什么会觉得hook对于运行速度有影响?
难道你写的hook都是while(true)?
hook本质就是事件啊,期间降低运算时间复杂度不就什么都觉察不到就.

fangmin723 发表于 2024-6-25 18:18:08

你有种再说一遍 发表于 2024-6-25 18:09
为什么会觉得hook对于运行速度有影响?
难道你写的hook都是while(true)?
hook本质就是事件啊,期间降低运 ...

嗯嗯,那就没其他问题了

你有种再说一遍 发表于 2024-6-26 18:36:27

fangmin723 发表于 2024-6-25 18:18
嗯嗯,那就没其他问题了

消化了没有啊,拦截输入法上面是不是很好实现

fangmin723 发表于 2024-6-26 18:48:52

你有种再说一遍 发表于 2024-6-26 18:36
消化了没有啊,拦截输入法上面是不是很好实现

嗯嗯,是的,hook我玩过,那个停靠面板使用的快捷键隐藏就是用的hook,更改自定义命令,我没法测试,中望CAD没有别名对象
页: 1 [2]
查看完整版本: CAD.Net COM方式快捷命令别名重定义