Planteas dos cosas distintas.
Dices: "lo que quiero hacer es ke me mantenga invisible un boton " Qué tiene que ver Inkey con esto?
Dices: " y que solamente darle enter se haga visible". Si no está visible, no podrás darle Enter.
Un botón (o cualquier control) es visible si su propiedad Visible=.T. y no es visible con Visible=.F.
Con respecto al tiempo de uso, depende de lo que quieras hacer. Si te refieres al inicio del formulario, de la aplicación o al tiempo en general. Para controlar el tiempo se utiliza un control Timer.
Si lo que quieres es reactivar un CommandButton con una tecla de función, puedes usar el evento KeyPress del formulario, poniendo la propiedad Keypreview=.T.
* Suponte que quieres hacer visible un botón (MiBoton) cuando presionas [F2]
* Los nKeyCode para las teclas F2 a F10 son el valor numérico menos 1
* Por Ejemplo nKeyCode= -8, presionó F9
* [F11]=133 [F12]=134
* Evento KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl && parámetros por defecto
IF nKeyCode= -1 && Ver en la ayuda de Inkey() los códigos de cada tecla.
Thisform.MiBoton.Visible=.T.
ENDIF
Desaparición después de un tiempo:
Inserta un Control Timer en el formulario.
Debes configurar la propiedad Interval en nSegundos * 1000. Por ejemplo, 5000 son cinco segundos.
En el método Timer del control Timer1, escribe
Thisform.MiBoton.visible=.F.
En el evento Click del boton Miboton va:
Thisform.Timer1.Enabled=.F.
* Proceso generado por este botón
* Fin del proceso
Thisform.Timer1.Enabled=.T.