签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
在做项目时,有时候需要先登录成功才能够继续打开主窗口,或者需要登录成功后才能够进行画面的操作,这类有个例子,登录窗口为小窗口,登录后全屏显示。
链接:https://pan.baidu.com/s/1u87FkZYQd8CodKW2L59YKA
提取码:rygg
用户:user1
密码:user1p
启动画面后,先显示登录小窗口;
输入用户名和密码,点击登录如果登录密码错误则弹出密码错误窗口,然后点击重试按钮,重新登录;
登录成功后,显示主画面,画面显示大小在代码中显示。
点击退出运行按钮后,弹出退出系统按钮。
这个项目完成了登录和退出系统。
补充:
上面的程序是获取中文画面窗口句柄,如果不是在中文环境运行,程序登录窗口后,窗口大小调整语句不执行,现在已经优化过了,2022年3月20日上午重新上传文件。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1753052&b_id=5&s_id=0&pno=
人狠话不多,直接打开最主要的流程画面做启动画面!
截个图看一下啥的....
也感谢分享
用户登录.pdf
这是程序代码,运行语言只有在中文简体,繁体和英文运行可以,其它语言画面无法自动调整画面大小。
//***********************登录重试按钮***********************
#include "apdefap.h"
void OnClick(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);
}
//***********************登录按钮***********************
#pragma code ("UseAdmin.DLL")
#include "pwrt_api.h"
#pragma code ()
HWND hWnd=NULL;
if (PWRTSilentLogin(GetInputValueChar(lpszPictureName,"@LoginIn"),GetInputValueChar(lpszPictureName,"@PasswordIn")) == 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");
else
if (GetLanguage ()==0x0804 && GetLanguage ()==0x0404)
//获取窗口中文句柄(简体中文和繁体中文)
hWnd=FindWindow(NULL,"WinCC-运行系统 - ");
if(GetLanguage ()==0x0409)
//获取窗口英文句柄
hWnd=FindWindow(NULL,"WinCC-Runtime - ");
//设置窗口位置,大小
SetWindowPos(hWnd,HWND_TOP,0,0,1680,1050,0);
//此处设置登录窗口位置和大小,根据分辨率调整画面大小
OpenPicture("MainPicture.Pdl"); //Return-Type: void
//***********************登录窗口退出按钮***********************
#pragma option(mbcs)
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
DeactivateRTProject (); //Return-Type: BOOL
//Return-Type: BOOL
//***********************打开主画面窗口***********************
void OnOpenPicture(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
//获取窗口中文句柄
//***********************主画面退出按钮***********************
SetVisible(lpszPictureName,"ExitWindow",TRUE); //Return-Type: BOOL
//***********************退出画面退出按钮***********************
ExitWinCC();
//***********************退出画面取消按钮***********************
SetVisible("MainPicture.Pdl","ExitWindow",FALSE); //Return-Type: BOOL
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录