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