COORDINATE E CLICK DEL MOUSE SUL DESKTOP

di ors il
28 risposte
Buona sera a tutti,
ho provato a fare una ricerca sul web, ma non ho trovato informazioni utili su come ricevere e inviare comandi del "mouse" (posizione del cursore ed evento click) sul desktop del pc (non sul form).
Qualcuno sa dimmi come posso fare? Così da poter sapere le coordinate X,Y evento click e anche se c'è stato un evento click, e in quali coordinate.
Grazie mille

28 Risposte

  • A cosa può servire ?
  • Per la posizione del cursore potresti usare un codice simile :
    private void Form1_Load(object sender, EventArgs e)
            {
                System.Timers.Timer t = new System.Timers.Timer();
                t.Interval = 5000;
                t.AutoReset = true;
                t.Elapsed += OnTimedEvent;
                t.Enabled = true;
    
            }
    
            private void OnTimedEvent(object sender, ElapsedEventArgs e)
            {
                Point p = Cursor.Position;
                int x = p.X; ;
                int y = p.Y;
                MessageBox.Show("x" + x.ToString() + " y:" + y.ToString());           
            }
  • patel ha scritto:


    A cosa può servire ?
    Ad esempio per dei bot che giochino da soli o per spiare l'attività di un utente. Cose del genere ...
  • Perché siete così malpensanti? ,
    comunque mi serve perché, come forse ho accennato in passato, sto creando un programma per domotizzarmi casa, e sto creando un log, così so tutto quello che succede per ogni mia postazione, ed evito che vengano eseguite cose che non devono.
    gian82 provo a usare il tuo consiglio, grazie mille ,
    se qualcuno ha altri suggerimenti, sono bene accetti
  • Non è che siamo malpensanti ma quelle sono le motivazioni per questo tipo di richieste.

    Quello che hai scritto tu non è chiaro, che c'entra un log fatto in quel modo? Di che parli? Forse sei fuori strada ...
  • Comunque, per evitare perdite di tempo, specialmente quando si fa una richiesta inusuale come questa sarebbe bene spiegare in modo dettagliato il contesto
  • Come detto prima, sto domotizzando casa, ho 2 log, il primo che mi tiene traccia di tutte le comunicazione con le periferiche ( sensori di temperatura, umidità, accensioni relè ecc.. )ovviamente questo riesco a gestirlo senza alcun problema. Il secondo log che vorrei fare, è completamente diverso, siccome non tiene traccia di ciò che succede tra software e periferiche, ma tiene traccia di ciò che succede tra utente e PC.
    Il software non voglio farlo fullscreen, ma deve poter aver accesso all PC.
    Solo chi dispone di un utente potrà abbassare la finestra del software, per poter accedere al PC, ma vorrei sapere l'utente cosa fa all'interno del PC, in quale coordinate preme il mouse, in modo tale da poter evitare il click in punti sbagliati.
  • Se qualcuno può dirmi solo come posso intercettare eventi click e move mouse fuori dal software che ho fatto. ho trovato qualcosa online, ma non mi piace molto
  • Cosa hai trovato ?
  • ors ha scritto:


    vorrei sapere l'utente cosa fa all'interno del PC, in quale coordinate preme il mouse, in modo tale da poter evitare il click in punti sbagliati.
    Questo somiglia più ad un malware che ad un software legittimo.

    Non puoi loggare l'attività completa di un utente (magari anche quella della tastiera, keylogger) perché ne vìoli la privacy.
  • Anche se il software è mio? ed è per casa mia? (una cosa da amatore, senza nessun fine commerciale, o di ritorno economico?)
  • E come se mi dicessi che non posso mettere le telecamere nel mio salone, anche se non riprende persone al di fuori della mia abitazione o che inquadrano la strada
  • Comunque, patel , di dico subito cosa ho trovato
  • https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.control.pointtoscreen?redirectedfrom=MSDN&view=net-5.0#System_Windows_Forms_Control_PointToScreen_System_Drawing_Point_

    http://blogs.ugidotnet.org/idamiani/archive/2006/01/28/33813.aspx

    ma mi sembrano un pò macchinose

    metà del problema l'ho risolto(anche se non è bellissimo):
    
    dim coordinate_1 as string = ""
    dim coordinate_2 as string = ""
      Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    
        Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    
    'mouse sx
            If GetAsyncKeyState(1) <> 0 Then
             coordinate_1  = "R down at x= " & Cursor.Position.X & "  y= " & Cursor.Position.Y
            End If
    'mouse dx
            If GetAsyncKeyState(2) <> 0 Then
                coordinate_2 = "R down at x= " & Cursor.Position.X & "  y= " & Cursor.Position.Y
            End If
            Timer1.Enabled = True
    
        End Sub
    
    il problema e gestire io evento click, cioe passare evento click a delle coordinate
Devi accedere o registrarti per scrivere nel forum
28 risposte