Hallo,
ich hoffe ich bin in diesem Unterforum richtig mit meiner Frage.
Folgendes Problem:
Ich habe ein Kleines Programm geschrieben, dass ein externes fernsteuert.
Realisiert habe ich das über TTimer. Allerdings stürzt das Programm nach ca. einer Stunde laufzeit ab und
erzeugt einen OutofResource Fehler.
Ich habe mir im Taskmanager das Programm angeschaut und festgestellt, dass der dem Programm zugwiesenen Speicher stetig steigt.
Im folgenden ein Codeausschnitt. Ich hoffe ihr könnt mir weiterhelfen.
Die Funktion mit der ich veränderungen im zu kontrollierenden Programm wahrnehme.
Delphi-Quellcode:
function DesktopColor(const x,y: integer): TColor;
var
c:TCanvas;
begin
c:=TCanvas.create;
c.handle:=GetWindowDC(GetDesktopWindow);
result:=getpixel(c.handle,x,y);
c.free;
end;
Delphi-Quellcode:
procedure TForm1.healerTimer(Sender: TObject);
begin
if start=true then
begin
try
begin
if ((desktopcolor(112,53)<>stringtocolor('$0020790B')))then
begin
sleep(800);
if desktopcolor(141,50)<>stringtocolor('$0039B648')then
begin
sendkeys('%ß',true);
sleep(1700);
sendkeys('5',true);
sleep(2000);
sendkeys('6',true);
sleep(1700);
sendkeys('7',true);
sleep(2000);
end
else begin sleep (2000); end;
end;
Ansonsten habe ich noch ein paar weitere Timer, die sich nacheinander aufrufen.
Meine vermutung ist, dass es irgendwas mit dem handel aus der DesktopColor Funktion zu tun hat. Habt ihr eine Idee?
LG.