Сначала меняю курсор: Код (Text): invoke LoadCursor,NULL,IDC_HAND invoke SetSystemCursor,eax,OCR_NORMAL Работает. Затем возвращаю курсор: Код (Text): invoke LoadCursor,NULL,IDC_ARROW invoke SetSystemCursor,eax,OCR_NORMAL Не работает.
gale1238 для стандартных курсоров типа IDC_ARROW можно вообще обходится без LoadCursor invoke SetCursor 10011h это работает от Win3.11 до WinXP
gale1238 Стандартые ID можно узнать заранее, например так Код (Text): ; masm windows gui # .686P .mmx .model flat include windows.inc includelib user32.lib extern _imp__wsprintfA:dword extern _imp__LoadCursorA@8:dword extern _imp__MessageBoxA@16:dword IDC_ARROW equ 32512 IDC_IBEAM equ 32513 IDC_WAIT equ 32514 IDC_CROSS equ 32515 IDC_UPARROW equ 32516 IDC_SIZE equ 32640 IDC_ICON equ 32641 IDC_SIZENWSE equ 32642 IDC_SIZENESW equ 32643 IDC_SIZEWE equ 32644 IDC_SIZENS equ 32645 IDC_SIZEALL equ 32646 IDC_NO equ 32648 IDC_HAND equ 32649 IDC_APPSTARTING equ 32650 IDC_HELP equ 32651 buffer equ 400 .code start: xor ebx,ebx sub esp,buffer mov ebp,esp ; сохраняем указатель на буфер в регистре EBP push IDC_ARROW push ebx call _imp__LoadCursorA@8 push eax push IDC_IBEAM push ebx call _imp__LoadCursorA@8 push eax push IDC_WAIT push ebx call _imp__LoadCursorA@8 push eax push IDC_CROSS push ebx call _imp__LoadCursorA@8 push eax push IDC_UPARROW push ebx call _imp__LoadCursorA@8 push eax push IDC_SIZE push ebx call _imp__LoadCursorA@8 push eax push IDC_ICON push ebx call _imp__LoadCursorA@8 push eax push IDC_SIZENWSE push ebx call _imp__LoadCursorA@8 push eax push IDC_SIZENESW push ebx call _imp__LoadCursorA@8 push eax push IDC_SIZEWE push ebx call _imp__LoadCursorA@8 push eax push IDC_SIZENS push ebx call _imp__LoadCursorA@8 push eax push IDC_SIZEALL push ebx call _imp__LoadCursorA@8 push eax push IDC_NO push ebx call _imp__LoadCursorA@8 push eax push IDC_HAND push ebx call _imp__LoadCursorA@8 push eax push IDC_APPSTARTING push ebx call _imp__LoadCursorA@8 push eax push IDC_HELP push ebx call _imp__LoadCursorA@8 push eax push offset format push ebp;offset buffer call _imp__wsprintfA push ebx push offset caption;заголовок push ebp;offset buffer;текст push ebx call _imp__MessageBoxA@16 add esp,4*18+buffer;корректируем стек retn format db 'IDC_HELP',9,'%08Xh',0Ah db 'IDC_APPSTARTING',9,'%08Xh',0Ah db 'IDC_HAND',9,'%08Xh',0Ah db 'IDC_NO',9,9,'%08Xh',0Ah db 'IDC_SIZEALL',9,'%08Xh',0Ah db 'IDC_SIZENS',9,'%08Xh',0Ah db 'IDC_SIZEWE',9,'%08Xh',0Ah db 'IDC_SIZENESW',9,'%08Xh',0Ah db 'IDC_SIZENWSE',9,'%08Xh',0Ah db 'IDC_ICON',9,'%08Xh',0Ah db 'IDC_SIZE',9,9,'%08Xh',0Ah db 'IDC_UPARROW',9,'%08Xh',0Ah db 'IDC_CROSS',9,'%08Xh',0Ah db 'IDC_WAIT',9,'%08Xh',0Ah db 'IDC_IBEAM',9,'%08Xh',0Ah db 'IDC_ARROW',9,'%08Xh',0 caption db 'Cursor',0 end start более красивая программка позволяюющая узнать хэндлы системных битмэпов, иконок и куpсоpов by The Svin находится здесь
Програмку Код (Text): invoke LoadCursor,NULL,IDC_whatever invoke SetSystemCursor,eax,OCR_NORMAL надо запускать дважды. В первый раз меняем курсор, а во второй раз его восстанавливаем. И все дела.