Who said you can’t use an animated cursor with Visual Basic? Actually, it’s so simple! You just have to load your animated cursor through LoadCursorFromFile API function, then you get the current cursor using GetCursor, and finally you can set your cursor using SetSystemCursor. This is all the code that you need:
Private Declare Function LoadCursorFromFile Lib "user32" Alias _ "LoadCursorFromFileA" (ByVal lpFileName As String) As LongPrivate Declare Function GetCursor Lib "user32" () As LongPrivate Declare Function CopyIcon Lib "user32" (ByVal hcur As Long) As LongPrivate Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long, _ ByVal id As Long) As LongPrivate Const OCR_NORMAL = 32512Sub ALengthyTask() Dim hNewCursor As Long Dim hSavCursor As Long ' create a copy of the current cursor - this is necessary ' for the tip to work correctly under NT hSavCursor = CopyIcon(GetCursor()) ' load a new cursor hNewCursor = LoadCursorFromFile("h:winnt4cursorsappstart.ani") ' make it the current cursor SetSystemCursor hNewCursor, OCR_NORMAL ' here goes your lengthy code ' ... ' (in this example we'll use a msgbox MsgBox "Press OK to continue" ' restore old cursor SetSystemCursor hSavCursor, OCR_NORMALEnd Sub
UPDATE: Thanks to Kraehenbuehl Markus, who has pointed out that under Windows NT you must create a copy of the current cursor, using the CopyIcon API function. The above code has been updated following his suggestion.