自定義庫模塊增加自定義許可操作詳細方法

自定義庫模塊增加自定義許可操作詳細方法

用到的工具:
在這里插入圖片描述
后面程序用到的所有代碼均是該工具生成的秘密!!!!

【切記切記!!! 一定要記住密碼,不然如果你想將庫的許可認證移除,則無法無法實現】

關鍵字認識:

1、setRequiredLicense

setRequiredLicense【設置庫記載時檢查秘鑰,如果秘鑰錯誤或版本錯誤或時間過期均無法加載秘鑰】
案例演示:

--策略功能說明:
--配置庫秘鑰檢查【如果秘鑰不對則直接加載失敗】
-------------------------------------------------------------------------------------Called By :--Calls  :--Author:Yechaocheng--CreateDate  : 2025/05/17 10:20:35.3210
-------------------------------------------------------------------------------------History:--2025/05/17  KM  SimTalk 2.0
-----------------------------------------------------------------------------------
-->USER CODE BEGIN
-----------------------------------------------------------------------------------
RootFolder.setRequiredLicense("AHRF_KEYGEN","1.0.0","18D77674-23E1-4329-B470-F58E8DC59B17","","安徽銳鋒科技秘鑰管理:提醒您請聯系您的服務商獲取許可證!請從(文件 > 首選項 > 許可證下單擊查詢主機 ID)獲取HostID 并提供給服務商!")
-----------------------------------------------------------------------------------
-->USER CODE End
-----------------------------------------------------------------------------------

官方說明:
setRequiredLicense [SimTalk]
語法

.setRequiredLicense(Feature:string, Version:string, Password:string[, FreeInLicense:string, Comment:string, PreviousPasswordForUpdate:string])
描述

方法 setRequiredLicense 用于告知 指定的庫文件夾請求用戶定義的許可證。

加載包含此類庫的仿真模型或對象時,Plant Simulation 會在 Windows 注冊表中查找相應的用戶定義許可證。如果未找到具有指定功能名稱的有效許可證,Plant Simulation 無法分別加載仿真模型或對象。

僅當版本高于或等于請求的版本、許可證的主機 ID 與計算機的主機 ID 匹配、未超過許可證的有效日期以及已注冊許可證的密碼與所請求許可證的密碼匹配時,注冊的許可證才有效。

可使用用戶定義許可證限制仿真模型和對象(包括庫)的傳遞。

要限制仿真模型的傳遞,調用 basis.setRequiredLicense,然后保存模型。

要限制庫的傳遞,針對庫文件夾調用 setRequiredLicense,然后保存庫。

更新需要用戶定義庫的庫時,新版本的庫還必須請求此用戶定義許可證(即,功能相同),請求的版本號必須至少與舊庫一樣大,并且許可證必須使用相同的密碼進行保護。

如果要為較新版本的庫指派其他密碼,調用方法 setRequiredLicense,然后將空字符串 “” 傳遞給參數 Feature,將舊密碼傳遞給參數 Password。這將取消注冊用戶定義的許可證。然后再次調用方法 setRequiredLicense,將許可證功能的名稱傳遞到參數 Feature,將新密碼傳遞到參數 Password,將舊密碼傳遞到參數 PreviousPasswordForUpdate。庫不僅可根據上述規則更新使用新密碼的庫版本,還可以更新使用舊密碼的任何庫版本,即使許可證功能的名稱更改或新版本號低于舊庫的版本號也是如此。

參數

數據類型為 string 的 Feature 參數用于指定許可證功能的名稱。傳遞空字符串 “” 時,將移除現有許可證,前提是輸入了正確的密碼。

數據類型為 string 的 Version 參數用于指定許可證的版本號。注:已注冊版本必須大于或等于請求的許可證。

例如,如果已注冊功能的版本 10,可以請求版本 9.5.0,反之不行。

數據類型為 string 的 Password 參數用于指定密碼。已注冊許可證的密碼必須與此密碼一致,才會將已注冊的許可證視為有效。

數據類型為 string 的可選參數 FreeInLicense 用于設置當 Plant Simulation 使用請求的許可證類型或值較低的許可證類型時,不請求用戶定義的許可證。可以輸入 “Application”、“Runtime”、“Simulation”、“” 或 “-”。

值的含義如下:

“-”:許可證永不免費,即使在查看器許可證中也如此。

“”:許可證僅在查看器許可證中免費。這是不輸入參數時的默認設置。

“Simulation”:許可證在仿真和較低的查看器許可證中免費。

“Runtime”::許可證在運行時許可證和較低的許可證類型(即仿真和查看器)中免費。

“Application”:許可證在應用許可證和較低的許可證類型(即運行時、仿真和查看器)中免費。

“Educational”:許可證在教育許可證和較低的許可證類型(即運行時、仿真和查看器)中免費。

數據類型為 string 的可選參數 Comment 用于設置將附加到消息的文本,如果在加載對象或模型時不存在許可證,該文本會在消息窗口中顯示。這僅在輸入任何文本時適用。

數據類型為 string 的可選參數 PreviousPasswordForUpdate 用于指定更新庫的先前密碼。

可以使用 SimTalk 函數 createLicenseFile 生成用戶定義許可證。

示例

.Standard.MyLibrary.setRequiredLicense(“MyFeature”, “9.5.7”, “MySecretPassword123”)

2、checkForLicense

checkForLicense【秘鑰有效性檢查】

案例演示:

--策略功能說明:
--本程序用于自定義程序進行秘鑰檢查,一般只需要初始化的時候調用一次即可
-------------------------------------------------------------------------------------Called By :--Calls  :--Author:Yechaocheng--CreateDate  : 2025/05/17 10:13:34.6020
-------------------------------------------------------------------------------------History:--2025/05/17  KM  SimTalk 2.0
-----------------------------------------------------------------------------------
-->USER CODE BEGIN
-----------------------------------------------------------------------------------
param KeyName:string:="AHRF_KEYGEN",keyPwd:string:="18D77674-23E1-4329-B470-F58E8DC59B17"->boolean
var InPUTValue:string:=computeSHA1Hash(keyPwd)
var CheckValue:integer:=checkForLicense(KeyName, "1", InPUTValue)
if CheckValue=0return true//0:許可證功能已注冊且有效。
end
var Err:string
switch CheckValue
case 1Err:="許可證功能未注冊!"
case 2Err:="文件具有無效的注冊表數據格式!"
case 3Err:="SHA-1 哈希錯誤!"
case 4Err:="主機 ID 錯誤!"
case 5Err:="功能的注冊版本太舊!"
case 6Err:="許可證已過期!"
case 7Err:="此功能不允許與 Plant Simulation 許可證類型 (Professional / Standard / Runtime /...) 一同使用!"
elseErr:="未知錯誤!"
end
messageBox(to_str("|安琥銳鋒科技提醒您:|",Err),0,1)
return false
--closemodel //強制關閉當前模型
-----------------------------------------------------------------------------------
-->USER CODE End
-----------------------------------------------------------------------------------

完整功能代碼代碼如下:

--策略功能說明:-------------------------------------------------------------------------------------Called By :--Calls  :--Author:Yechaocheng--CreateDate  : 2025/05/17 10:13:34.6020
-------------------------------------------------------------------------------------History:--2025/05/17  KM  SimTalk 2.0
-----------------------------------------------------------------------------------
-->USER CODE BEGIN
-----------------------------------------------------------------------------------
->boolean
//哈希轉換
var InPUTValue:string:=computeSHA1Hash("585E4D1C-9E64-415F-A83B-E4E0FBABBB6C")
//秘鑰驗證
var CheckValue:integer:=checkForLicense("MyFeature", "1", InPUTValue)
if CheckValue=0return true//0:許可證功能已注冊且有效。
end
var Err:string
switch CheckValue
case 1Err:="許可證功能未注冊!"
case 2Err:="文件具有無效的注冊表數據格式!"
case 3Err:="SHA-1 哈希錯誤!"
case 4Err:="主機 ID 錯誤!"
case 5Err:="功能的注冊版本太舊!"
case 6Err:="許可證已過期!"
case 7Err:="此功能不允許與 Plant Simulation 許可證類型 (Professional / Standard / Runtime /...) 一同使用!"
elseErr:="未知錯誤!"
end
messageBox(to_str("|安琥銳鋒科技提醒您:|",Err),0,1)
return false
--closemodel //強制關閉當前模型
-----------------------------------------------------------------------------------
-->USER CODE End
-----------------------------------------------------------------------------------

官方說明:
checkForLicense [SimTalk]
語法

checkForLicense(Feature:string, Version:string, PasswordHash:string) → integer
描述

checkForLicense 函數檢查用戶定義的許可證是否可用。

參數

數據類型為 string 的 Feature 參數用于指定許可證功能的名稱。

字符串數據類型的版本參數指定所請求許可證的版本號。

字符串數據類型的密碼哈希參數指定許可證密碼的 SHA-1 哈希。

返回值的數據類型

返回值的數據類型為整數。

各個值的含義如下:

0:許可證功能已注冊且有效。

1:許可證功能未注冊。

2:文件具有無效的注冊表數據格式。

3:SHA-1 哈希錯誤。

4:主機 ID 錯誤。

5:功能的注冊版本太舊。

6:許可證已過期。

7:此功能不允許與 Plant Simulation 許可證類型 (Professional / Standard / Runtime /…) 一同使用。

示例

if checkForLicense(“MyFeature”, “1”, “686483805ac47ca14e03514f7481a7973b401762”) = 0
// The license is available, you can proceed …
else
closeModel
messageBox(“The license ‘MyFeature’ is unavailable. The model was closed.\n”, 1, 1)
end

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83458.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83458.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83458.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python的漫畫網站管理系統

目錄 技術棧介紹具體實現截圖![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/0ed2084038144499a162b3fb731a5f37.png)![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/a76a091066f74a80bf7ac1be489ae8a8.png)系統設計研究方法:設計步驟設計流程核…

Python循環性腳本實踐要點:打造穩定高效的定時任務

在Python開發中,循環性腳本(長時間運行并定期執行任務的腳本)非常常見,比如監控系統、數據采集程序、定時清理任務等。這類腳本雖然看似簡單,但實際開發中容易遇到各種陷阱。本文將分享六大核心實踐要點,幫…

編程基礎:什么是變量

文章目錄 變量:雙要素變量必須代表一個意義:編程不需要無意義的變量。只要是變量,都需要有一個意義。變量必須要有不同的值:編程不需要只有一個值的變量。只要是變量,都需要有不同的值。 雙要素少一個都不是變量即看見…

利用SenseGlove觸覺手套開發XR手術訓練體驗

VirtualiSurg和VR觸覺 作為領先的培訓平臺,VirtualiSurg自2017年以來一直利用擴展現實 (XR) 和觸覺技術,為全球醫療保健行業提供個性化、數據驅動的學習解決方案。該平臺賦能醫療專業人員進行協作式學習和培訓,提升他們的技能,使…

【記錄】Windows|豎屏怎么調整分辨率使橫豎雙屏互動鼠標絲滑

本文版本:Windows11,記錄一下,我最后調整的比較舒適的分辨率是800*1280。 文章目錄 第一步 回到桌面第二步 右鍵桌面第三步 設置橫屏為主顯示器第四步 調整分辨率使之符合你的需求第五步 勾選輕松在顯示器之間移動光標第六步 拖動屏幕符合物理…

手機打電話時如何將通話對方的聲音在手機上識別成文字

手機打電話時如何將通話對方的聲音在手機上識別成文字 --本地AI電話機器人 上一篇:手機打電話時由對方DTMF響應切換多級IVR語音應答(一) 下一篇:手機打電話時由對方DTMF響應切換多級IVR語音應答(二) 一、…

uniapp-商城-61-后臺 新增商品(添加商品到數據庫)

完成商品的布局&#xff0c;完成商品的屬性添加&#xff0c;最后的目的還是要完成數據添加&#xff0c;將我們前臺的數據添加后臺的數據庫。 1、界面 2、點擊提交完成商品添加 點擊下方的提交按鈕&#xff0c;將數據添加到數據庫。 onSubmit 使用該函數---見3 <view cla…

A級、B級弱電機房數據中心建設運營匯報方案

該方案圍繞A 級、B 級弱電機房數據中心建設與運營展開,依據《數據中心設計規范》等標準,施工范圍涵蓋 10 類機房及配套設施,采用專業化施工團隊與物資調配體系,強調標簽規范、線纜隱藏等細節管理。運營階段建立三方協同運維模式,針對三級故障制定30 分鐘至 1 小時響應機制…

RAG數據處理:PDF/HTML

RAG而言用戶輸入的數據通常是各種各樣文檔&#xff0c;本文主要采用langchain實現PDF/HTML文檔的處理方法 PDF文檔解析 PDF文檔很常見格式&#xff0c;但內部結構常常較復雜&#xff1a; 復雜的版式布局多樣的元素&#xff08;段落、表格、公式、圖片等&#xff09;文本流無…

時源芯微| KY鍵盤接口靜電浪涌防護方案

KY鍵盤接口靜電浪涌防護方案通過集成ESD保護元件、電阻和連接鍵&#xff0c;形成了一道有效的防護屏障。當鍵盤接口受到靜電放電或其他浪涌沖擊時&#xff0c;該方案能夠迅速將過電壓和過電流引導至地&#xff0c;從而保護后續電路免受損害。 ESD保護元件是方案中的核心部分&a…

Java 原生網絡編程(BIO | NIO | Reactor 模式)

1、基本常識 Socket 是應用層與 TCP/IP 協議族通信的中間軟件抽象層&#xff0c;是一組接口&#xff0c;使用了門面模式對應用層隱藏了傳輸層以下的實現細節。TCP 用主機的 IP 地址加上主機端口號作為 TCP 連接的端點&#xff0c;該端點叫做套接字 Socket。 比如三次握手&…

OpenCV透視變換

概念 OpenCV 透視變換是將圖像從一個視平面投影到另一個視平面的過程&#xff0c;也叫投影映射 &#xff0c;屬于空間立體三維變換。它基于透視原理&#xff0c;通過 33 的變換矩陣作用于圖像像素坐標來實現映射轉換 &#xff0c;能模擬人眼或相機鏡頭觀看三維空間物體時的透視…

STM32F103定時器1每毫秒中斷一次

定時器溢出中斷&#xff0c;在程序設計中經常用到。在使用TIM1和TIM8溢出中斷時&#xff0c;需要注意“TIM_TimeBaseStructure.TIM_RepetitionCounter0;”&#xff0c;它表示溢出一次&#xff0c;并可以設置中斷標志位。 TIM1_Interrupt_Initializtion(1000,72); //當arr1…

數據庫——SQL約束窗口函數介紹

4.SQL約束介紹 &#xff08;1&#xff09;主鍵約束 A、基本內容 基本內容 p r i m a r y primary primary k e y key key約束唯一表示數據庫中的每條記錄主鍵必須包含唯一的值&#xff08;UNIQUE&#xff09;主鍵不能包含NULL值&#xff08;NOT NULL&#xff09;每個表都應…

【typenum】 8 常量文件(consts.rs)

一、源碼 這段代碼通過類型級編程&#xff08;type-level programming&#xff09;在編譯期實現數值計算。以下是常量定義部分&#xff1a; // THIS IS GENERATED CODE #![allow(missing_docs)] use crate::int::{NInt, PInt}; /** Type aliases for many constants.This fil…

第8講、Multi-Head Attention 的核心機制與實現細節

&#x1f914; 為什么要有 Multi-Head Attention&#xff1f; 單個 Attention 機制雖然可以捕捉句子中不同詞之間的關系&#xff0c;但它只能關注一種角度或模式。 Multi-Head 的作用是&#xff1a; 多個頭 多個視角同時觀察序列的不同關系。 例如&#xff1a; 一個頭可能專…

百度智能云千帆攜手聯想,共創MCP生態宇宙

5月7日&#xff0c;2025聯想創新科技大會&#xff08;Tech World&#xff09;在上海世博中心舉行&#xff0c;本屆大會以“讓AI成為創新生產力”為主題。會上&#xff0c;聯想集團董事長兼CEO楊元慶展示了包括覆蓋全場景的超級智能體矩陣&#xff0c;包括個人超級智能體、企業超…

【OpenCV】幀差法、級聯分類器、透視變換

一、幀差法&#xff08;移動目標識別&#xff09;&#xff1a; 好處&#xff1a;開銷小&#xff0c;不怎么消耗CPU的算力&#xff0c;對硬件要求不高&#xff0c;但只適合固定攝像頭 1、優點 計算效率高&#xff0c;硬件要求 響應速度快&#xff0c;實時性強 直接利用連續幀…

數據庫遷移的藝術:團隊協作中的沖突預防與解決之道

title: 數據庫遷移的藝術:團隊協作中的沖突預防與解決之道 date: 2025/05/17 00:13:50 updated: 2025/05/17 00:13:50 author: cmdragon excerpt: 在團隊協作中,數據庫遷移腳本沖突是常見問題。通過Alembic工具,可以有效地管理和解決這些沖突。沖突預防的四原則包括功能分…

Linux常用命令43——bunzip2解壓縮bz2文件

在使用Linux或macOS日常開發中&#xff0c;熟悉一些基本的命令有助于提高工作效率&#xff0c;bunzip2可解壓縮.bz2格式的壓縮文件。bunzip2實際上是bzip2的符號連接&#xff0c;執行bunzip2與bzip2 -d的效果相同。本篇學習記錄bunzip2命令的基本使用。 首先查看幫助文檔&#…