Hola de nuevo, estoy creando un programa que lo que hace, es tapar un juego ejecutado en ventana, sobreponiendose encima hasta un cierto
momento, en el que mi programa desaparece y deja ver el juego.

Este es mi programa:

Tengo 2 formularios:

Código 1º formulario:

Option Explicit
'Constantes para pasarle a la función Api SetWindowPos
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2 '

' Función Api SetWindowPos
Private Declare Function SetWindowPos _
Lib "user32" ( _
ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal Y As Long, _
ByVal cX As Long, _
ByVal cY As Long, _
ByVal wFlags As Long) As Long

Private Sub Form_Load()
On Error GoTo evitar
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOMOVE Or SWP_NOSIZE
Form1.Move 4920, 1230
Shell ("Juego.exe"), vbNormalFocus
SendKeys "{enter}", True
Form2.Show
evitar:
End Sub


Código 2º formulario:

Option Explicit
'Constantes para pasarle a la función Api SetWindowPos
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2 '

' Función Api SetWindowPos
Private Declare Function SetWindowPos _
Lib "user32" ( _
ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal Y As Long, _
ByVal cX As Long, _
ByVal cY As Long, _
ByVal wFlags As Long) As Long
Private Sub Form_Load()
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOMOVE Or SWP_NOSIZE
Form2.Move 4920, 1230

Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Form2.Cls
End
End Sub

El caso es que la 1º vez que lo ejecute me funciono, pero las demás veces no, cuando desaparecen ambos formularios y vuelve a aparecer la
ventana del juego, se queda colgado y no responde y no lo entiendo, porque mi programa ya esta cerrado.

¿Alguien me puede decir como puedo solucionarlo?, porque no entiendo que pasa.

Un saludo.