Newsgroup: it.comp.lang.delphi
Titolo: Come se cliccassi il mouse....

avrei bisogno di sapere come si fa a inviare un click sinistro del
mouse....vorrei insomma poter poter impsotare il comando: "clicca col
sinistro" che deve interagire proprio come se il click fosse venuto dal
mouse....
Ho cercato in Tmouse ma ci sono solo istruzioni per "leggere" se l'avento
avviene e non per farlo avvenire....
idee?
Grazie.
--
Giulio Pipitone (
www.fighters4web.com
 )
#sito per la lotta agli abusi in rete#

 mouse....
ci sono diversi metodi.Uno puo essere la sendmessage con evento
wm_lbutton.... (non ricordo bene i nomi dei messaggi) oppure l'api
mouse_event che manda un click alla finestra attiva..
ciao

Se crei una funzione per il cliock del mouse (ad esempio quando premi un
pulsante), poi dopo o ci clicchi sopra e si genera l'evento e parte la
funzione oppure la chiami tu via codice come una normalissima funzione
--
_________________________________
Edmondo Di Tucci 
snar...@tin.it
www.powernetsi.it
 
edm...@powernetsi.it

 oppure l'api mouse_event che manda un click alla finestra attiva..
corretto. Questa, forse, è migliore come soluzione.
--
- Carlo -
c.b...@libero.it

 SendMessage().
non è assolutamente vero.
la sendmessage aspetta che venga processato l'evento e la postmessage
no.Dipende dal programmatore e dall'uso che ne vuole fare.
bye

 no.Dipende dal programmatore e dall'uso che ne vuole fare.
Conosco la differenza tra SendMessage() e PostMessage(). Se rileggi il testo
che hai quotato trovi un "andrebbe usata PostMessage() e non la
SendMessage()", che non significa PostMessage() è giusta e SendMessage() no.
Leggi la documentazione di WM_LBUTTONDOWN e troverai che per emulare
correttamente la situazione generata da un clic del mouse (come da Subject)
dovresti utilizzare la funzione da me suggerita.
"The WM_LBUTTONDOWN message is posted when the user presses the left mouse
button ..."
Saluti


 dovresti utilizzare la funzione da me suggerita.
veramente ho letto la documentazione e non ho trovato nulla di quello che
dici...
(forse abbiamo documentazioni diverse).L'unica differenza tra le due api č
quella che abbiamo detto,ma l'usare una o l'altra dipende solo dalle
esigenze del programmatore.
Cmq va bene cosě espresse le due opinioni saranno valutate da chi ha posto
la domanda :)
ciao

Ciao a tutti,
Se permettete un'opinione, io non sono d'accordo con alcuno dei due :))))
O meglio, sono piů d'accordo con Carlo che con Franco, anche se un click di
mouse č composto da DUE messaggi e non uno.
Uno č, come detto, WM_LButtonDown e l'altro č WM:_LButtonUp.
Mandandoli in consecuzione con PostMessage, si dovrebbe ottenere l'effetto
voluto( non testato ).
Secondo la documentazione, infatti, WM_LButtonDown viene inviato quando il
tasto sinistro del mouse viene PREMUTO e WM_LButtonUp quando il tasto
sinistro del mouse viene RILASCIATO. E queste due operazioni INSIEME
costituiscono, appunto, un CLICK :)
Almeno, io la vedo cosě :)))
Enjoy!!!!
Andrea

 Edmondo Di Tucci 
snar...@tin.it
Andrea


scusa ma forse non hai capito ..o forse non mi sono spiegato (ma carlo ha
capito)
lo spiego meglio a te....
La questione  in primo luogo è "cosa devi gestire ".Puo essere utile
generare un solo evento e poi agire dopo lo stesso oppure non interessare.Se
quello che viene generato ,con  l'evento WM_LButtonDown non interessa puoi
spedirlo ocn postmessage e subito dopo il WM:_LButtonUp.Però puo succedere
che serva gestire il WM_LButtonDown subito dopo che è stato elaborato dal
controllo ricevente.
Ti faccio un piccolo esempio :  ammettiamo di voler spedire un clik ad una
applicazione che gestisca 2 operazioni ,una sul messaggio di WM_LButtonDown
ed una su WM_LButtonUp . Se tu mandassi in sequenza i messaggi con la
postmessage non potresti regolare il tuo programma per gestire l'esecuzione
del codice del programma o controllo che ha ricevuto il messaggio.Non è
detto che il tutto ti serva ,ma potrebbe esserti utile agire subito dopo
l'elaborazione dell'evento e questo lo puoi fare solo ocn la sendmessage
(aspetta l'elaborazione dell'evento).Chiaramente questo è un esempio che ti
serve raramente  ma rende l'idea del perchè è meglio usare l'una o
l'altra.Che poi a chi ha posto la domanda non interessi nulla di tutto
questo e che gli basti un semplice click banale e stupido puo usare quello
che vuole .
Gli abbiamo fatto capire che esistono diverse soluzioni...
ciao

 la domanda :)
Chi ha posto la domanda...si č perso in questa questione...ma siccome
entrambi avete riconosciuto che forse ricorrere al Mouse_event delle API eč
meglio.....taglio al testa al toro e soluziono cosě...:-D
Grazie, ciao.
--
Giulio Pipitone (
www.FIGHTERS4WEB.COM
)
#mirror italiano ufficiale 
http://spam.abuse.net#

 SendMessage().
Falso, ovviamente.
procedure TForm1.Button1Click(Sender: TObject);
begin
  SendMessage(Button2.Handle, WM_LBUTTONDOWN, 0, 0);
  SendMessage(Button2.Handle, WM_LBUTTONUP, 0, 0);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage('Premuto !');
end;
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 dici...
Ma come no? E' in prima linea!
Te la riporto :"The WM_LBUTTONDOWN message is posted when the user presses
the left mouse button"
come puoi leggere è come dico io! :)


 end;
Bella dimostrazione, bravo! Peccato che io abbia detto che "andrebbe
utilizzato", e non che PostMessage() va e SendMessage() no. Leggi l'altro
mio messaggio e prova a sostituire al tuo bellissimo programma le chiamate
SendMessage() con quelle PostMessage() e magicamente funzionerà comunque.
Inoltre se prima di parlare ti documentassi scopriresti che è la stessa
documentazione a dire che andrebbe utilizzata PostMessage(). Oltretutto
SendMessage() non andrebbe MAI utilizzato, per non rendere la propria
applicazione dipendente dagli stalli di altri processi
"The WM_LBUTTONDOWN message is posted when the user presses the left mouse
button"
Dai, ora voglio vedere a cosa ti aggrappi, fenomeno


 applicazione dipendente dagli stalli di altri processi
SendMessage puo' essere utilizzato benissimo, ribadisco, non
dire idiozie.  Ti diro' di piu'.  SendMessage e i suoi derivati
sono da utilizzare proprio perche' ti assicurano che il messaggio
venga messo nella coda del thread che lo elaborera' nell'altro
processo (posso usare un SendMessageTimeout o un SendMessage in
un thread separato).  Questa sicurezza PostMessage non la 
garantisce.  Eh, Bertuccini, se solo studiassi di piu' ;)


 come puoi leggere č come dico io! :)
No, non lo e' :)
Ma se vuoi convincerti di questo, fa pure :)


 Ma se vuoi convincerti di questo, fa pure :)
Rimani pure della tua idea sbagliata, non ci tengo a farti capire le cose


 come puoi leggere è come dico io! :)
non direi :)
però basta dai sono stupidate :))
ciao

 "the WM_LBUTTONDOWN message is posted ... ": Quindi PostMessage()
sulla documentazione intende il sistema....
non c'è scritto che devi per forza usare la postmessage...
ciao

 prima linea della documentazione del messaggio:
La differenza tra te e il resto del mondo e' che tu leggi
la documentazione, il resto del mondo, invece, la comprende.
Che Windows si comporti in un certo modo e che sia scritto
nella documentazione, te l'ho gia' ricordato io e ti ho gia'
ricordato che il fatto che il sistema si comporti in un certo
modo non vuol affatto dire che le applicazioni debbano (o sia
meglio lo facciano) comportarsi allo stesso modo.
Se credi che cio' che sia scritto nella documentazione avalli
cio' su cui (stupidamente) continui ad insistere e cioe' che 
andrebbe usata PostMessage, anziche' SendMessage, allora hai 
preso una cantonata bella grossa.
Mi spiace, hai capito male.
Tra le parole riportate nella documentazione SDK, non c'e' 
controindicazione nell'utilizzo di SendMessage, punto e basta,
quindi non tirare fuori sillogismi che non stanno ne' in cielo,
ne' in terra.  Per far crollare la tua falsa supposizione basta
poco: vai su google e cerca "SendMessage WM_LBUTTONDOWN", non
l'ho fatto personalmente, ma sono sicuro che verra' fuori qualche
buon migliaio di pagine web.  Ora, per cortesia, evita di
fomentare inutili polemiche basate sulle tue infondate teorie e
torna a studiarti l'SDK ;)


 SendMessage e i suoi derivati
Ciccio io ho parlato di SendMessage() non dei derivati di SendMessage(). Le
idiozie continua a dirle tu.
Ora basta, resta della tua idea e piantala di rispondere. Cominci ad
infastidirmi seriamente


 però basta dai sono stupidate :))
Ognuno della sua idea, e chiudiamola qui! :)


 SendMessage(). 
Io sto parlando di SendMessage() ***E*** dei suoi derivati,
quindi impara a leggere.  Cio' che affermi da molti messaggi
a questa parte, e' falso, punto e basta.
e basta.


 cliccassi il mouse)
Occhio che scivoliiii.....


 torna a studiarti l'SDK ;)
Azz, detto da te è proprio un offesa!


 falso ti riporto quanto segue (proprio un copy-paste da Google):
ROTFL ! Patetico, senti, imbecillotto (senza offesa), smettila di 
fomentare polemiche inutili e non confondere argomenti, facendo
scaturire degli off-topic.  Ricordati una cosa importante: una
cosa e' cio' che c'e' scritto sull'SDK (anche se poi non dovesse
corrispondere a cio' che Microsoft, NON IO, e' andata a piazzare
nelle SUE routine), una cosa e' cio' che, invece, c'e' scritto
sull'SDK e TU stai cercando, invece, di farci bere.
Ribadisco: torna a studiare ;)


 Ribadisco: torna a studiare ;)
Rileggiti il messaggio sopra, uomo che capisce la documentazione


Scusate se proprio io mi intrometto...
Cari Carlo & Andrea, avete entrambi una conoscenza decisamente approfindita
dei meccenismi interni di WinSozz e molti, leggendo questo flame si saranno,
se non chiariti le idee, incuriositi al punto da andare in giro a cercare
materiale su questo argomento.
Mo, pero', da persone serie, adulte, mature e preparate che siete, non
credete sia ora di smetterla con questa polemica non precisamente
costruttiva?
Prima che finiate magari a vie di fatto "virtuali"?
Grazie&scusatemi.
AS

 Rileggiti il messaggio sopra, uomo che capisce la documentazione
ROTFL ! Io la documentazione la leggo e la comprendo, a differenza
di te, torno a ripeterti che se MS, invece, non implementa cio' che
scrive, la colpa non e' di chi legge e comprende la sua documentazione.
Ora, per cortesia, o uomo che NON capisce la documentazione, sparisci 
e rendici tutti felici ;)


 Prima che finiate magari a vie di fatto "virtuali"?
Sono curioso: quali sarebbero queste "vie di fatto virtuali" ? ;)
La polemica non e' nata con me, ma con Franco e ci si sta sforzando
di far capire all'elemento in questione che le sue sono solo 
distorsioni della realta'.  Passo e chiudo ;)


 e rendici tutti felici ;)
Ricordi quella volta che io misi il culo fuori dal finestrino, tu la faccia
e la gente ci scambio per gemelli? Senza offesa! ;)
Visto che sei un mago della programmazione te lo porgo io l'invito:
Sparisci!


 tu la faccia e la gente ci scambio per gemelli? Senza offesa! ;)
Non ricordo questo episodio specifico, ma sono sicuro che, in
parcheggi frequentati da molti maschi, sia una pratica che ti 
piace spesso fare :) ROTFL... ciao ciao...


 tu la faccia e la gente ci scambio per gemelli? Senza offesa! ;)
Non ricordo questo episodio specifico, ma sono sicuro che, in
parcheggi frequentati da molti maschi, sia una pratica che ti 
piace spesso fare :) ROTFL... ciao ciao...


 piace spesso fare :) ROTFL... ciao ciao...
Certo, ed io ho capito perchè mettevi fuori la faccia! ROTFL


 Passo e chiudo ;)
Magari: non se non puo' +....
Bye
AS

 ragione.. :)))
Uahaha... pero' devo, per correttezza, dire che ho 5 anni di box
alle spalle, categoria pesi massimi ;)



il fatto che pecchiamo tutti di poca umiltà.Spesso sui newsgroup non si
discute ma son vere sfide per dimostrare chi è più bravo :)).Con questo non
voglio tirarmi fuori dalla mischia spesso e volentieri mi ci trovo coinvolto
però è triste la cosa :))
ciao

> Mo, pero', da persone serie, adulte, mature e preparate che siete,
LOL!!! ^__^
Andreaaaa, Carlooooo, smettetela di bisticciare, andate a fare i compiti che 
domani la maestra senno' si arrabbia.
Ciriciao Gente!
Davide DG.
-- 
All resistance is futile! Prepare to be disassembled !

 alle spalle, categoria pesi massimi ;)
E dopo che ne hai prese tante ne vuoi altre? Uahah!


 costruttiva?
Hai ragione, e porgo le mie scuse per avervi fatto scaricare insulti.
L'unica cosa che noto è che Laforgia, da quando è stato corretto da me
(senza offesa, capita a tutti di sbagliare) non vede l'ora di replicare ad
ogni mio messaggio cercandone errori e alimentando polemica. Lui è libero di
esprimere la sua idea, la mia la ho detta e sono anche stanco di
flameggiare!


 però è triste la cosa :))
Hai comunque ragione, di fatto ogni tanto si verificano queste situazioni.
Io non ce l'ho con nessuno, ma credo che ci sia qualcuno che mi ha preso di
mira (non so perchè, magari sente minato il suo trono <g>) soprattutto a
seguito di qualche thread e conseguentemente reagisco in maniera un tantino
energica.
Ciao! :-)


 E dopo che ne hai prese tante ne vuoi altre? Uahah!
Mi e' bastato metterti KO ;)


 mira (non so perchè, magari sente minato il suo trono <g>
Mi spiace, ma con cio' che dici ti prendi di mira da solo <g>


 L'unica cosa che noto è che Laforgia, da quando è stato corretto da me
AHAHAAHAHAHAHAHAHAHAHAHAHA.....
