回复:wincc中添加运行软件

CoolCool的猪

西门子1847工业学习平台

  • 帖子

    1269
  • 精华

    2
  • 被关注

    564

论坛等级:至圣

注册时间:2012-11-04

钻石 钻石 如何晋级?

发布于 2016-02-04 10:47:52

6楼

如何用 WinCC V6.2, WinCC V7.0 和 WinCC (TIA Portal)打开一个应用程序并保持其始终在前台显示?

描述: 以 Adobe Reader 8.0 作为示例,我们将演示如何打开一个程序窗口并始终在前台显示。

No.

步骤

1

在按钮事件的“鼠标动作”中创建以下 C 语言函数,例如:

#include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { HWND Handle = NULL; Handle = FindWindow("AcrobatSDIWindow",NULL); if (Handle) { ShowWindow(Handle, SW_SHOWNORMAL); } else { ProgramExecute("C:/Program Files/Adobe/Reader 8.0/Reader/AcroRD32.exe"); Handle = FindWindow(NULL, "Adobe Reader"); } SetWindowPos (Handle, HWND_TOPMOST, 400, 200, 520, 420, 0); }

注意: 为了传递参数,Windows 函数 "HWND FindWindow(LPCSTR lpClassName, LPCSTR lpWindowName);" 需要窗口的类名或者窗口自己的名字。可以通过打开相关程序轻松获得窗口的名字(没有文档)。窗口名会显示在标题栏。然而使用窗口名字时,需注意当打开文档时窗口名字也许会发生改变。这也是为什么最好使用"lpClassName"参数的原因。

2

在按钮事件的“鼠标动作”中的以下 C 语言函数,从窗口名称中确定了窗口的类名: 为了显示"printf()"函数的输出,可以在 WinCC 画面中加载 "GSC - Diagnostics" 应用程序窗口或者启动 "apdiag.exe" 程序。

#include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { char winclass[256]; HWND Handle = NULL; Handle = FindWindow(NULL, "Adobe Reader"); if (!Handle) { ProgramExecute("C:/Program Files/Adobe/Reader 8.0/Reader/AcroRD32.exe"); Handle = FindWindow(NULL, "Adobe Reader"); } GetClassName(Handle, winclass, sizeof (winclass)-1); printf ("Window Class Name: %s \r\n", winclass); }





自由
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32927条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。