¿Cómo que no anda la comparación de cadenas? ¿Realmente has probado ese código? Lo digo porque no compila, en la primera línea te sobra un paréntesis.
Además no estás comparando la cadena que yo envío, yo ponía los dos signos de admiración y tú sólo uno, así que cuando compile tal como está ahora te saldrá "chau"...
Y sí, puedes hacerlo así, con cadenas
If Then ElseIf..., también puedes usar
Switch, si son muchas cadenas quizás sea esto último más cómodo.
También puedes meter todas las cadenas a comprobar en un
Array y luego ir mirándolas con bucle, de esta manera aún es más fácil meter nuevas cadenas, sólo habrá que añadirlas al Array y el código que comprueba las cadenas no cambia.
En el segundo ejemplo no redefinas las variables, pon
Global sólo la primera vez que aparecen las variables, después debes modificar las originales, no crear nuevas, supongo que se está liando porque supuestamente tienes dos variables diferentes con el mismo nombre...
Bueno al principio no había visto que la segunda era $tit2, de todas maneras no vuelvas a poner $msgControl, especialmente si vale lo mismo.
Puedes reutilizar las variables si les cambias el valor, pero como te digo en ese caso no vuelvas a poner el Global.
Es un comportamiento un poco extraño, habrá que mirarlo con más detenimiento. ¿Los receptores son dos programas diferentes o has creado dos GUI en el mismo programa? Tal como lo comentas entiendo que son dos programas cada uno compilado a su EXE (que es lo que tiene que ser), pero por asegurarnos.
Efectivamente, sólo cambiando el título del GUI tiene que reconocerlas independientemente, mira a ver si es lo de las globales y si no es eso seguiremos investigando...
Lo de
Static1 es el nombre interno de Windows para ese control, no nos sirve
$lblMensaje porque eso es algo sólo reconocido en su propio programa.
Para averiguarlo tenemos la inestimable ayuda de una herramienta genial que ha creado el equipo de AutoIT y distribuye con el mismo. Desde el editor Scite se ejecuta desde el menú
Tools->AU3Info (o con las teclas CTRL+F6).
Desde la instalación busca el archivo
Au3Info.exe en la carpeta base de la instalación (yo por ejemplo lo tengo en
C:\Archivos de programa\AutoIt3
En esa ventana te da los datos de lo que tengas bajo el ratón, como título y clase de la ventana en la que estás (primer grupo
Basic Window Info) o la clase e instancia del control (que es lo que aquí nos hace falta) en el segundo grupo
Basic Control Info, y abajo hay pestañas con mogollón de detalles. Si te pones sobre la etiqueta ves que la clase es
Static y Instance vale
1. Así que para acceder a ese control se usa en AutoIt:
"[CLASS:Static; INSTANCE:1]", como esto se usa mucho también se puede comprimir como
"[CLASSNN:Static1]", y por lo visto les parecía poco y tambies es equivalente simplemente
"Static1", así que es lo que he usado, aunque el primero es el más aclaratorio, éste es el más simple.
Por cierto, en la pestaña Control de Au3Info tienes todas esas maneras en los primeros datos:
Class,
Instance,
ClassNameNN y
Advanced (Class)
En tu "Soporte2" has tenido suerte de que se llamara así
, bueno la clase es necesariamente Static (una etiqueta) pero la instancia podría haber cambiado...
No pasa nada si tardas en responder si es porque estás probando cosas ¡eso es lo que esperamos que hagas!
Tampoco esperes que respondamos siempre enseguida, ya sabes que esto lo hacemos por amor al arte.
Ale espero que te sirva el rollo que te he puesto.