wincc登录与注销修改当前用户的密码.docx
- 文档编号:13764912
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:15
- 大小:340.61KB
wincc登录与注销修改当前用户的密码.docx
《wincc登录与注销修改当前用户的密码.docx》由会员分享,可在线阅读,更多相关《wincc登录与注销修改当前用户的密码.docx(15页珍藏版)》请在冰点文库上搜索。
wincc登录与注销修改当前用户的密码
调用用户管理的C脚本:
(没试)
#include"apdefap.h"
voidOnClick(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
SSMProgramStart(lpszPictureName,lpszObjectName,"Passcs.exe");
}
在按钮上用ProgramExecute("Passcs.exe")脚本可以执行用户管理程序
登陆和注销,做个登陆的画面,放2个按钮,写脚本:
由函数PWRTLogin()来执行登录。
#pragmacode("USEADMIN.DLL")
#include"PWRT_API.H"
#pragmacode()
PWRTLogin('1');
由函数PWRTLogout()来实现注销。
#pragmacode("USEADMIN.DLL")
#include"PWRT_API.H"
#pragmacode()
PWRTLogout();
分别用登录按钮和注销按钮实现,在按钮的事件中输入相应的代码,
登录动作(如事件Mouse-click)
#pragmacode(“useadmin.dll”)
#include“PWRT_api.h”
#pragmacode()
PWRTLogin(’c’);
-退出动作(如事件Mouse-click)
#pragmacode(“useadmin.dll”)
#include“PWRT_api.h”
#pragmacode()
PWRTLogout();
如何修改当前用户的密码,请参考(没试)
“CC_SewageDi_09_11_27_17_20_29”为自己创建的项目数据库名称;
“@CurrentUserName”用当前户名,为WinnCC自身的内部变量,文本变量16位字符集,连接一个输入输出域;
“@OldPassword”用当前用户旧密码,为需要创建的内部变量,文本变量16位字符集,连接一个输入输出域;
“@NewPassword”用当前用户新密码,为需要创建的内部变量,文本变量16位字符集,连接一个输入输出域;
“@ConfirmationPassword”用当前用户验证密码,为需要创建的内部变量,文本变量16位字符集,连接一个输入输出域;
在一个确定按钮鼠标动作中输入以下脚本
include"apdefap.h"
voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
{
#pragmacode("UseGen.dll")
#include"USEGENAP.H"
#pragmacode()
LPCMN_ERRORerr;
if(strcmp(GetTagChar("@NewPassword"),GetTagChar("@ConfirmationPassword"))==FALSE)
{
if(PWGENConnect("CC_SewageDi_09_11_27_17_20_29",err))
{
if(PWGENChangePassword(GetTagChar("@CurrentUserName"),GetTagChar("@OldPassword"),GetTagChar("@NewPassword"),err))
{
MessageBox(NULL,"密码修改成功!
","提示",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
SetTagChar("@CurrentUserName","");
SetTagChar("@OldPassword","");
SetTagChar("@NewPassword","");
SetTagChar("@ConfirmationPassword","");
}
else
{
if((strlen(GetTagChar("@NewPassword"))<=5)&&(strlen(GetTagChar("@OldPassword"))!
=0))
{
MessageBox(NULL,"您输入的新密码个数小于6,请重新输入!
","提示",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
SetTagChar("@NewPassword","");
SetTagChar("@ConfirmationPassword","");
}
else
{
MessageBox(NULL,"用户名和密码不一致,请重新输入!
","提示",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
SetTagChar("@CurrentUserName","");
SetTagChar("@OldPassword","");
}
}
}
else
{
MessageBox(NULL,"建立联接失败!
","提示",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
}
PWGENDisconnect(err);
}
else
{
MessageBox(NULL,"两次输入的新密码不一致,请重新输入!
","提示",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);
SetTagChar("@NewPassword","");
SetTagChar("@ConfirmationPassword","");
}
}
1)做个登陆的画面(成功试用)
确认登录;
#include"apdefap.h"
voidOnClick(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
#pragmacode("UseAdmin.DLL")
#include"pwrt_api.h"
#pragmacode()
charszUserName[255];
charszPassword[255];
strcpy(szUserName,GetInputValueChar(lpszPictureName,"@LoginIn"));
strcpy(szPassword,GetInputValueChar(lpszPictureName,"@PasswordIn"));
if(PWRTSilentLogin(szUserName,szPassword)==FALSE)
{
SetOperation(lpszPictureName,"@OK",FALSE);
SetOperation(lpszPictureName,"@LoginIn",FALSE);
SetOperation(lpszPictureName,"@PasswordIn",FALSE);
SetVisible(lpszPictureName,"@ERROR",TRUE);
SetVisible(lpszPictureName,"@REPEAT",TRUE);
Set_Focus(lpszPictureName,"@REPEAT");
//SetTagChar("USER",NULL);//Return-Type:
BOOL
}
else
{
inti,j,n;
charpic_name[256];
charobj_name[60];
n=strlen(lpszPictureName);
for(i=n;i>0;i--)
if(lpszPictureName[i]=='.')
{
strncpy(pic_name,lpszPictureName,i);
strcpy(obj_name,&lpszPictureName[i+1]);
for(j=0;j<(n-i);j++)
if(obj_name[j]==':
')
{
obj_name[j]='\0';
break;
}
SetVisible(pic_name,obj_name,FALSE);
break;
}
//SetTagChar("USER",GetTagChar("@CurrentUser"));//Return-Type:
BOOL
OpenPicture("MAIN.PDL");//Return-Type:
void
}
}
退出登录;
#include"apdefap.h"
voidOnClick(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
#pragmacode("UseAdmin.DLL")
#include"pwrt_api.h"
#pragmacode()
inti,j,n;
charpic_name[256];
charobj_name[60];
PWRTLogout();
n=strlen(lpszPictureName);
for(i=n;i>0;i--)
if(lpszPictureName[i]=='.')
{
strncpy(pic_name,lpszPictureName,i);
strcpy(obj_name,&lpszPictureName[i+1]);
for(j=0;j<(n-i);j++)
if(obj_name[j]==':
')
{
obj_name[j]='\0';
break;
}
SetVisible(pic_name,obj_name,FALSE);
break;
}
}
取消登录;
#include"apdefap.h"
voidOnClick(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
inti,j,n;
charpic_name[256];
charobj_name[60];
n=strlen(lpszPictureName);
for(i=n;i>0;i--)
if(lpszPictureName[i]=='.')
{
strncpy(pic_name,lpszPictureName,i);
strcpy(obj_name,&lpszPictureName[i+1]);
for(j=0;j<(n-i);j++)
if(obj_name[j]==':
')
{
obj_name[j]='\0';
break;
}
SetVisible(pic_name,obj_name,FALSE);
break;
}
}
重试登录
#include"apdefap.h"
voidOnClick(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
SetVisible(lpszPictureName,"@ERROR",FALSE);
SetOperation(lpszPictureName,"@LoginIn",TRUE);
SetOperation(lpszPictureName,"@PasswordIn",TRUE);
SetOperation(lpszPictureName,"@OK",TRUE);
Set_Focus(lpszPictureName,"@LoginIn");
SetVisible(lpszPictureName,lpszObjectName,FALSE);
}
2)退出对话框;
确定按钮
#include"apdefap.h"
voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
{
charszPassword[18];
strcpy(szPassword,GetInputValueChar(lpszPictureName,"@exitpassword"));
printf("%s",szPassword);
if(strcmp(szPassword,"654321")==0)
DeactivateRTProject();
}
取消按钮
#include"apdefap.h"
voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
{
SetTagBit("tuichu",0);
}
单击按钮时弹出提示窗口—C动作(成功试用)
C代码:
#include"apdefap.h"
voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)//头文件
{
HWNDhwnd;
hwnd=FindWindow(NULL,"WinCC-Runtime-");
if(MessageBox(hwnd,"操作成功","提示123",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL)==IDYES)
{
}
#pragmaoption(mbcs)
}
运行结果:
窗口能置顶(所有的windows窗口前面)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- wincc 登录 注销 修改 当前 用户 密码