Einzelnen Beitrag anzeigen

Periander

Registriert seit: 27. Sep 2006
16 Beiträge
 
#1

TTimer Speicherproblem (EOutOfResource Error)

  Alt 5. Apr 2009, 13:50
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.
  Mit Zitat antworten Zitat