ورود

View Full Version : مشاهده Desktop دیگر کاربران با ذخیره عکس در دیتابیس



nasr
دوشنبه 30 اردیبهشت 1387, 10:30 صبح
سلام
من از طریق این کد ها از یک کامپیوتر عکس میگیرم .


procedure ScreenShot(Bild: TBitMap);
var
c: TCanvas;
r: TRect;
begin
C := TCanvas.Create;
C.Handle := GetWindowDC(GetDesktopWindow);
try
r := Rect(0, 0, Screen.Width, Screen.Height);
Bild.Width := Screen.Width;
Bild.Height := Screen.Height;
Bild.Canvas.CopyRect(r, c, r);
finally
ReleaseDC(0, c.Handle);
c.Free;
end;
end;



و با این کد در دیتابیس ذخیره می کنم.


with ADOTable1 do
begin
Edit;
ScreenShot(DBImage1.Picture.BitMap);
Post;
end;




حالا یک تایمر گذاشتم که هر 1 ثانیه یک عکس بگیره و وارد دیتابیس کنه ولی سرعت کامپیوتر را وقتی داره این کار را میکنه به شدت میاره پایین.


چکار باید بکنم؟

ممنون

m-khorsandi
دوشنبه 30 اردیبهشت 1387, 10:38 صبح
كندی مربوط به زمان عكس گرفتن هست يا ذخيره در DB؟

nasr
دوشنبه 30 اردیبهشت 1387, 10:58 صبح
ذخیره در DB

m-khorsandi
دوشنبه 30 اردیبهشت 1387, 11:06 صبح
سايز عكسی كه ميگيری رو بدست بيار، اين سايز با توجه به Screen Resolution متغير هست و زياد،
به همين خاطر هم كند ميشه.

nasr
دوشنبه 30 اردیبهشت 1387, 14:18 عصر
سايز عكسی كه ميگيری رو بدست بيار، اين سايز با توجه به Screen Resolution متغير هست و زياد،
به همين خاطر هم كند ميشه.



چطور باید این کار را بکنم؟

البته به غیر از استفاده از ImageEn

m-khorsandi
دوشنبه 30 اردیبهشت 1387, 15:44 عصر
ببين با Canvas.Brush.Bitmap.Save ميتونی ذخيره كنی و بعد سايزش رو ببينی؟

ali_abbasi22145
دوشنبه 30 اردیبهشت 1387, 16:22 عصر
با ImageEN دستورش را بلدم ولي شما نمي خواهي!
در سايت زير من يك مثال كاملا قبلا ديدم:
www.swissdelphicenter.ch