Per "salvare" e successivamente elaborare il contenuto di una chat, posso manualmente cliccare sull' ultima riga della chat stessa (si seleziona automaticamente tutta la riga) e premere Ctrl+C per salvarla negli appunti
Volendo automatizzare l' operazione, ho pensato di simulare tramite API la pressione del mouse nell' ultima riga della chat (fornendo le relative coordinate in pixel), salvando poi i dati selezionati simulando la pressione di Ctrl+C.
Iniziamo dal selezionare la riga della chat (attualmente il Timer è impostato ogni decimo di secondo, ma a regime dovrebbe essere a 1/100 di secondo):
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Int32, ByVal dx As Int32, ByVal dy As Int32, ByVal cButtons As Int32, ByVal dwExtraInfo As Int32)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
mouse_event(MOUSEEVENTF_LEFTDOWN, Pos1, Pos2, 0, 0)
mouse_event(MOUSEEVENTF_LEFTUP, Pos1, Pos2, 0, 0)
End Sub
dove Pos1 e Pos2 sono le coordinate in pixel del punto dello schermo che voglio cliccare
PROBLEMA:
Il mouse diviene ingestibile: innanzitutto ogni decimo di secondo viene simulato il click DOVE ESSO SI TROVA, e non in Pos1/Pos2, se poi, ad esempio, cerco di spostare un qualsiasi form, la cosa è infattibile.
Insomma, vorrei riuscire a cliccare in Pos1/Pos2 come se fosse un thread a parte, lasciando assolutamente libera la gestione del mouse "vero"
E' fattibile?