No se, a mi me funciona perfectamente.
Como no tengo el juego, cuando no existe el fichero rutaapp.txt me hace buscar el exe y guarda la ruta.
La siguiente vez arranca sin problemas (otro exe, claro, el juego no lo tengo).
Si es el juego el que te da error prueba este codigo.
Hacemos que el programa cambie el directorio de trabajo al del juego a ver si asi pita.
Código vb:
Ver originalPrivate Sub Command1_Click()
Static Respuesta As String ' creamos una variable que no se pierde
If Respuesta = "" Then
If Dir("C:\RutaApp.txt", vbArchive) <> vbNullString Then
Open "C:\RutaApp.txt" For Input As #1
Line Input #1, Respuesta
Close #1
Else
Respuesta = "C:\Program Files\KONAMI\Pro Evolution Soccer 6\PES6.exe"
End If
End If
If Dir(Respuesta, vbArchive) = vbNullString Then
CommonDialog1.Filter = "Archivos Ejecutables (*.exe)|*.exe"
CommonDialog1.ShowOpen
'si el usuario selecciona cancelar que salga del sub
If CommonDialog1.FileName = "" Then Exit Sub
Respuesta = CommonDialog1.FileName
Open "C:\RutaApp.txt" For Output As #1
Print #1, CommonDialog1.FileName
Close #1
End If
ChDir Left$(Respuesta, Len(Respuesta) - Len(Dir$(Respuesta)))
Shell Respuesta, vbNormalFocus
Me.WindowState = 1
End Sub