h5 技术做健康类网站,网站建设要注意那些问题,贵州省住房城乡建设网站,seo快速排名点击本文由网友蓝创精英团队投稿#xff0c;欢迎转载、分享原文作者#xff1a;蓝创精英团队原文链接#xff1a;https://blog.csdn.net/i2blue/article/details/125040323其实#xff0c;PAD#xff0c;现在官方文档还没有对外组件式或者插件式开发接口。但是#xff0c;有一… 本文由网友蓝创精英团队投稿欢迎转载、分享原文作者蓝创精英团队原文链接https://blog.csdn.net/i2blue/article/details/125040323其实PAD现在官方文档还没有对外组件式或者插件式开发接口。但是有一些志同道合的朋友比如(潘淳)潘总大佬在RPA领域还是很牛逼的。只要有一扇门就会有一个世界现在已经有了一扇门(毕竟是.Net Framework那么研究借鉴就容易多了)。组件开发环境默认组件的位置是在当前应用下的这个目录C:\Program Files (x86)\Power Automate Desktop\custom-modules应用地址按照你自己的来。另外插件的DLL是需要DLL 代码签名了。默认采用个人签名放到系统 受信任的根证书颁发机构 即可。如果有钱可以买个代码签名。目前我这边还没别的好的方式其中签名大致分为两种一种是域名证书SSL和 代码签名它们之间是不一样的不能混用。大致目录如下:最简单的Demo准备直接按照开发流程走一遍最后再总结。新建空白解决方案默认新增一个解决方案空的解决方案新增组件库组件DLL名要满足以下 规则?*.Modules.?*.dll,
Modules.?*.dll而官方的组件包是这样子的Microsoft.Flow.RPA.Desktop.Modules.System.Actions.dll所以我这边也按照官方的标准走。就叫 YZG.Modules.HelloWorld.Actions注需要注意的是像 demo,test等名字可能会导致识别不出来的问题所以建议起一些特殊的名字。打招呼组件项目默认方案从打招呼开始引用开发DLL包然后引用安装目录 C:\Program Files (x86)\Power Automate Desktop下的这几个DLL包Microsoft.Flow.RPA.Desktop.Modules.SDK.dllMicrosoft.Flow.RPA.Desktop.Modules.SDK.Extended.dll当然如果你用的过程中提示需要哪个包你也可以引入进来。引入完效果如下增加打招呼逻辑以下就是全部逻辑代码[Action(Id SayHello)]
[Icon(Code EFF7)]
[Throws(MyError)]
public class SayHello : ActionBase
{[InputArgument]public string UserName { get; set; } [OutputArgument]public string Result { get; set; }public override void Execute(ActionContext context){try{this.Result ${UserName} 你好中国欢迎你 -{DateTime.Now};}catch (ActionException ex){throw new ActionException(MyError, ex.Message, ex.InnerException);}}
}增加国际化支持也不用增加外语直接增加中文支持就可以了首先我们增加一个中文的资源文件(另外可以参考官网路径下的语言包来看内部结构分析)下图帧数大于300重新录制部分有兴趣查看原文看完整gif)组件显示大致规则组件的名字从哪里来是从程序集信息里的AssemblyTitle来的这个名字默认是英文但是也可以汉化的。另外这个名字最好和组件Action的名字不一致。这样显示会方便点组件内容的显示大致规则通过对 组件名 或者 类型 以及 类属性 分割。增加_FriendlyName_Description_Summary其中 FriendlyName 就是各种组件的主名称Description就是提示语相当于Summary就是关键信息作用还是很明显的内部使用了模板引擎变量 属性名大写 来动态显示一些信息。大体示例如下:Close_Connection_Description 新 SQL 连接的句柄
Close_Connection_FriendlyName SQL 连接
Close_Description 关闭与数据库的开放连接
Close_FriendlyName 关闭 SQL 连接
Close_Summary 关闭 SQL 连接 CONNECTION
ConnectAndExecute_Description 连接到数据库并执行 SQL 语句
ConnectAndExecute_Summary if(RESULT)\r\n执行 SQL 语句 STATEMENT 并将查询结果存储到 RESULT 中else\r\n执行 SQL 语句 STATEMENTendif
Connect_ConnectionString_Description 用于连接到数据库的连接字符串
Connect_ConnectionString_FriendlyName 连接字符串
Connect_Connection_Description 新 SQL 连接的句柄
Connect_Connection_FriendlyName SQL 连接
Connect_Description 打开与数据库的新连接
Connect_FriendlyName 打开 SQL 连接
Connect_Summary if(CONNECTION)\r\n打开 SQL 连接 CONNECTIONSTRING 并将其存储到 CONNECTION 中else\r\n打开 SQL 连接 CONNECTIONSTRINGendif
Database_Description 连接到数据库并执行 SQL 语句
Database_FriendlyName 数据库
ErrorMessage_CannotConnect 无法连接到数据源
ErrorMessage_CannotConnectError 无法连接到数据源 {0}
ErrorMessage_InvalidConnectionString 连接字符串无效
ErrorMessage_StatementError SQL 语句中的错误 {0}
ErrorMessage_UniniatializedConnection SQL 连接未初始化。请仔细检查是否已指定正确的 SQL 连接且该连接在“打开 SQL 连接”之后(而不是在已关闭该连接之后)使用
Error_ConnectToDataSourceError_Description 指示连接到数据源时出现问题
Error_ConnectToDataSourceError_FriendlyName 无法连接到数据源
Error_InvalidConnectionStringError_Description 指示指定的连接字符串无效
Error_InvalidConnectionStringError_FriendlyName 连接字符串无效
Error_SqlStatementError_Description 指示给定的 SQL 语句中存在错误
Error_SqlStatementError_FriendlyName SQL 语句中的错误
ExecuteSqlStatement_ConnectionString_Description 用于连接到数据库的连接字符串
ExecuteSqlStatement_ConnectionString_FriendlyName 连接字符串
ExecuteSqlStatement_Connection_Description 新 SQL 连接的句柄
ExecuteSqlStatement_Connection_FriendlyName SQL 连接
ExecuteSqlStatement_Description 连接到数据库并执行 SQL 语句
ExecuteSqlStatement_FriendlyName 执行 SQL 语句
ExecuteSqlStatement_GetConnection_Description 指定是从给定连接字符串创建新连接还是选择已打开的连接
ExecuteSqlStatement_GetConnection_FriendlyName 获取连接的方式
ExecuteSqlStatement_Result_Description 来自数据库的结果采用数据表的形式包含行和列
ExecuteSqlStatement_Result_FriendlyName 查询结果
ExecuteSqlStatement_Statement_Description 要对数据库执行的 SQL 语句
ExecuteSqlStatement_Statement_FriendlyName SQL 语句
ExecuteSqlStatement_Timeout_Description 等待来自数据库的结果的最长时间
ExecuteSqlStatement_Timeout_FriendlyName 超时
Execute_Description 连接到数据库并执行 SQL 语句
Execute_Summary if(RESULT)\r\n对 CONNECTION 执行 SQL 语句 STATEMENT 并将查询结果存储到 RESULT 中else\r\n对 CONNECTION 执行 SQL 语句 STATEMENTendif
GetSQLConnectionBy_ConnectionString_FriendlyName 连接字符串
GetSQLConnectionBy_SQLConnectionVariable_FriendlyName SQL 连接变量
Message_SqlConnection SQL 连接
SqlConnectionHandle_FriendlyName SQL 连接
SqlConnectionHandle_FriendlyNamePlural SQL 连接参考如上信息接下来我们对打招呼程序进行中文内容填充。实际中文内容我这边增加了这些内容增加组件项目签名有钱的自己搞代码签名证书没钱的按照我这个临时自发证书先来。创建临时证书来创建一个新的签名(记得VS要管理员模式就是以管理员方式启动)然后就创建了一个签名pfx文件给组件DLL签名这个时候我们要用这个工具signtool.exe进行签名只要安装了vs就会自带。当然我也会提供出来。一个签名的bat脚本默认签名密码为 123456基本只需要这两个程序集进行签名其他的引用的nuget库是不需要的。主要是YZG.Modules.HelloWorld.Actions.dll和zh-Hans\YZG.Modules.HelloWorld.Actions.resources.dll放到签名的地方双击bat进行签名这样就签名成功了。另外在DLL上右键是能看到签名信息的。目标机器上安装证书如果你的证书是掏钱买的自然就不用安装了。直接被认可的。否则还是要安装证书的。安装证书非常的简单直接双击输入密码然后选择指定的位置即可。直接下一步下一步选择受信任的根证书颁发机构然后完成是否导入是确定即可。输入CMD命令( certmgr.msc ) 就可以看到指定分组下就有你的证书了。至此证书安装完毕。组件部署前提应用服务要退出要不然DLL会被占用。然后把签名后的项目放入到安装目录下的指定插件目录里大致如下所示。另外我这个是C盘还有一个权限的问题。需要注意能安装到其他盘最好。然后运行 PAD应用新建一个任务流或者编辑任意一个任务流。如果出现以下问题那就是证书没有安装到目标机器安装一下就好。然后正常情况下打开PAD的设计视图会如下所示已经新增了一个功能 测试案例 - 打招呼 并新增了一个功能。我们试一下保存后如下所示最后可以看下实际的动作效果很不错的说(原图超过300帧微信限制重新录制了部分有兴趣请看原文)。问题处理第一中文不显示的问题建议增加中文语言包里面的名字要跟代码相匹配具体可以参考示例。第二加载不出来提示错误可以根据错误提示修改或者添加缺失的引用包。第三更多细节只能多挖掘和尝试了扩展组件的参数信息我这边根据网友潘淳的总结以及自己的总结也输出一个这样的文档出来。ActionBase 需要的相关参数以及内置的相关类型这里也感谢潘淳大佬的总结完结完结撒花写这个还真不容易特别是PAD识别你的组件的时候会有各种各样的问题。这个时候就要重试好多遍好多遍。不过还好我已经基于这个能扩展的组件写了一个Sqlite的组件。也会发到示例了。供大佬们参考。引用https://github.com/kesshei/PADDemo