none
Como mudar os Cursor de mause por um circulo azul RRS feed

  • 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 
    Obrigado
    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 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


    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
    ----------------------------------------------------------

    quarta-feira, 18 de maio de 2016 19:51
    Moderador
  • 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

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quarta-feira, 18 de maio de 2016 20:18
    Moderador

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
    ----------------------------------------------------------

    quarta-feira, 18 de maio de 2016 19:51
    Moderador
  • 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




    quarta-feira, 18 de maio de 2016 20:01
  • 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

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quarta-feira, 18 de maio de 2016 20:18
    Moderador
  • 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 Class

    Obrigado




     


    quinta-feira, 19 de maio de 2016 00:12
  • Isso indica que você não adicionou o recurso corretamente. Mostre a tela de recursos.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quinta-feira, 19 de maio de 2016 12:46
    Moderador
  • ola william blz

    Deu certo

    O meu cursor uma bolinha vermelha mais aparece branca PictureBox2

    Mais ja esta funcionando muito obrigado


    César

    sexta-feira, 20 de maio de 2016 16:33