WinCC在C脚本创建电子签名对话框

简介

C 示例显示了如何通过电子签名来保护过程控制操作,使其免受未经授权的执行。 调用“ShowDialog”函数在运行系统中打开一个对话框,通过该对话框对用户进行验证。 使输出命令与成功的验证相关联。

“ShowDialog”函数的语法

INT ShowDialog(char* lpszUserName, char* lpszDisplayedUserName, char* lpszDomainName, int intLangID, variant* vtComment);

参数

lpszUserName

用于验证用户的用户名。

lpszDisplayedUserName

在“SIMATIC Logon – 电子签名”对话框的“用户名”域中显示的用户名称。

lpszDomainName

用于验证用户的计算机的名称:
- 集中管理用户的计算机(SIMATIC Logon 服务器)的名称
- 本地计算机的名称

如果没有输入其它名称,系统会自动输入本地计算机的名称。

intLangID

对话框中所需语种的标识符:
1028 – 中文(繁体)
1031 – 德语
1033 – 英语
1034 – 西班牙语
1036 – 法语
1040 – 意大利语
1041 – 日语
1042 – 朝鲜语
2052 – 中文(简体)

vtComment

用户输入的注释。

返回值

返回值 = 1

用户成功获得验证。

返回值 = 2

用户使用“取消”按钮关闭了对话框。

返回值 = 3

用户 3 次验证均失败。

示例: 用于验证用户的对话框的输出(有强制注释)

 

#include "apdefap.h"

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)

{

 

int nRet = 0;

 

VARIANT vtComment;

 

__object* EsigDlg = __object_create("CCESigDlg.ESIG");

 

if (!EsigDlg)

 

{

printf("Failed to create Picture Object");

return;

}

 

nRet = EsigDlg->ShowDialog("winccadmin","winccadmin","SIMLOGSERV",1033 ,&vtComment);

__object_delete(EsigDlg);

 

.

.

.

.

 

}

#include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { int nRet = 0; VARIANT vtComment; __object* EsigDlg = __object_create("CCESigDlg.ESIG"); if (!EsigDlg) { printf("Failed to create Picture Object"); return; } nRet = EsigDlg->ShowDialog("winccadmin","winccadmin","SIMLOGSERV",1033 ,&vtComment); __object_delete(EsigDlg); . . . . }

结果

在运行系统中执行 C 脚本时,会显示以下对用户进行验证的对话框:

WinCC在C脚本创建电子签名对话框_第1张图片

在本示例中,强制要求输入注释。 如果未强制要求注释,就必须在函数中插入“EsigDlg->forcecomment =FALSE”。

根据传递的返回值“nret”,可对 WinCC 对象的鼠标事件设置多种不同的响应。

同时会生成记录验证或验证尝试的消息。

 
说明

通过密码来保护 C 动作,以使程序代码免受未经授权的修改以及查看。

你可能感兴趣的:(WinCC)