[分享]autopdms仿pdms命令行的实现
以下是引用uesoft在2007-11-20 17:39:58的发言:
目前在basccommand中加入了cmdline命令,此命令是显示命令行窗口。
在命令行窗口中可以执行以下命令(命令是根据pdms中所描述的进行注册的):
查询当前节点属性 q att
查询类型 q type
命令行清屏 alpha request clear
新建 new (type)
删除 delete (type) 或 delete
命名 name /newname
查询节点属性 q (attname)
锁定 lock ce
解锁 unlock ce
加入显示 add ce
移去显示 remove ce
查询成员 q mem
查询第n个成员属性 q mem (n)
查询当前工程 q project
查询某个类型属性 q att of (type)
查询当前节点以上类型节点的属性 q (type)
修改节点属性 (attname) (attvalue) //指针引用不可以修改
导航
下一层次第n个节点 (n)
本层次第一个节点 first
本层次最后一个节点 last
下一个节点 next
前一个节点 previous
当前节点以上的节点 (type)
回到上一次的层次 owner或end
追踪参考 goto (引用属性名)
文件输出
file /d:\output.txt
output ce
file end
执行宏程序 $m d:\output.txt
///////////////////////////////////////////////////
各模块的命令没有实现
若各模块要实现某个特殊命令
可以用以下方式注册:
1.从commandparser类派生一个类
2.实现函数:
virtual bool executecommand( cstring& strcommand ) = 0;
strcommand:是执行完后要显示到命令窗口的字符串
3.注册命令:
register_commandline_begin( 从commandparser类派生的类名 )
register_command( _t( "命令关键字和参数") ) //如:q (type) 注册为 q@ 其中@表示参数
.
.
.
register_commandline_end()
在实现bool executecommand( cstring& strcommand )中可以通过commandparams* commandparser::getcommandparams()得到命令关键字和参数对象
//////////////////////////////////////////
现在各模块可将错误消息发送到命令窗口中
请更新
apdomainframe和apcommandlineui
发送消息代码:
errormessageparam* pparam = new errormessageparam();
pparam->m_strerrormsg = _t("错误信息");
message msg( pdmsframe::ecmdline,pdmsframe::eerrmessage,pparam );
messageprocessor::instance().sendmessage( &msg );
目前在basccommand中加入了cmdline命令,此命令是显示命令行窗口。
在命令行窗口中可以执行以下命令(命令是根据pdms中所描述的进行注册的):
查询当前节点属性 q att
查询类型 q type
命令行清屏 alpha request clear
新建 new (type)
删除 delete (type) 或 delete
命名 name /newname
查询节点属性 q (attname)
锁定 lock ce
解锁 unlock ce
加入显示 add ce
移去显示 remove ce
查询成员 q mem
查询第n个成员属性 q mem (n)
查询当前工程 q project
查询某个类型属性 q att of (type)
查询当前节点以上类型节点的属性 q (type)
修改节点属性 (attname) (attvalue) //指针引用不可以修改
导航
下一层次第n个节点 (n)
本层次第一个节点 first
本层次最后一个节点 last
下一个节点 next
前一个节点 previous
当前节点以上的节点 (type)
回到上一次的层次 owner或end
追踪参考 goto (引用属性名)
文件输出
file /d:\output.txt
output ce
file end
执行宏程序 $m d:\output.txt
///////////////////////////////////////////////////
各模块的命令没有实现
若各模块要实现某个特殊命令
可以用以下方式注册:
1.从commandparser类派生一个类
2.实现函数:
virtual bool executecommand( cstring& strcommand ) = 0;
strcommand:是执行完后要显示到命令窗口的字符串
3.注册命令:
register_commandline_begin( 从commandparser类派生的类名 )
register_command( _t( "命令关键字和参数") ) //如:q (type) 注册为 q@ 其中@表示参数
.
.
.
register_commandline_end()
在实现bool executecommand( cstring& strcommand )中可以通过commandparams* commandparser::getcommandparams()得到命令关键字和参数对象
//////////////////////////////////////////
现在各模块可将错误消息发送到命令窗口中
请更新
apdomainframe和apcommandlineui
发送消息代码:
errormessageparam* pparam = new errormessageparam();
pparam->m_strerrormsg = _t("错误信息");
message msg( pdmsframe::ecmdline,pdmsframe::eerrmessage,pparam );
messageprocessor::instance().sendmessage( &msg );
以下是引用白水6在2009-12-25 22:34:04的发言:
李总的objectarx很牛啊!我想问你一个问题,pdms的数据库接口需要license怎么解决啊?
autopdms8.1的开发大量使用objectarx,autopdms软件凝聚着uesoft全体开发人员的心血和智慧。我对他们表示深深的敬意。
autopdms读取pdms数据库需要使用如下文件,这些文件在autopdms安装目录\common files下(例如d:\program files\长沙优易软件开发有限公司\autopdms8.1\common files):
动态库文件 用于读取pdms版本 备注
dformd.dll 各种版本都需要
d3lib115.dllpdms11.5 (也许可用于11.6,但没测试过)
d3lib.dll pdms11.3及以下版本
未知 pdms其他版本 没有测试
[此贴子已经被作者于2009-12-28 9:28:56编辑过] 以下是引用白水6在2009-12-26 17:55:02的发言:
我在autopdms中找到d3lib115.dll 在pdms11.5中使用还是不行。一样跳出license的要求!
以下是引用uesoft在2009-12-27 13:59:01的发言:首先谢谢你的贴。
你要保证你的pdms是可用的。pdms本身的破解已经有很多文章了。如果动态库还不能访问,我就不清楚了。你可以周1-5 10:00-17:00 call 0731-88228807找刘经理或88228813或4006 808 590陈经理。
页:
[1]