FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas con TTimer en captura
Hola, cómo están, yo acá molestando otra vez.
Mi consulta es la siguiente: Tengo un mini programita que va capturando la pantalla, en ese Bitmap tomo puntos con colores y puntos de coordenadas de ratón X e Y. Hasta ahí todo bien, lo sé hacer y me sale excelente. Mi problema es que todo eso lo tengo en un TTimer en 200 milisegundos y que no me deja cerrar el programa. Por más que intento con lo que intento no puedo. El programa se queda "tildado" y no hay manera de que cierre. El objetivo del programa es ir haciendo click en ciertos parámetros true false en las coordenadas indicadas. Les paso lo que tengo dentro del timer a ver si pueden ayudarme. Gracias!! procedure TFrmDiamondBot.JvTimer1Timer(Sender: TObject); var i, j, h: IntegeR; Pts: Array [0 .. 90] of TPoint; Cl: Array [0 .. 90] of TColor; BitMap: TBitmap; Begin while ESCPRESS = False do begin //SetForeGroundWindow(Application.Handle); BitMap := TBitmap.Create; CapturarPantalla(0, 0, Screen.width, Screen.height, BitMap); h := 0; for i := 0 to 8 do // Cargamos los valores de los puntos x e y del mouse a clickar y los colores for j := 0 to 9 do begin Pts[h].X := punto.X + 79 + (j * 40) + 10; Pts[h].Y := punto.Y + 130 + (i * 40) + 10; Cl[h] := GetPixel(BitMap.Canvas.Handle, Pts[h].X, Pts[h].Y); Inc(h); end; for j := 0 to FrmDiamondBot.ControlCount - 1 do for i := 1 to 90 do Begin (FrmDiamondBot.Findcomponent('Shape' + IntToStr(i)) as TShape) // Pintamos los Shapes con los colores .Brush.Color := Cl[i - 1]; end; for i := 0 to 89 do if (not SimilarColors(Cl[i], rgb($33, $08, $04), 100)) { Marrón } AND (SimilarColors(Cl[i],rgb($DB, $F2, $FF),50)) then begin ClickRaton(Pts[i].X, Pts[i].Y); Delay(1000); end; for i := 0 to 89 do begin if ((not SimilarColors(Cl[i], rgb($33, $08, $04), 100)) { Marrón } AND (not SimilarColors(Cl[i], rgb($FF, $F3, $F0), 100)) AND (Cl[i] <> rgb($62, $62, $62))) AND (SimilarColors(Cl[i], rgb($B2, $7D, $FE), 0)) { Violeta } OR (SimilarColors(Cl[i], rgb($14, $72, $FD), 0)) { Azul } OR (SimilarColors(Cl[i], rgb($41, $B6, $16), 0)) { Verde } OR (SimilarColors(Cl[i], rgb($EA, $09, $23), 0)) { Rojo } OR (SimilarColors(Cl[i], rgb($BD, $52, $10), 0)) { Amarillo } then ClickRaton(Pts[i].X, Pts[i].Y); if ESCPRESS = True then Break; end; for i := 0 to 7 do begin if (not SimilarColors(Cl[i], rgb($33, $08, $04), 60)) AND (not SimilarColors(Cl[i], rgb($FF, $F3, $F0), 100)) AND (not SimilarColors(Cl[i], rgb($62,$62,$62),60)) then Begin if ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 2], 30))) OR // XXX ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 20], 30))) OR // X // X // X ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // X // XX ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // XX then // X ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 10], 30))) // XX // X then begin // SetCursorPos(Coordenadas.x,Coordenadas.y); ClickRaton(Pts[i].X, Pts[i].Y); if ESCPRESS = True then Break; //Form1.SetFocus; Delay(850); end; end; end; for i := 10 to 17 do begin if (not SimilarColors(Cl[i], rgb($33, $08, $04), 60)) AND (not SimilarColors(Cl[i], rgb($FF, $F3, $F0), 100)) AND (not SimilarColors(Cl[i], rgb($62,$62,$62),60)) then Begin if ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 2], 30))) OR // XXX ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 20], 30))) OR // X // X // X ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // X // XX ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // XX then // X ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 10], 30))) // XX // X then begin // SetCursorPos(Coordenadas.x,Coordenadas.y); ClickRaton(Pts[i].X, Pts[i].Y); if ESCPRESS = True then Break; //Form1.SetFocus; Delay(850); end; end; end; for i := 20 to 27 do begin if (not SimilarColors(Cl[i], rgb($33, $08, $04), 60)) AND (not SimilarColors(Cl[i], rgb($FF, $F3, $F0), 100)) AND (not SimilarColors(Cl[i], rgb($62,$62,$62),60)) then Begin if ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 2], 30))) OR // XXX ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 20], 30))) OR // X // X // X ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // X // XX ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // XX then // X ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 10], 30))) // XX // X then begin // SetCursorPos(Coordenadas.x,Coordenadas.y); ClickRaton(Pts[i].X, Pts[i].Y); if ESCPRESS = True then Break; //Form1.SetFocus; Delay(850); end; end; end; for i := 30 to 37 do begin if (not SimilarColors(Cl[i], rgb($33, $08, $04), 60)) AND (not SimilarColors(Cl[i], rgb($FF, $F3, $F0), 100)) AND (not SimilarColors(Cl[i], rgb($62,$62,$62),60)) then Begin if ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 2], 30))) OR // XXX ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 20], 30))) OR // X // X // X ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // X // XX ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // XX then // X ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 10], 30))) // XX // X then begin // SetCursorPos(Coordenadas.x,Coordenadas.y); ClickRaton(Pts[i].X, Pts[i].Y); if ESCPRESS = True then Break; //Form1.SetFocus; Delay(850); end; end; end; for i := 40 to 47 do begin if (not SimilarColors(Cl[i], rgb($33, $08, $04), 60)) AND (not SimilarColors(Cl[i], rgb($FF, $F3, $F0), 100)) AND (not SimilarColors(Cl[i], rgb($62,$62,$62),60)) then Begin if ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 2], 30))) OR // XXX ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 20], 30))) OR // X // X // X ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // X // XX ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // XX then // X ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 10], 30))) // XX // X then begin // SetCursorPos(Coordenadas.x,Coordenadas.y); ClickRaton(Pts[i].X, Pts[i].Y); if ESCPRESS = True then Break; //Form1.SetFocus; Delay(850); end; end; end; for i := 50 to 57 do begin if (not SimilarColors(Cl[i], rgb($33, $08, $04), 60)) AND (not SimilarColors(Cl[i], rgb($FF, $F3, $F0), 100)) AND (not SimilarColors(Cl[i], rgb($62,$62,$62),60)) then Begin if ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 2], 30))) OR // XXX ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 20], 30))) OR // X // X // X ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // X // XX ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // XX then // X ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 10], 30))) // XX // X then begin // SetCursorPos(Coordenadas.x,Coordenadas.y); ClickRaton(Pts[i].X, Pts[i].Y); if ESCPRESS = True then Break; //Form1.SetFocus; Delay(850); end; end; end; for i := 60 to 67 do begin if (not SimilarColors(Cl[i], rgb($33, $08, $04), 60)) AND (not SimilarColors(Cl[i], rgb($FF, $F3, $F0), 100)) AND (not SimilarColors(Cl[i], rgb($62,$62,$62),60)) then Begin if ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 2], 30))) OR // XXX ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 20], 30))) OR // X // X // X ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // X // XX ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // XX then // X ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 10], 30))) // XX // X then begin // SetCursorPos(Coordenadas.x,Coordenadas.y); ClickRaton(Pts[i].X, Pts[i].Y); if ESCPRESS = True then Break; //Form1.SetFocus; Delay(850); end; end; end; for i := 70 to 77 do begin if (not SimilarColors(Cl[i], rgb($33, $08, $04), 60)) AND (not SimilarColors(Cl[i], rgb($FF, $F3, $F0), 100)) AND (not SimilarColors(Cl[i], rgb($62,$62,$62),60)) then Begin if ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 2], 30))) OR // XXX ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 20], 30))) OR // X // X // X ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // X // XX ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // XX then // X ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 10], 30))) // XX // X then begin // SetCursorPos(Coordenadas.x,Coordenadas.y); ClickRaton(Pts[i].X, Pts[i].Y); if ESCPRESS = True then Break; // Form1.SetFocus; Delay(850); end; end; end; for i := 80 to 87 do begin if (not SimilarColors(Cl[i], rgb($33, $08, $04), 60)) AND (not SimilarColors(Cl[i], rgb($FF, $F3, $F0), 100)) AND (not SimilarColors(Cl[i], rgb($62,$62,$62),60)) then Begin if ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 2], 30))) OR // XXX ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 20], 30))) OR // X // X // X ((SimilarColors(Cl[i], Cl[i + 10], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // X // XX ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 11], 30))) OR // XX then // X ((SimilarColors(Cl[i], Cl[i + 1], 30)) AND (SimilarColors(Cl[i], Cl[i + 10], 30))) // XX // X then begin // SetCursorPos(Coordenadas.x,Coordenadas.y); ClickRaton(Pts[i].X, Pts[i].Y); if ESCPRESS = True then Break; // Form1.SetFocus; Delay(850); end; end; end; // BitMap.SaveToFile(ExtractFilePath(ParamStr(0)) + 'Temp\salvado.bmp'); BitMap.Free; end; |
#2
|
||||
|
||||
Hola MaxiDucoli.
Por favor cuando incluyas código en tus mensaje utiliza TAG's. Te pongo una imágen que explica el uso: Saludos y gracias por tu colaboración.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problemas con la creación de TTimer es tiempo de ejecución | vejerf | OOP | 3 | 14-04-2008 16:26:14 |
Problemas con TTimer | RoyTan | Varios | 4 | 24-01-2008 02:10:12 |
Problemas con TTimer | SoulSoldier | Varios | 1 | 28-04-2006 23:51:25 |
Problemas con Ttimer ¡¡¡ | elbilla | Varios | 2 | 21-09-2004 10:12:41 |
Manejo de un Ttimer | miguel_fr | OOP | 3 | 21-06-2004 20:25:26 |
|