Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [VB6] Posizionamento e click mouse da codice

    Ciao a tutti,

    ho catturato le coordinate del mouse relative al punto dove si trova quando clicco, vorrei che quando premo un pulsante, il mouse si posizioni e clicchi fisicamente sulle coordinate da me prima catturate.

    grazie anticipatamente

  2. #2
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Prova a vedere se questo ti aiuta. L'esempio è per VB.NET, ma dovresti convertirlo facilmente in vb6. Spiega solo come usare l'API GetAsyncKeyState della user32.dll.
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #3
    Originariamente inviato da ShaleN
    Prova a vedere se questo ti aiuta. L'esempio è per VB.NET, ma dovresti convertirlo facilmente in vb6. Spiega solo come usare l'API GetAsyncKeyState della user32.dll.
    Questa API non centra niente..

    Devi utilizzare l' API mouse_event, con la quale puoi simulare il click dei pulsanti del mouse, la cui documentazione puoi trovarla su MSDN.

    La GetAsyncKeyState serve per verificare la pressione dei tasti della tastiera..


    Ciao

  4. #4
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Originariamente inviato da MdE2005
    La GetAsyncKeyState serve per verificare la pressione dei tasti della tastiera..
    Chiedo umilmente scusa: ho invertito GetAsyncKeyState con mouse_event (che comunque era spiegata nell'articolo).
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  5. #5
    Originariamente inviato da ShaleN
    Chiedo umilmente scusa: ho invertito GetAsyncKeyState con mouse_event (che comunque era spiegata nell'articolo).
    Tranquillo..capita a tutti: certe volte confondo Windows con sistemi *BSD, C con C++, VB6 con VB.NET


    Ciao

  6. #6
    Utente bannato
    Registrato dal
    Mar 2007
    Messaggi
    190
    ciao android89
    per spostare il cursore del mouse e fare click, in modo visibile,
    puoi utilizzare questa API di windows per VisualBasic6

    codice:
    
    Da inserire in TESTA alla FORM delle funzioni mouse, o in MODULE
    
    Public Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
    Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal dwDate As Long, ByVal dwExtraInfo As Long)
    Public Type POINT_TYPE
    X As Long
    Y As Long
    End Type
    codice:
    
    Da inserire nella funzione che intercetta, sposta e esegue il mouse
    Dim X, Y
    Dim P As POINT_TYPE
    
    X = GetCursorPos(P) 'estrae la posizione attuale del mouse
    rem inserisci la nuova posizione del mouse
    X = InputBox("inserire valore X del mouse; corrente:" + Str(P.X), "VALORE NUMERICO X MOUSE")
    Y = InputBox("inserire valore Y del mouse; corrente:" + Str(P.Y), "VALORE NUMERICO Y MOUSE")
    
    rem posizione il mouse nella nuova posizione
    SetCursorPos X, Y 
    
    Rem simulazione click mouse (sinistra centro destra)
    mouse_event &H2 Or &H4, 0, 0, 0, 0 'vbkeylbutton
    mouse_event &H20 Or &H40, 0, 0, 0, 0 'vbkeymbutton
    mouse_event &H8 Or &H10, 0, 0, 0, 0  'vbkeyrbutton


    Spero di esserti stato utile, per spostare il mouse e simulare il CLICK

    Al posto di X,Y puoi inserire i valori, numerici, delle nuove coordinate per il mouse

  7. #7
    Originariamente inviato da tuono_2000
    ciao android89
    per spostare il cursore del mouse e fare click, in modo visibile,
    puoi utilizzare questa API di windows per VisualBasic6

    codice:
    
    Da inserire in TESTA alla FORM delle funzioni mouse, o in MODULE
    
    Public Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
    Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal dwDate As Long, ByVal dwExtraInfo As Long)
    Public Type POINT_TYPE
    X As Long
    Y As Long
    End Type
    codice:
    
    Da inserire nella funzione che intercetta, sposta e esegue il mouse
    Dim X, Y
    Dim P As POINT_TYPE
    
    X = GetCursorPos(P) 'estrae la posizione attuale del mouse
    rem inserisci la nuova posizione del mouse
    X = InputBox("inserire valore X del mouse; corrente:" + Str(P.X), "VALORE NUMERICO X MOUSE")
    Y = InputBox("inserire valore Y del mouse; corrente:" + Str(P.Y), "VALORE NUMERICO Y MOUSE")
    
    rem posizione il mouse nella nuova posizione
    SetCursorPos X, Y 
    
    Rem simulazione click mouse (sinistra centro destra)
    mouse_event &H2 Or &H4, 0, 0, 0, 0 'vbkeylbutton
    mouse_event &H20 Or &H40, 0, 0, 0, 0 'vbkeymbutton
    mouse_event &H8 Or &H10, 0, 0, 0, 0  'vbkeyrbutton


    Spero di esserti stato utile, per spostare il mouse e simulare il CLICK

    Al posto di X,Y puoi inserire i valori, numerici, delle nuove coordinate per il mouse

    Ciao tuono, ho inserito nel modulo del progetto le dichiarazioni ecc come hai detto tu,
    poi ho inserito il resto dentro l'evento click di un pulsante ma mi da un erroe:

    codice:
    Private Sub Command3_Click()
    Dim X, Y
    Dim P As POINT_TYPE
    
    X = GetCursorPos(P ) 'estrae la posizione attuale del mouse
    Rem inserisci la nuova posizione del mouse
    X = InputBox("inserire valore X del mouse; corrente:" + Str(P.X), "VALORE NUMERICO X MOUSE")
    Y = InputBox("inserire valore Y del mouse; corrente:" + Str(P.Y), "VALORE NUMERICO Y MOUSE")
    
    Rem posizione il mouse nella nuova posizione
    SetCursorPos X, Y
    
    Rem simulazione click mouse (sinistra centro destra)
    mouse_event &H2 Or &H4, 0, 0, 0, 0 'vbkeylbutton
    mouse_event &H20 Or &H40, 0, 0, 0, 0 'vbkeymbutton
    mouse_event &H8 Or &H10, 0, 0, 0, 0  'vbkeyrbutton
    End Sub
    l'errore che da è il seguente :" tipo non corrispondente per l'argomento byref" e si posiziona sulla p che ho colorato di arancione...

  8. #8
    Utente bannato
    Registrato dal
    Mar 2007
    Messaggi
    190
    ciao android89

    crea, nel tuo Progetto, un "contenitore" MODULE
    e inserisci SOLO il primo pezzo del codice

    poi nella tua FORM ma all'interno della "funzione di intercettazione"
    inserisci SOLO il secondo pezzo.

    L'errore che indichi è che non hai fatto il
    MODULE con il Public Type POINT_TYPE


  9. #9

    [vb6] "convenzione di chiamata dll non valida"

    Ciao ragazzi con il seguente codice vb mi resituisce l'errore e non capisco cosa non gli piace

    codice:
    Private Sub Command3_Click()
    
    rapx = Form3.Width / VidWidth
    rapy = Form3.Height / VidHeight
    
        stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
        stringa = stringa & "C:\Users\ale\Desktop\db\mappatura.mdb"
        
        Set cn = New adodb.Connection
        Set rs = New adodb.Recordset
        
        cn.Open stringa
        rs.Open "SELECT * FROM coordinate ", cn, 1
        num = rs("Numero")
        cx = rs("x")
        cy = rs("y")
        
        
        While rs.EOF = False
            i = 1
            Timer1.Interval = 0
                GetCursorPos pp
                SetCursorPos pp.X, pp.Y
            
                pp.X = rs("x") / rapx + 7
                pp.Y = rs("y") / rapx + 28
                SetCursorPos pp.X, pp.Y
                DoEvents
                mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, longA, extrainfo 
                
                mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, longA, extrainfo
                rs.MoveNext
           For i = 1 To 65500
            Timer1.Interval = i
           Next
            
        Wend
    ens sub
    nell modulo ho inserito questo.
    codice:
    Public Declare Function mouse_event Lib "user32" (ByVal dwFlags As Long, _
    ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
    Const MOUSEEVENTF_LEFTDOWN = &H2
    Const MOUSEEVENTF_LEFTUP = &H4
    grazie in anticipo

  10. #10
    Utente bannato
    Registrato dal
    Mar 2007
    Messaggi
    190
    ciao android89

    da quello che ho capito del tuo errore
    dipende da cosa metti nella variabili da te inventare:
    longA, extrainfo
    per funzionare devo essere entrambi a ZERO

    e la variabile MOUSEEVENTF_LEFTDOWN che valore ha dei TRE possibili?

    scusa se ti rispondo dopo MOLTO tempo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.