Mahdi_Delphi
پنج شنبه 20 مهر 1385, 20:51 عصر
سلام
من یه برنامه برای ثبت عکس از مانیتور نوشتم که هر n ثانیه یکبار یک عکس BMP از دسکتاپ گرفته و روی هارد ذخیره کنه.البته فقط mعکس قابل ذخیره سازی هست یعنی وقتی تعداد عکس ها از m بیشتر شد جای عکس های قبلی ذخیره میشه و اونها از بین میرن.
ولی با یک مشکل مواجه شدم. بعد چند ساعت که برنامه کار میکنه بعد خطا میده و هر n ثانیه یک پیغام خطا به شکل زیر ظاهر میشه:
http://img.majidonline.com/pic/44756/RunTime_Error.JPG
اسم برنامه Services هست.
از این تابع هم برای گرفتن اسکرین شات استفاده میکنم:
function GetScreenShot: TBitmap;
var
Desktop: HDC;
c:Tcanvas;
h:Thandle;
begin
Result := TBitmap.Create;
c:=Tcanvas.Create;
h:=findwindow('progman',nil);
if(h <> 0)then
c.Handle:=h;
Desktop := GetDC(h);
try
try
Result.PixelFormat := pf24bit;
Result.Width := Screen.Width;
Result.Height :=Screen.Height;
BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, Desktop, 0, 0, SRCCOPY);
Result.Modified := True;
finally
ReleaseDC( h , Desktop);
end;
except
Result.Free;
Result := nil;
end;
end;
به نظر شما مشکل از کجاست ؟
ممنون
من یه برنامه برای ثبت عکس از مانیتور نوشتم که هر n ثانیه یکبار یک عکس BMP از دسکتاپ گرفته و روی هارد ذخیره کنه.البته فقط mعکس قابل ذخیره سازی هست یعنی وقتی تعداد عکس ها از m بیشتر شد جای عکس های قبلی ذخیره میشه و اونها از بین میرن.
ولی با یک مشکل مواجه شدم. بعد چند ساعت که برنامه کار میکنه بعد خطا میده و هر n ثانیه یک پیغام خطا به شکل زیر ظاهر میشه:
http://img.majidonline.com/pic/44756/RunTime_Error.JPG
اسم برنامه Services هست.
از این تابع هم برای گرفتن اسکرین شات استفاده میکنم:
function GetScreenShot: TBitmap;
var
Desktop: HDC;
c:Tcanvas;
h:Thandle;
begin
Result := TBitmap.Create;
c:=Tcanvas.Create;
h:=findwindow('progman',nil);
if(h <> 0)then
c.Handle:=h;
Desktop := GetDC(h);
try
try
Result.PixelFormat := pf24bit;
Result.Width := Screen.Width;
Result.Height :=Screen.Height;
BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, Desktop, 0, 0, SRCCOPY);
Result.Modified := True;
finally
ReleaseDC( h , Desktop);
end;
except
Result.Free;
Result := nil;
end;
end;
به نظر شما مشکل از کجاست ؟
ممنون