#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// Definieren der Classe des gesuchten Fensters
const char* WinClass = "s7tgtopx";
// Definieren des Namens des gesuchten Fensters
const char* WinName = "SIMATIC Manager";
// Die Suche nach Namen ist bei den meisten Anwendungen nicht möglich, da in den Namen meistens noch Zusatzinformationen
// mit aufgenommen werden. In diesem Beispiel der Projektname des S7 Projektes.
HWND hWnd = NULL ; // Das Handle mit Null vorbesetzen
// Definieren der benötigten Win32 API Funktionen, in diesem Fall aus der "user32.dll"
#pragma code("user32.dll")
// Definieren der Funktion zum Finden des Fensterhandles
HWND FindWindow( LPCTSTR lpClassName, // Pointer zum Suchen über Classe
LPCTSTR lpWindowName // Pointer zum Suchen über den Namen
);
// Definieren der Funktion zum Senden von Nachrichten an ein Fenster
LRESULT SendMessage( HWND hWnd, // Handle des Fensters
UINT Msg, // Nachricht an das Fenster
WPARAM wParam, // Erster Parameter der Nachricht
LPARAM lParam // Zweiter Parameter der Nachricht
);
#pragma code()
// Ende der Definitionen
// Jetzt der eigentliche Aufruf der Funktion
do
{
hWnd = FindWindow( WinClass , NULL ); //Suche das Fenster mit der definierten Classe im Beispiel "s7gtopx"
// hWnd = Findwindow(NULL , WinName ); // Dies wäre der Aufruf wenn das Fenster über den Namen gesucht werden soll
// Eine Kombination ist auch möglich, wenn es mehrer Fenster der gleichen Classe gibt mit unterschiedlichen Namen und es soll nur ein
// bestimmtes Fenster geschlossen werden.
if ( hWnd ) // Wenn Fenster gefunden - das heist hWnd ist ungleich NULL
{
SendMessage(hWnd, WM_CLOSE,0,0); // Sende an dieses Fenster die Aufforderung zum schliessen.
}
}
while( hWnd != NULL ); // Warten bis das Fenster geschlossen wurde.
}