Normalmente esté código lo vamos a utilizar cuando queremos aprovechar un mismo sinóptico / función en el WinCC y en WebNavigator, pero por algún motivo hay alguna excepción para utilizar está función.
Voy a proponer el siguiente ejemplo , un botón que va a servir para logearnos en nuestro sistema y a su vez este botón si estamos en WebNavigator va a servier para deslogearnos.

Este es el sinóptico de testing con su botón y su código


En nuestro bóton vamos a implementar el código descrito y como en cada condicional se ejecuta una función diferente


Aquí el código para poder copiar 😉 y adaptar según las necesidades

#ifdef RUN_ON_WEBNAVIGATOR

	#pragma code ()
	#include "PWRT_api.h"
	#pragma code();
	PWRTLogout();

#else

	#pragma code("useadmin.dll")
	#include "PWRT_api.h"
	#pragma code()
	PWRTLogin('c');

#endif


Si ejecutamos el runtime y probamos nuestro botón , invocamos a la función login y aquí está la pantalla


Si por el contrario hemos ejecutado el WinCCViewerRT , por defecto ya nos hemos logeado, con lo cual si pulsamos el botón…


Nos deslogeamos y ya podemos volver a logearnos con el mismo usuario u otro diferente. Eso si, el archivo de configuración debe estar sin usuario predeterminado 😉

Y si hablamos de programación en VBScript, tenemos la función IsWebNavigator que nos servira para la misma función.

If IsWebNavigator() Then
	Msgbox("Estoy en Web Navigator")
Else
	Msgbox("NO estoy en Web Navigator")
End If