fabriziorocca (Normal User)
Guru
Messaggi: 1162
Iscritto: 22/03/2009
|
Sono alla presa con un programma particolare... e mi servirebbe un aiuto in questo.
Infatti stò creando un bottone che quando viene premuto praticamente deve fare un click su precise coordinate (x=16 e Y=34) di un elemento (in questo caso un webbrowser).
Ho già provato dei codici a caso ma non ci sono riuscito.
Qualcuno saprebbe darmi una mano ?
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2298
Iscritto: 04/05/2008
|
serve anche l'altezza e la larghezza del controllo per essere piu precisi.
Codice sorgente - presumibilmente C++ |
int MouseX; //cordinate mouseX; int MouseY; //cordinate mousey; int Width = 100; //larghezza controllo int Height = 20; //altezza controllo int CX; //cordinate X controllo int CY; //cordinate Y Controllo //al click if(MouseX > CX && MouseX < Width && MouseY > CY && MouseY < Height) { //evento click nelle cordinate del controllo }
|
|
|
fabriziorocca (Normal User)
Guru
Messaggi: 1162
Iscritto: 22/03/2009
|
Non funziona, ho provato a sostituire a "Mouse" il nome dell'elemento, e ho messo le giuste coordinate, poi non ho capito cosa devo mettere in "//evento click nelle cordinate del controllo"
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2298
Iscritto: 04/05/2008
|
Ti assicuro io che funziona.
questo e un semplice esempio dell'algoritmo che ho usato
per cliccare su ogni quadratino di una griglia disegnata in directX.
quindi sono piu o meno sui 1280 quadratini 32x32 posizionate in aree diverse.
questa parte
Codice sorgente - presumibilmente C# / VB.NET |
if(MouseX > CX && MouseX < Width && MouseY > CY && MouseY < Height) {
//evento click nelle cordinate del controllo
}
|
Guarda l'immagine.
Indica che quando il mouseX e > del punto di partenza del controllo ma NON supera la larghezza, uguale per l'altezza.. esegue quella funzione.
esempio
ControlloX = 10
ControlloY = 10
ControlloW = 100 (largezza)
ControlloH = 30 (altezza)
Mouse
Mx = 80 ( posizione del mouse X e a 80
My = 150 (posizione del mouse Y e a 150
se ora provassi a cliccare non succederebbe nulla perchè Y del mouse e fuori dalla portata del controllo supera i 30 che sarebbe l'altezza del controllo
mentre rientrebbe nella larghezza,
per farlo funzionare quella funzione, non sò.
devi saperlo tu dove applicarla.
di solito viene inserita in un ciclo continuo. per verificare se viene cliccato in quell'area.
|
|
Alfonso (Ex-Member)
Guru
Messaggi: 688
Iscritto: 30/09/2009
|
|
|
fabriziorocca (Normal User)
Guru
Messaggi: 1162
Iscritto: 22/03/2009
|
Sarò io che sono tonto ma proprio non ci riesco.
Praticamente si tratta di far click nelle coordinate x=8 Y=10 di un webbrowser che si trova nell'angolo in alto a sinistra della form, ho già provato con il codice ma mi sottolinea degli errori (con colore blu)
|
|
walker93 (Member)
Expert
Messaggi: 460
Iscritto: 31/01/2010
|
devi ottenere le coordinate relative allo schermo come nel link di alfonso
poi ti basta fare:
Codice sorgente - presumibilmente C# / VB.NET |
'posiziono cursore
me.cursor.position = new point(coordinataX,coordinataY) 'oppure metti un punto
'per simulare pressione
SendKeys.Send(Chr(Keys.LButton))
|
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Coordinate x e y di Cursor.Position si riferiscono alle coordinate assolute (misurate sullo schermo intero). Per cliccare il punto (8, 10) del WebBrowser devi posizionare il mouse nel punto WebBrowser.PointToScreen(New Point(8, 10)).
|
|
fabriziorocca (Normal User)
Guru
Messaggi: 1162
Iscritto: 22/03/2009
|
Una cosa che non capisco è questo "schermo intero" che continuate a sottolineare, intendete la dimensione totale dello schermo, o della form ?
|
|