Usuário com melhor resposta
Como mudar os Cursor de mause por um circulo azul

Pergunta
-
Ola amigos
Alguém poderia me ajudar como mudar o cursor de um mause por um circulo azul
No centro para ser mani bulado por Joysticks Aqui o condigo
ObrigadoImports System.Runtime.InteropServices Public Class Form1 Declare Function joyGetPosEx Lib "winmm.dll" (ByVal uJoyID As Integer, ByRef pji As JOYINFOEX) As Integer Public Structure JOYINFOEX Public dwSize As Integer Public dwFlags As Integer Public dwXpos As Integer Public dwYpos As Integer Public dwZpos As Integer Public dwRpos As Integer Public dwUpos As Integer Public dwVpos As Integer Public dwButtons As Integer Public dwButtonNumber As Integer Public dwPOV As Integer Public dwReserved1 As Integer Public dwReserved2 As Integer End Structure Dim myjoyEX As JOYINFOEX Public IDJoy As Long 'ID Joystick Value Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick PictureBox1.Refresh() Call joyGetPosEx(0, myjoyEX) With myjoyEX Label1.Text = (.dwXpos / 257).ToString 'Up to six axis supported Label2.Text = (.dwYpos / 257).ToString Label3.Text = (.dwZpos / 257).ToString Label4.Text = (.dwRpos / 257).ToString Dim NoMove2D As Cursor NoMove2D = Cursors.NoMove2D Dim graphics As Graphics = PictureBox1.CreateGraphics() Dim rectangle As New Rectangle(New Point(CInt(Math.Round((myjoyEX.dwXpos / 65535) * (PictureBox1.Width - NoMove2D.Size.Width))), CInt(Math.Round((myjoyEX.dwYpos / 65535) * (PictureBox1.Height - NoMove2D.Size.Height)))), New Size(NoMove2D.Size.Width, NoMove2D.Size.Height)) NoMove2D.Draw(graphics, rectangle) End With End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim myjoyEX As JOYINFOEX MYJOYEX.dwSize = 60 MYJOYEX.dwFlags = 255 End Sub End Class
- Editado Cesar Morisco quarta-feira, 18 de maio de 2016 19:10
Respostas
-
Não é desta forma que você vai manipular o cursor do mouse.
O que você fez foi somente ler as informações da posição do joystick e desenhar na tela.
Para substituir a seta por um círculo você tem que ir nas configurações do windows:
http://windows.microsoft.com/pt-br/windows/change-mouse-settings#1TC=windows-7
Agora para substituir o mouse pelo joystick o problema é maior. Envolve sobrepor o dispositivo de apontamento padrão do Windows, o que não é simples, mas existem toneladas de softwares freeware que fazem isso.
Veja esse tutorial em português:
Video explicando como usar o joystick como um mouse
aqui esta outro software que faz isso:
http://www.baixaki.com.br/download/joy-to-mouse.htm
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Thales F Quintas quinta-feira, 19 de maio de 2016 14:25
-
Neste caso é só baixar ou criar um cursor e modificar o seu código deste jeito:
Imports System.Runtime.InteropServices Public Class Form1 Declare Function joyGetPosEx Lib "winmm.dll" (ByVal uJoyID As Integer, ByRef pji As JOYINFOEX) As Integer Public Structure JOYINFOEX Public dwSize As Integer Public dwFlags As Integer Public dwXpos As Integer Public dwYpos As Integer Public dwZpos As Integer Public dwRpos As Integer Public dwUpos As Integer Public dwVpos As Integer Public dwButtons As Integer Public dwButtonNumber As Integer Public dwPOV As Integer Public dwReserved1 As Integer Public dwReserved2 As Integer End Structure Dim myjoyEX As JOYINFOEX Public IDJoy As Long 'ID Joystick Value Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick PictureBox1.Refresh() Call joyGetPosEx(0, myjoyEX) With myjoyEX Label1.Text = (.dwXpos / 257).ToString 'Up to six axis supported Label2.Text = (.dwYpos / 257).ToString Label3.Text = (.dwZpos / 257).ToString Label4.Text = (.dwRpos / 257).ToString Dim cursorBolinha As Cursor cursorBolinha = New Cursor(Me.GetType(), "bolinha.cur") ' aqui voce faz referencia ao seu cursor Dim graphics As Graphics = PictureBox1.CreateGraphics() Dim rectangle As New Rectangle(New Point(CInt(Math.Round((myjoyEX.dwXpos / 65535) * (PictureBox1.Width - cursorBolinha.Size.Width))), CInt(Math.Round((myjoyEX.dwYpos / 65535) * (PictureBox1.Height - cursorBolinha.Size.Height)))), New Size(NoMove2D.Size.Width, cursorBolinha.Size.Height)) cursorBolinha.Draw(graphics, rectangle) End With End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim myjoyEX As JOYINFOEX MYJOYEX.dwSize = 60 MYJOYEX.dwFlags = 255 End Sub End Class
mas o arquivo bolinha.cur tem que estar nos ressources do seu projeto.
Como: Adicionar ou remover recursos
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Thales F Quintas quinta-feira, 19 de maio de 2016 14:25
Todas as Respostas
-
Não é desta forma que você vai manipular o cursor do mouse.
O que você fez foi somente ler as informações da posição do joystick e desenhar na tela.
Para substituir a seta por um círculo você tem que ir nas configurações do windows:
http://windows.microsoft.com/pt-br/windows/change-mouse-settings#1TC=windows-7
Agora para substituir o mouse pelo joystick o problema é maior. Envolve sobrepor o dispositivo de apontamento padrão do Windows, o que não é simples, mas existem toneladas de softwares freeware que fazem isso.
Veja esse tutorial em português:
Video explicando como usar o joystick como um mouse
aqui esta outro software que faz isso:
http://www.baixaki.com.br/download/joy-to-mouse.htm
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Thales F Quintas quinta-feira, 19 de maio de 2016 14:25
-
Ola William
Tudo bem
Neste exemplo ai já esta funcionando no meu projeto só queria modificar por um bolinha ou circulo em azul para min mover o usando as posição y x com o Joystick
Tipo este projeto aqui
https://dvanderboom.wordpress.com/2008/04/
Obrigado
César
- Editado Cesar Morisco quarta-feira, 18 de maio de 2016 20:11
-
Neste caso é só baixar ou criar um cursor e modificar o seu código deste jeito:
Imports System.Runtime.InteropServices Public Class Form1 Declare Function joyGetPosEx Lib "winmm.dll" (ByVal uJoyID As Integer, ByRef pji As JOYINFOEX) As Integer Public Structure JOYINFOEX Public dwSize As Integer Public dwFlags As Integer Public dwXpos As Integer Public dwYpos As Integer Public dwZpos As Integer Public dwRpos As Integer Public dwUpos As Integer Public dwVpos As Integer Public dwButtons As Integer Public dwButtonNumber As Integer Public dwPOV As Integer Public dwReserved1 As Integer Public dwReserved2 As Integer End Structure Dim myjoyEX As JOYINFOEX Public IDJoy As Long 'ID Joystick Value Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick PictureBox1.Refresh() Call joyGetPosEx(0, myjoyEX) With myjoyEX Label1.Text = (.dwXpos / 257).ToString 'Up to six axis supported Label2.Text = (.dwYpos / 257).ToString Label3.Text = (.dwZpos / 257).ToString Label4.Text = (.dwRpos / 257).ToString Dim cursorBolinha As Cursor cursorBolinha = New Cursor(Me.GetType(), "bolinha.cur") ' aqui voce faz referencia ao seu cursor Dim graphics As Graphics = PictureBox1.CreateGraphics() Dim rectangle As New Rectangle(New Point(CInt(Math.Round((myjoyEX.dwXpos / 65535) * (PictureBox1.Width - cursorBolinha.Size.Width))), CInt(Math.Round((myjoyEX.dwYpos / 65535) * (PictureBox1.Height - cursorBolinha.Size.Height)))), New Size(NoMove2D.Size.Width, cursorBolinha.Size.Height)) cursorBolinha.Draw(graphics, rectangle) End With End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim myjoyEX As JOYINFOEX MYJOYEX.dwSize = 60 MYJOYEX.dwFlags = 255 End Sub End Class
mas o arquivo bolinha.cur tem que estar nos ressources do seu projeto.
Como: Adicionar ou remover recursos
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Thales F Quintas quinta-feira, 19 de maio de 2016 14:25
-
Cara não sei o que deu errado
Eu cliei um cursor novo com o nume bolinha.cur
Dentro da pasta Resources
Aqui o projeto completo para teste
Imports System.Runtime.InteropServices
Public Class Form1
Declare Function joyGetPosEx Lib "winmm.dll" (ByVal uJoyID As Integer, ByRef pji As JOYINFOEX) As Integer
Public Structure JOYINFOEX
Public dwSize As Integer
Public dwFlags As Integer
Public dwXpos As Integer
Public dwYpos As Integer
Public dwZpos As Integer
Public dwRpos As Integer
Public dwUpos As Integer
Public dwVpos As Integer
Public dwReserved1 As Integer
Public dwReserved2 As Integer
End Structure
Dim myjoyEX As JOYINFOEX
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Panel1.Refresh()
' Get the joystick information
Call joyGetPosEx(0, myjoyEX)
With myjoyEX
Label10.Text = .dwXpos.ToString 'Up to six axis supported
Label11.Text = .dwYpos.ToString
Label12.Text = .dwZpos.ToString
Label13.Text = .dwRpos.ToString
Label14.Text = .dwUpos.ToString
Label15.Text = .dwVpos.ToString
Dim NoMove2D As Cursor
NoMove2D = Cursors.NoMove2D
Dim graphics As Graphics = Panel1.CreateGraphics()
Dim rectangle As New Rectangle(New Point(CInt(Math.Round((myjoyEX.dwXpos / 65535) * (Panel1.Width - NoMove2D.Size.Width))), CInt(Math.Round((myjoyEX.dwYpos / 65535) * (Panel1.Height - NoMove2D.Size.Height)))), New Size(NoMove2D.Size.Width, NoMove2D.Size.Height))
NoMove2D.Draw(graphics, rectangle)
End With
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
myjoyEX.dwSize = 64
myjoyEX.dwFlags = &HFF 'All information
Timer1.Interval = 200 'Update at 5 hz
Timer1.Start()
End Sub
End ClassObrigado
- Editado Cesar Morisco quinta-feira, 19 de maio de 2016 02:09
-
Isso indica que você não adicionou o recurso corretamente. Mostre a tela de recursos.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
-