目前想通过一个独立程序启动microstation进程,但不打开其界面,通过microstation进程实现dgn文件的打开,及其中模型参数的读取功能,请问这种方式可行吗
您可以试着研究一下SDK下这几个例子:C:\Program Files\Bentley\MicroStationCONNECTSDK\examples\IPCs,不过现在不推荐使用这种方式了,最好是启动Mstn后,直接在MSTN里边操作。
郭工,你好,目前已经成功运行了这个范例,现在的问题,就是不知道如何运行写的插件,以及这个范例中的发布dgn是否可以理解为已经通过microstation打开了该文件,能否给个思路。运行范例为IPCNativeExample
IPCNativeExample.cpp的115行是发送key-in命令的,所以可能需要您先通过常规的mstn二次开发方式做好插件提供各种key-in命令,然后在这里发送插件提供的key-in命令去执行相关功能。
我是通过engine->loadApp() 来加载插件的,但插件界面并没有出来,返回值为6.通过 startApp()来加载插件我用了 mdl load +插件名加载失败
插件界面?这个是不能像常规Mstn二次开发的方式一样打开一个界面然后供用户交互操作,只能执行key-in命令,例子里边执行了“publishdgn publish...”的命令,您可以调试一下看这个命令执行成功了没有,如果成功了,您就换成一个自己开发的mdl小插件的命令,可以先手动启动Mstn检查一下看自己开发的小插件是否可用,然后在把“publishdgn publish...”的命令换成您自己的试一下。
示例程序可以正常运行,但如果将命令换成mdl load + 插件名来启动插件则不成功。在打开界面的情况下,插件是可以通过该命令来加载的。
还有个问题是:通过不打开界面的方式,是否可以向插件传递参数,通过什么方式呢?
可以通过engine->LoadApp来加载自己的插件,不过好像这种方式打开的dgn文件是只读的,只能读取信息,不能修改dgn文件,加载插件时要给出全路径,不能只给一个名字。传递参数的话,key-in命令后边可以跟一个字符串,这个字符串会传递给您的命令函数。或者您也可以在某个路径下创建个文本文件,里边保存参数,然后在插件程序里边读取这个文件。
好的,流程大概知道怎么走通了,现在还有个问题,就是,我发现这样子启动microstation,还是会加载一个microstation的空白窗口,有什么方法可以不加载这个空白窗口吗
这个窗口目前好像去不掉