Solucioné el asunto utilizando las funciones SaveSetting y GetSetting.
Estas ambas funciones en un módulo bas
Public Function AppSet_GetLockTimeOut(Optional sUserName As String = "") As Integer
Dim sValue As String
sValue = GetSetting(App.Title, "settings", sUserName & "-LockTimeOut", 10)
If IsNumeric(sValue) Then
AppSet_GetLockTimeOut = Val(sValue)
Else
AppSet_GetLockTimeOut = 60
End If
End Function
Public Function AppSet_SetLockTimeOut(Optional iNewLockTime As Integer = 60, Optional sUserName As String = "")
If iNewLockTime < 60 Then iNewLockTime = 60
SaveSetting App.Title, "settings", sUserName & "-LockTimeOut", Str(iNewLockTime)
End Function
Y en un timer colocado en el MDI de la aplicación, o en el form principal, lo siguiente:
Private Sub timerWatchCursor_Timer()
Static ic As Integer
Static op As POINTAPI
Dim p As POINTAPI
GetCursorPos p
If (p.X < (op.X + 5) And p.X > op.X - 5) And (p.Y < (op.Y + 5) And p.Y > op.Y - 5) Then
ic = ic + 1
Else
ic = 0
End If
op.X = p.X
op.Y = p.Y
If ic > AppSet_LockTimeOut Then
ic = 0
LockAPP
End If
End Sub
Donde en el procedimiento "LockAPP" le decimos si queremos que cierre todo, muestre un protector de pantalla, o cierre la sesión, etc.
La verdad que no estoy seguro de guardar configuraciones mayores o preferencias de usuarios en el registro de windows.
Saludos.