技术论坛

Wincc登录退出画面设计

作者 主题
奇侠

经验值: 8540
发帖数: 939
精华帖: 15
主题:Wincc登录退出画面设计


只看楼主 楼主 2022-03-19 18:03:13

在做项目时,有时候需要先登录成功才能够继续打开主窗口,或者需要登录成功后才能够进行画面的操作,这类有个例子,登录窗口为小窗口,登录后全屏显示。

链接: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=

至圣

经验值: 24344
发帖数: 4846
精华帖: 6
回复:Wincc登录画面设计


只看楼主 1楼 2022-03-19 19:42:04

 人狠话不多,直接打开最主要的流程画面做启动画面!


谨慎低调
以下网友喜欢您的帖子:

  
版主

经验值: 69061
发帖数: 12270
精华帖: 59
回复:Wincc登录画面设计


只看楼主 2楼 2022-03-19 21:29:09

截个图看一下啥的....

也感谢分享


Q群:https://jq.qq.com/?k=9BDuEgf6
以下网友喜欢您的帖子:

  
奇侠

经验值: 8540
发帖数: 939
精华帖: 15
回复:Wincc登录画面设计


只看楼主 楼主 3楼 2022-03-20 12:20:30

用户登录.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);

}


//***********************登录按钮***********************

#include "apdefap.h"

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

{

#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  

  }

}


//***********************登录窗口退出按钮***********************

#include "apdefap.h"

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

{

#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 

}



//***********************打开主画面窗口***********************

#include "apdefap.h"

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

{

HWND hWnd=NULL;

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);

//此处设置登录窗口位置和大小,根据分辨率调整画面大小

}

//***********************主画面退出按钮***********************

#include "apdefap.h"

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

{

#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

SetVisible(lpszPictureName,"ExitWindow",TRUE); //Return-Type: BOOL 

}

//***********************退出画面退出按钮***********************

#include "apdefap.h"

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

{

#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  

  ExitWinCC();


}

//***********************退出画面取消按钮***********************

#include "apdefap.h"

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

{


#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

SetVisible("MainPicture.Pdl","ExitWindow",FALSE); //Return-Type: BOOL 

}



 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
Wincc登录退出画面设计
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。