MUDAR CURSOR DO MOUSE EM PROGRAMA EXTERNO

VBLOKO 22/07/2017 15:33:56
#475354
Olá, boa tarde a todos. Gostaria de saber como posso mudar o cursor do sistema para uma imagem que definirei ao clicar em um botão, por exemplo. Não quero que o mouse apenas mude a aparência dentro do Form, mas mesmo fora dele, em um programa externo. Realmente procurei e algumas das soluções não funcionaram para mim.

Resumo:
1 - Clicar em Botão
2 - Mudar o cursor para imagem
-- Executar ações
3 - Voltar para cursor normal após isso

Desde já, agradeço.
KURTGU 22/07/2017 15:59:16
#475355
Citação:

:
Olá, boa tarde a todos. Gostaria de saber como posso mudar o cursor do sistema para uma imagem que definirei ao clicar em um botão, por exemplo. Não quero que o mouse apenas mude a aparência dentro do Form, mas mesmo fora dele, em um programa externo. Realmente procurei e algumas das soluções não funcionaram para mim.

Resumo:
1 - Clicar em Botão
2 - Mudar o cursor para imagem
-- Executar ações
3 - Voltar para cursor normal após

Desde já, agradeço.



Por que nao cria um form de Loading usando backgroundWork
VBLOKO 22/07/2017 17:08:31
#475356
Citação:

Por que nao cria um form de Loading usando backgroundWork



Como nunca utilizei o backgroundworker, dei uma olhada em http://www.macoratti.net/vbn5_ept.htm . No entanto, se entendi bem o que você quis dizer é criar o form com [Ô]Loading...[Ô] enquanto a ação não é executada? Se for isso, acho que não me ajudará. Gostaria apenas que a seta do mouse fosse modificada para uma imagem. Dentro do form, eu faria assim:

  
Dim mouseNovo As Icon
mouseNovo = My.Resources.imgNovoMouse
Me.Cursor = New Cursor(imgNovoMouse.Handle)


E colocaria a imagem [Ô]imgNovoMouse[Ô] no [Ô]Resources[Ô]. Como disse anteriormente, a aparência do mouse só fica como eu quero quando o mouse está dentro do form. Agradeço pela ajuda!
KURTGU 22/07/2017 17:14:20
#475357
Citação:

:
Por que nao cria um form de Loading usando backgroundWork

Como nunca utilizei o backgroundworker, dei uma olhada em http://www.macoratti.net/vbn5_ept.htm . No entanto, se entendi bem o que você quis dizer é criar o form com [Ô]Loading...[Ô] enquanto a ação não é executada? Se for isso, acho que não me ajudará. Gostaria apenas que a seta do mouse fosse modificada para uma imagem. Dentro do form, eu faria assim:

  
Dim mouseNovo As Icon
mouseNovo = My.Resources.imgNovoMouse
Me.Cursor = New Cursor(imgNovoMouse.Handle)


E colocaria a imagem [Ô]imgNovoMouse[Ô] no [Ô]Resources[Ô]. Como disse anteriormente, a aparência do mouse só fica como eu quero quando o mouse está dentro do form. Agradeço pela ajuda!




Todas as vezes que vi isso, sempre funciona dentro do sistema agora fora do sistema vc teria que mudar diretamente no windows e teria que ser .cur
VBLOKO 22/07/2017 17:22:55
#475358
Citação:

Todas as vezes que vi isso, sempre funciona dentro do sistema agora fora do sistema vc teria que mudar diretamente no windows e teria que ser .cur



Sim, fiz algumas tentativas com o arquivo na extensão de .cur, no entanto, não obtive sucesso.

@Edit
Depois de várias tentativas, enfim consegui. Para quem precisar:


  Private Const OCR_NORMAL = 32512&

Private Declare Function LoadCursor Lib [Ô]user32.dll[Ô] Alias [Ô]LoadCursorA[Ô] (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Private Declare Function SetSystemCursor Lib [Ô]user32.dll[Ô] (ByVal hcur As Long, ByVal id As Long) As Boolean
Private Declare Function LoadCursorFromFile Lib [Ô]user32.dll[Ô] Alias [Ô]LoadCursorFromFileA[Ô] (ByVal lpFileName As String) As Long
Private Declare Function CopyIcon Lib [Ô]user32[Ô] (ByVal hIcon As Long) As Long

Public hcursor, retcur As Long

Public Sub ChangeCursor()
retcur = CopyIcon(LoadCursor(0, OCR_NORMAL))
hcursor = LoadCursorFromFile(Application.StartupPath + [Ô]\ImgName.cur[Ô])
SetSystemCursor(hcursor, OCR_NORMAL)
End Sub

Public Sub BackCursor()
SetSystemCursor(retcur, OCR_NORMAL)
End Sub
Tópico encerrado , respostas não são mais permitidas