wincc中的C例题
- 格式:doc
- 大小:37.50 KB
- 文档页数:9
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)
{