WINCC登录与注销修改当前用户的密码.docx
《WINCC登录与注销修改当前用户的密码.docx》由会员分享,可在线阅读,更多相关《WINCC登录与注销修改当前用户的密码.docx(14页珍藏版)》请在冰豆网上搜索。
WINCC登录与注销修改当前用户的密码
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位字符集,
连接一个输入输出域;
“@OldPasswor”d用当前用户旧密码,为需要创建的内部变量,文本变量16
位字符集,连
接一个输入输出域;
“@NewPasswo”用当前用户新密码,为需要创建的内部变量,文本变量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("@Old
Password"),G
etTagChar("@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*IpszPictureName,char*lpszObjectName,char*
IpszPropertyName)
{
#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;
}
HCEh?
*ruw「聲tws*
a匕■二Trc-口■山四上畅極
JFfl|0£Md口
融kic「川^Jlif^^i^rs・UM叮i利n・*#|Li人血如曲ig."if11K^1'ifid忙di-M
邪"!
4“皀匕丁弘:
U:
JWh」丄勺
岸,■ilih・■・•li
^FrMF'ti;□Jr:
■
irt.|fl
»*ir|!
lIII!
iii-i[^"fij
chs-'Db^na--<■'HJT
p-y—i工护q.
a<*dija^l-r-Ffiii-24lf、
■□i:
i・■:
i>Li—i
dlP^2h^LrCfJanTriij•:
<”
ci^3dpc_runtilpw^LU'rF-artJi
:
*^y-1DtLne#ir.-Ji|>:
-h>"ti^45m?
|r11:
l
『Wf:
l"-:
1(cLL™umBlIl"B"'J
[
j|i|ii倩血口y)・・yi
3皿idk
I
£曰叩土me护匸hAMa.^壬:
取消登录;
#inelude"apdefap.h"
voidOnClick(char*IpszPictureName,char*IpszObjectName,char*
IpszPropertyName)
{
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;
}
}
lirij.ii-
■_ri*rH鼻泊
atrg.ih(nniiih^SDl
重试登录
#inelude"apdefap.h"
voidOnClick(char*IpszPictureName,char*IpszObjectName,char*
IpszPropertyName)
SetVisible(lpszPictureName,"@ERROR",FALSE);
SetOperation(lpszPictureName,"@Loginln”,TRUE);
SetOperation(lpszPictureName,"@Passwordln",TRUE);
SetOperation(lpszPictureName,"@OK",TRUE);
Set_Focus(lpszPictureName,"@Loginln");
SetVisible(lpszPictureName,lpszObjectName,FALSE);}
2)退出对话框;
确定按钮
#include"apdefap.h"
voidOnLButtonDown(char*IpszPictureName,char*lpszObjectName,
char*lpszPropertyName,UINTnFlags,intx,inty)
{
charszPassword[18];
strcpy(szPassword,GetlnputValueChar(lpszPictureName,"@exitpassword"));printf("%s",szPassword);
if(strcmp(szPassword,"654321")==0)
DeactivateRTProject();
取消按钮
#include"apdefap.h"
voidOnLButtonDown(char*IpszPictureName,char*IpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
{
SetTagBit("tuichu",0);
}
IFIII'IH.J
'卜Cf*E
■■
甲汕
年时生u血
八甲忖卫|
亡Z□
冃怖
--fji*「!
[•
C山BFP1WQ*
f-jWJl.
口
Fm
宰厂1了.耳卩口LTHffi.Tih-
B晅匠也J£:
-
wrriQftc
」TIEI也用
单击按钮时弹出提示窗口一C动作(成功试用)
C代码:
#inelude"apdefap.h"
voidOnLButtonDown(char*IpszPictureName,char*IpszObjectName,
char*lpszPropertyName,
UINTnFlags,intx,inty)//头文件
{
HWNDhwnd;
hwnd=FindWindow(NULL,"WinCC-Runtime-");if(MessageBox(hwnd,"操
作成功","提示123",
MB_YESNO|MB」CONQUESTION|MB_SETFOREGROUND|MB_SYSTEMMODAL)==IDY
ES)
{
}
#pragmaoption(mbes)
}
运行结果:
窗口能置顶(所有的windows窗口前面)
■提示
按住成功
[•他厂勺否©)