首页 > 编程语言 >ZWCAD 自动加载net DLL程序,并加载菜单

ZWCAD 自动加载net DLL程序,并加载菜单

时间:2023-09-22 09:26:51浏览次数:35  
标签:Count pmParnet ZWCAD MenuGroups DLL Item AddMenuItem app 加载

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ZWSOFT\ZWCADM\2018\zh-CN\Applications\AutoCADADDIN]
"DESCRIPTION"=""
"LOADCTRLS"=dword:0000000d
"LOADER"="D:\\Users\\ZWCAD\\AutoCADADDIN.dll"
"MANAGED"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\ZWSOFT\ZWCADM\2018\zh-CN\Applications\AutoCADADDIN\Commands]
"ADDMYPALETTESET"="ADDMYPALETTESET"
"OPENMYHOME"="OPENMYHOME"
"COSEMYHOME"="COSEMYHOME"
"LOGINTC"="LOGINTC"

[HKEY_LOCAL_MACHINE\SOFTWARE\ZWSOFT\ZWCADM\2018\zh-CN\Applications\AutoCADADDIN\Groups]
"AutoCADADDIN"="AutoCADADDIN"

 

 

 

[CommandMethod("caidan")]
public void ShowJingDianMenu()
{
try
{
IAcadApplication app = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication as AcadApplication;

if (app == null) return;

Document doc = Application.DocumentManager.MdiActiveDocument;

Database db = doc.Database;

Editor ed = doc.Editor;

if (app.MenuGroups == null || app.MenuGroups.Item(0) == null) return;

AcadMenuGroups acadMenuGroups = app.MenuGroups;

int index = 0;

foreach (AcadMenuGroup item in acadMenuGroups)
{
string name = item.Name;

//name.ToLower() == "3dtool_menugroup"

if ( name.ToLower() == "amacad")

break;

index++;

}

for (int i = 0; i < app.MenuGroups.Item(index).Menus.Count; i++)

{

if (app.MenuGroups.Item(index).Menus.Item(i).Name == "3DTool")

{

//app.MenuGroups.Item(index).Menus.Item(i).RemoveFromMenuBar();

ed.WriteMessage("3DTool已存在菜单组!");

return;

}

}

//添加根菜单

AcadPopupMenu pmParnet = app.MenuGroups.Item(index).Menus.Add("3DTool");

int countmenubar = app.MenuBar.Count;

//多级 AcadPopupMenu

//AcadPopupMenu pm = pmParnet.AddSubMenu(pmParnet.Count + 1, "绘制模型");

//AcadPopupMenuItem pmi0 = pm.AddMenuItem(pm.Count + 1, "文件 ", "OPEN1\n"); //第一个参数是在菜单项中的位置(第几项),第二个参数是显示的名称,第三个参数是点击之后执行的命令

//AcadPopupMenuItem pmi1 = pm.AddMenuItem(pm.Count + 1, "模版 ", "OPEN2\n");

//单级 AcadPopupMenuItem
pmParnet.AddMenuItem(pmParnet.Count + 1, "绘制模型", "_CON ");

pmParnet.AddSeparator(pmParnet.Count + 1);

pmParnet.AddMenuItem(pmParnet.Count + 1, "导出设备清单", "_ETOE ");

pmParnet.AddSeparator(pmParnet.Count + 1);

pmParnet.AddMenuItem(pmParnet.Count + 1, "修改模型", "_MDC ");

pmParnet.AddSeparator(pmParnet.Count + 1);

pmParnet.AddMenuItem(pmParnet.Count + 1, "修改编号", "_GAT ");

pmParnet.AddSeparator(pmParnet.Count + 1);

pmParnet.AddMenuItem(pmParnet.Count + 1, "输出GA图", "_GAT ");

pmParnet.AddSeparator(pmParnet.Count + 1);

pmParnet.AddMenuItem(pmParnet.Count + 1, "导出BOM清单", "_EBOM ");

pmParnet.AddSeparator(pmParnet.Count + 1);

pmParnet.AddMenuItem(pmParnet.Count + 1, "镜像和改属性", "cusmirror ");

//将创建的菜单加入到CAD的菜单中
pmParnet.InsertInMenuBar(countmenubar + 1);
ed.WriteMessage("3DTool工具条生成完成!");
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}

}
-----------------------------------
©著作权归作者所有:来自51CTO博客作者CAD开发_李盼的原创作品,请联系作者获取转载授权,否则将追究法律责任
C# 开发cad 添加菜单栏下拉子菜单
https://blog.51cto.com/u_15825922/7022037

标签:Count,pmParnet,ZWCAD,MenuGroups,DLL,Item,AddMenuItem,app,加载
From: https://www.cnblogs.com/PLM-Teamcenter/p/17721514.html

相关文章

  • window和linux下有关xxx.dll和xxx.so动态库,可执行文件运行时的动态库检索路径文档
    没想到详细的内容都在库和命令的man手册中。ld.so动态库手册里有描述ELF可执行文件在运行时,都会在哪几个位置检索动态库。如果共享对象依赖项不包含斜杠,则它按以下顺序搜索:(1)使用二进制文件的DT_RPATH动态节属性中指定的目录(如果存在且DT_RUNPATH属性不存在)。不推荐......
  • Cygwin 编译的动态库文件.dll.a
    前提Cygwin编译OpenSSL出来的有两种文件:libcrypto.a和libcrypto.dll.a,VS编译调用没有问题,运行卡住,暂时未解决测试代码#include<openssl/evp.h>intmain(intargc,char*argv[]){ EVP_MD_CTX*mdctx; mdctx=EVP_MD_CTX_new(); EVP_MD_CTX_init(mdctx); EVP_DigestInit(m......
  • Win32编程之通过SetWindowsHookEx注入DLL(十六)
    一、SetWindowsHookEx函数SetWindowsHookEx是用于在Windows操作系统中设置全局或本地的钩子(hook)。钩子是一种用于监视并拦截特定事件或消息的机制,通常用于拦截和处理键盘输入、鼠标操作、窗口消息等。SetWindowsHookEx允许你安装一个全局或本地的钩子过程,以便在事件发生时执行......
  • BootstrapBlazor.Splitting 加载动画组件
    BootstrapBlazor.Splitting加载动画组件介绍本Blazor组件依赖于BootstrapBlazor组件库开发,底层由Splitting.js和gsap.js实现。使用该组件库之前需要先安装BootstrapBlazor.Splitting组件独立包。可以通过nuget命令行安装NuGet\Install-PackageBootstrapBlazor.Splitting-V......
  • win10操作系统动态链接库DLL文件搜索路径
    搜索可执行文件(xx.exe)同级目录下的其它DLL文件(不会搜索子文件夹)32位程序C:\Windows\System32操作系统当前用户或者系统用户Path环境变量中直接包含的文件夹(子文件夹中的DLL同样无法被搜索到,不是递归搜索)在终端执行D:\code>C:\Users\XXX\Desktop\新建文件夹\bb.......
  • Java中获取类加载路径和项目根路径
    publicclassTest{publicstaticvoidmain(String[]args){//LIVETEMPLATEpsvm+Tab键soutTesttest=newTest();try{test.showURL();}catch(Exceptione){e.printStackTrace();}......
  • Win32编程之函数转发注入DLL(十五)
    一、创建目标DLL文件DLL名称:targetdll.dll头文件(targetdll.h):#pragmaonce__declspec(dllexport)void__stdcallhello();__declspec(dllexport)int__stdcalladd(inta,intb);源文件(targetdll.cpp)#include<stdio.h>#include"targetdll.h"void_......
  • 【HarmonyOS】一文教你如何通过内存图片方式使用image组件加载网络图片资源
    【关键字】内存图片方式、image组件、网络图片资源、api6、服务卡片1、写在前面之前写过一篇元服务卡片的开发指导,有需求的可以参考以下文章:【HarmonyOS】低代码开发之FA卡片开发流程在2.6初始化卡片部分,我们实现了加载网络资源的图片,但是直接使用image组件加载网络资源似乎在新版......
  • 【HarmonyOS】一文教你如何通过内存图片方式使用image组件加载网络图片资源
    ​【关键字】内存图片方式、image组件、网络图片资源、api6、服务卡片 1、写在前面之前写过一篇元服务卡片的开发指导,有需求的可以参考以下文章:【HarmonyOS】低代码开发之FA卡片开发流程在2.6初始化卡片部分,我们实现了加载网络资源的图片,但是直接使用image组件加载网络资......
  • Vue组件懒加载
    在当今快节奏的数字世界中,网站性能对于吸引用户和取得成功至关重要。然而,对于像首页这样的页面,在不影响功能的前提下优化性能就成了一项挑战。这就是Vue组件懒加载的用武之地。通过将非必要元素的加载推迟到可见时进行,开发人员可以增强用户体验,同时确保登陆页面的快速加载。懒......