参考资料 Creation of .NET Controls 109759944_Prepare.NetControls_DOC_en.pdf

插件的编写

  1. 创建插件项目,选择Windows窗体控件库(.NET Framework)

  2. 框架选择 4.5.2以上版本

  3. 为程序集签名

    1. 在项目上右键点击属性.
    2. 切换到签名选项卡.
    3. 勾选为程序集签名,并创建签名密钥.

  4. 可选:为控件添加属性

    在控件代码中增加属性代码

            private bool mvalue;//私有变量
    //Category 表示属性所在的分类 Data表示在数据类中
    //Description 表示在属性页中显示的描述
    //Browsable 表示是否在属性页中显示, 不增加默认为true
    //DefaultValue 默认值,不填为空
    [Category("Data")]
    [Description("这是一个变量")]
    [Browsable(true)]
    [DefaultValue(true)]
    public bool MValue
    {
    get { return mvalue; }
    set { mvalue = value; }
    }

  5. 可选:为控件添加事件

    1. 创建自定义委托(可选)

              //委托
      public delegate void MyChangeEventHandler();
    2. 添加自定义事件

              [Browsable(true)]//是否显示,不添加为true,为false为隐藏
      [Category("Action")]//事件分类
      [Description("Invoked when user clicks button")]//描述
      public event EventHandler ButtonClick;//此处 Eventhandle 可以改为自定义委托 MyChangeEventHandler
    3. 内部触发事件

              protected void Button1_Click(object sender, EventArgs e)
      {
      //检查事件列表是否为空
      if (this.ButtonClick != null)
      this.ButtonClick(this, e);
      }

  6. 生成插件

    点击生成下的生成来生成插件,在bin目录中找到生成的插件dll

插件的使用

  1. 全局注册
  1. 全局注册的程序 ,在生成时必须选anyCpu 如果,如果不是AnyCpu生成如(X86,X64)只能通过手工加载的方式

  2. 全局注册需要安装.net 4 SDK 下载:https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net48-developer-pack-offline-installer

  3. 以管理员身份运行CMD,跳转到 SDK工具目录

    cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools"

  4. 使用命令 全局注册插件dll

    #"gacutil.exe /l" 查看所有注册成功的组件
    #"gacutil.exe /l 程序集名称" 查看指定程序集注册状态
    #"gacutil.exe /u 程序集名称" 卸载已注册的程序集
    #cmd下执行
    gacutil.exe /i 插件路径
    #powershell下执行
    ./gacutil.exe /i
    #插件的路径 最好带双引号,不要使用中文路径

  1. 手动注册

手动注册直接在插件中选择 程序集dll文件即可,如果运行出现错误,可将Dll文件放到运行程序根目录下再次手工选择 注册

WinCC插件制作教程的更多相关文章

  1. WordPress插件制作教程(八): 最后总结

    WordPress插件教程最后一篇,还是为大家简单的做下总结.这次插件制作教程讲的内容和知识点个人觉得不是很多,因为插件制作不单单是这些内容,它涉及的知识很多很多,不是说你会一些函数就可以做出一个好的 ...

  2. WordPress插件制作教程(一): 如何创建一个插件

    上一篇还是按照之前的教程流程,写了一篇WordPress插件制作教程概述,从这一篇开始就为大家具体讲解WordPress插件制作的内容.这一篇主要说一下插件的创建方法. 相信大家都知道插件的安装文件在 ...

  3. WordPress插件制作教程概述

    接下来的一段时间里,开始为大家讲解WordPress插件制作系列教程,这篇主要是对WordPress插件的一些介绍和说明,还有一些我们需要注意的地方,以及需要掌握的知识. WordPress插件允许你 ...

  4. 【超酷超实用】CSS3可滑动跳转的分页插件制作教程

    原文:[超酷超实用]CSS3可滑动跳转的分页插件制作教程 今天我要向大家分享一款很特别的CSS3分页插件,这款分页插件不仅可以点击分页按钮来实现分页,而且可以滑动滑杆来实现任意页面的跳转,看看都非常酷 ...

  5. qlikview 扩展插件制作教程-EchartsGeoMap

    效果图   显示效果和echarts官方demo一样,运行速度尚可. 第一次写博客,排版很渣以后慢慢改进. 基础知识 以EchartsGeoMap为例,讲一下怎么制作一个基础的QlikView Ext ...

  6. WordPress插件制作教程(六): 插件函数之动作(Actions)函数

    这一篇为大家说一下WordPress插件函数吧,要制作插件,了解这些函数是非常有必要的 WordPress插件函数分为“动作”(Actions)和过滤器”(Filters),WordPress 使用这 ...

  7. WordPress插件制作教程(三): 添加菜单的方法

    上一篇编写了一个简单的插件,让大家对插件的简单制作有个了解,这一篇我们在更深一步,当我们激活插件后后台会显示菜单出来,然后通过单击菜单显示自己定义好的信息.激活之后会在WordPress后台显示一个菜 ...

  8. WordPress插件制作教程(二): 编写一个简单的插件

    上一篇说到了如何创建一个插件,我想大家看了之后一定会有所收获,这一篇简单给大家写一个插件样例,让大家有一个基本的印象.这个插件的样例就是当你激活这个插件后会在你的每篇文章中插入一段自己定义好的内容,比 ...

  9. WordPress插件制作教程(七): 插件函数之过滤器(Filter)函数

    上一篇对插件函数之动作(Action)函数做了下介绍,这篇在介绍下过滤器(Filters). 过滤器是一类函数,WordPress执行传递和处理数据的过程中,在针对这些数据做出某些动作之前的特定运行( ...

  10. WordPress插件制作教程(五): 创建新的数据表

    上一篇讲解了怎样将数据保存到数据库,今天为大家讲解创建新的数据表,也就是说当我们激活插件的时候,会在该数据库下面创建一个新的数据表出来.原理很简单,激活插件的时候运行创建数据库的代码.看下面代码: & ...

随机推荐

  1. 谷歌是如何改进 GKE、Cloud Run 的 gVisor 文件系统性能的?

    灵活的应用程序架构.CI/CD 管道和容器工作负载通常运行不受信任的代码,因此应该与敏感的基础设施隔离.一种常见的解决方案是部署纵深防御产品(如使用gVisor的GKE Sandbox)以通过额外的保 ...

  2. kubernetes:v1.25 + containerd

    由于kubernets从v1.24开始停止支持dockershim,kubernets不再支持通过docker来创建和管理容器.本文记录安装kubernetes v1.25 + containerd ...

  3. jQuery 中 remove删除了某个div 再添加回来

    用下面的例子吧删除之前先保存dom<div id="div1"><div id="div2"></div></div& ...

  4. 浏览器打开微信小程序

    function h5() { $wx = new Wx('appId', 'appSecret'); // \dump($wx->getAccessToken()); $url = 'http ...

  5. win10 校验MD5值

    CertUtil -hashfile C:\xxxxx\xxx.xxx MD5   // C:\xxxxx\xxx.xxx为文件路径

  6. Json数组形式的字符串转为Map数组、Map集合的几种遍历方式

    // Json数组形式的字符串转为Map数组 String strArr = "[{"name": "xx", "age": &q ...

  7. torch& tensorflow

    #torchimport torch import torch.nn as nn import torch.nn.functional as F class Net(nn.Module): def _ ...

  8. 一些开源软件的LOGO

    整理一些开源软件的logo或者吉祥物,主要是一些以动物形象为主的logo. 1. GNU,不是一个软件,而是一个软件组织,包括很多知名的软件例如GCC编译器. GNU的LOGO是一只牛. GCC的lo ...

  9. go组合

    package main import "fmt" func main() { aa := []string{"a", "b", " ...

  10. https原理(五)双向实践(https代理)

    本文为了证明: 1 双向可以通过直接转发tcp的中间人代理网关 2 双向可以防止明文中间人 开始.(服务端need,使用myhost.com-pub-capub.jks,myhost.com-pub- ...