La idea es cargar el cursor en la aplicacion y cuando esta cierre que el cursor quede como estaba.
Aca les dejo el code que encontre pero es el que cambia al mover el cursor:
Código
Private Declare Function LoadCursorFromFile Lib "user32.dll" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long Private Declare Function SetCursor Lib "user32.dll" (ByVal hCursor As Long) As Long ' Display the application starting (arrow and hourglass) Windows ' cursor for three seconds. The cursor resource is loaded from Windows. Then ' restore the old cursor (whatever it happens to be). Dim hcursor As Long ' receives handle to application starting cursor Dim holdcursor As Long ' receives handle to previously used cursor Dim retval As Long ' throw-away return value hcursor = LoadCursor(0, IDC_APPSTARTING) ' load Windows's application starting cursor holdcursor = SetCursor(hcursor) ' set it to the new cursor Sleep 3000 ' wait for 3 seconds retval = SetCursor(holdcursor) ' set it to the previous cursor
NOTA: Intente cambiando el cursor actual con SetSystemCursor pero no creo que eso sea buena idea ya que despues hay que restaurar el cursor de forma manual :S.