Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[vb2008] selezionare testo in qualsiasi punto dello schermo

1 view
Skip to first unread message

phil

unread,
Nov 12, 2009, 1:42:48 PM11/12/09
to
Vorrei "salvare" il contenuto di una chat online, e quindi esterna al mio
programma.

Dato che la chat non � inserita in un controllo standard, non posso leggere
il testo con WM_GETTEXT, per� posso manualmente cliccare su una riga della
chat stessa (si seleziona automaticamente tutta la riga) e premere Ctrl+C
per salvarla negli appunti.... potrebbe essere un sistema di salvataggio, mi
sono detto

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 e poi andandoli a prendere dalla Clipboard.

Per selezionare la riga della chat ho inserito un Timer (attualmente �
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, il mouse � incontrollabile (ovviamente, visto che da codice
effettua continui click).

Quindi a conti fatti dovrei riuscire a cliccare in Pos1/Pos2 come se fosse
un thread a parte, lasciando assolutamente libera la gestione del mouse
"vero"

Cio� mi servirebbe una API che selezioni del testo ovunque sullo schermo ma
senza utilizzare alcun comando relativo al mouse

E' fattibile?


0 new messages