Lo que noto a primera vista es que en esta línea:
Code: Select all
Identificador_Ahk .= ahk_id %Identificador_Ahk%
se hace una concatenación
.= en vez de una asignación
:=, cuando entiendo —o mejor dicho, supongo— que se busca esto último.
Prueba del error:
Code: Select all
run, notepad.exe
WinGet, Identificador_Ahk, ID, A ; la ventana activa
Identificador_Ahk .= ahk_id %Identificador_Ahk%
if (Identificador_Ahk = ahk_id %Identificador_Ahk%)
MsgBox yes
else
MsgBox no
; MsgBox informa "no"
; Prueba de la asignación
Identificador_Ahk := ahk_id %Identificador_Ahk%
if (Identificador_Ahk = ahk_id %Identificador_Ahk%)
MsgBox yes
else
MsgBox no
; MsgBox informa "si"
Convendría, entonces, eliminar esa asignación que en realidad no hace nada y trabajar con el
hwnd obtenido en primera instancia. Probemos a ver qué pasa:
Code: Select all
run, notepad.exe
WinGet, Identificador_Ahk, ID, A ; la ventana activa
WinWait, ahk_id %Identificador_Ahk%,, 5
if ERRORLEVEL {
MsgBox, Se ha producido un error
return ; se termina el script y el siguiente MsgBox no se nuestra
}
MsgBox, No hubo error ; se muestra este mensaje