wincc中的C例题

  • 格式:doc
  • 大小:37.50 KB
  • 文档页数:9

下载文档原格式

  / 27
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

wincc中的C语言典型题

Wincc用动态向导传送S5/S7数据变量

Text library设制多语种文本

间接寻址:间接变量是一个文本变量16位字符集类型的变量。使用时必需选中间接寻址。

项目文件的确定:

#include"apdefap.h"

void onClick(char *lpszpicturename,char *lpszobjectname,char

*lpszproper)

{

Bool bRet;

char szprojectFile[_MAX_PATH+1];

CMN_ERROR ERROR;

bRet=DMGetRuntimeProject(szProjectFile,_MAX_PATH+1,&ERROR);

IF(bRet==False)

{

printf("\r\nError in

DMGetRuntimeProject()\r\n","\t%s\r\n",Error.szErrortext);

return;

}

printf("\r\nProjectFile:\r\n%s\r\n",szpProjectFile);

}

确定项目路径:

#include"apdefap.h"

void onClick(char *lpszpicturename,char *lpszobjectname,char

*lpszproper)

{

Bool bRet=False;

char szprojectFile[_MAX_PATH+1];

CMN_ERROR ERROR;

char* psz=NULL;

IF(bRet==False)

{

printf("\r\nError in

DMGetRuntimeProject()\r\n","\t%s\r\n",Error.szErrortext);

return;

}

psz=strrchr(szProjectFile,'\\');

if(psz!=NULL)

{

*(psz+1)=0;

}

printf("\r\nProjectPath:\r\n%s\r\n",szpProjectFile);

}

确定计算机名称:

#include "apdefap.h"

void onClick(char *lpszpicturename,char *lpszobjectname,char

*lpszproper)

{

#pragma code("Kernel32.dll");

Bool GetComputerNameA(LPSTR ComputerName,LPDWORD pdwsize);

#pragma code();

Bool bRet=FALSE;

char szComputerNameA[MAX_COMPUTERNAME_LENGTH+1];

DWORD dwSize=MAX_COMPUTERNAME_LENGTH+1;

bRet=GetComputerNameA(szComputerName,&dwSize);

if(bRet==FALSE)

{

printf("\r\nComputerName:\r\nUnknow computer\r\n");

return;

}

printf("\r\nComputerName:\r\n",szComputerName);

}

确定用户名:

#include "apdefap.h"

void onClick(char *lpszpicturename,char *lpszobjectname,char

*lpszproper)

{

#pragma code("advapi32.dll");

Bool GetUserNameA(LPSTR UserName,LPDWORD pdwSize);

#define UNLEN 256

#pragma code();

Bool bRet=FALSE;

char szUserName[UNLEN+1];

DWORD dwSize=UNLEN+1;

bRet=GetUserNameA(szUserName,&dwSize);

if(bRet==FALSE)

{

printf("\r\nUserName:\r\nUnknow User\r\n");

return;

}

printf("\r\nUserName:\r\n%s\r\n",szUserName);

}

windows API的函数也位于同的DLL中,就如Wincc API的函数一样。在各种不同的头文件中对这些函数进行了声明。DLL的集成遵循集成WINCC

DLL所使用的同一原理。下列实例程序代码对这种集成进行了说明。

#pragma code("comdlg32.dll")

#include "commdlg.h"

#pragma code()

设置windows属性

#include "apdefap.h"

void onOpenPicture(char *lpszpicturename,char *lpszobjectname,char

*lpszproper)

{

HWND hWnd=NULL;

hWnd=findWindow(NULL,"Wincc-Runtime-");

SetWindowText(hWnd,"Wincc C-course");

SetWindowPos(hWnd,HWND_TOP,0,0,1024,768,0);

SetTagByte("U08i_org_bar_1",0);

createExternalTags();

}

读取系统时间

#include "apdefap.h"

char*_main(char *lpszpicturename,char *lpszobjectname,char *lpszproper) {

#pragma code("kernel32.dll")

VOID GetLocalTime(LPSYSTEMTIME lpSystemtime);

#pragma code()

SYSTEMTIME sysTime;

char szTime[6]="";

GetLocalTime(&sysTime);

sprintf(szTime,"%02d:%02d",sysTime.wHour,sysTime.wMinute);

return szTime;

}

播放声音文件

#include "apdefap.h"

{

#pragma code("winmm.dll")

Bool PlaySound(LPCTSTR lpszSound,HMODULE hModule,DWORD dwSound);

#define SND_FILENAME 0x00020000L

#define SND_ASYNC 0x0001

#pragma code()

Bool bRet=FALSE;

char szProjectPath(_MAX_PATH);

char szSoundPath(_MAX_PATH);

GetProjectPath(szProjectPath);

sprintf(szSoundPath,"%sSound\\%s",szProjectPath,lpszSoundFile);

bRet=PlaySound(szSoundPath,NULL,SND_FILENAME|SND_ASYNC);

if(bRet==false)

{