PDA

View Full Version : عکس گرفتن با vb



s_saeed_m
پنج شنبه 16 مهر 1383, 09:45 صبح
سلام به همه دوستان
چطوری میشه با vb از صفحه نمایش عکس گرفت و ذخیره کرد؟ :shock:
اگر با vbنمیشه لطفا کد برنامه ای که این کار را میشه انجام داد رو بگین
ممنون از همه برو بچه ها :lol:

MM_Mofidi
پنج شنبه 16 مهر 1383, 11:17 صبح
قبلا مطرح شده .به کمک شبیه سازی کلید PrintScreen و dump محتویات کلیپ برد در یک فایل.

Ariyan
جمعه 17 مهر 1383, 07:47 صبح
با استفاده از تابع BitBlt هم میشه از هر پنجره یا Desktop عکس گرفت.(خیلی هم منطقی تره :wink: )

H_r_m
جمعه 17 مهر 1383, 20:13 عصر
سلام
آرین جان میشه یه کم راجع به این تابع توضیح بدی :متفکر:

mahdieh_khatibi
جمعه 17 مهر 1383, 23:02 عصر
با سلام
من هم مشتاقم راجع به این تابع بیشتر بدانم :roll:
باتشکر

Ariyan
شنبه 18 مهر 1383, 07:32 صبح
این تابع مقدار عرض و ارتفاع مشخص شده ای از پنجره ای که hDC آن را به تابع داده ایم با استفاده از آخرین پارامتر به پنجره ای که hDC آن را به تابع داده ایم کپی میکند:
برای عکس گرفتن از صفحه هم میشه از کد زیر استفاده کرد:


Option Explicit
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Sub Picture1_Paint()
Dim ScreenDC As Long
ScreenDC = GetDC(0)
BitBlt Picture1.hDC, 0, 0, Picture1.Width, Picture1.Height, ScreenDC, 0, 0, vbSrcCopy
End Sub

آخرین پارامتر نوع تصویر خروجی را مشخص میکند و میتواند مقادیر زیر باشد:
vbSrcAnd
vbSrcCopy
vbSrcErase
vbSrcInvert
vbSrcPaint

vbprogramer
دوشنبه 20 مهر 1383, 15:51 عصر
آقای مفیدی سلام
dump محتویات کلیپ برد توی یک فایل چه جورییه ؟ :?:

je_nickp
دوشنبه 20 مهر 1383, 16:43 عصر
تابع sendkeys هر کلیدی را که بخواهید فشار میدهد
می توانید با این تابع PrintُScreen را فشار دهید (اطلاعات دقیق را از msdn بگیرید)
بعد با متد clipboard.getdata تصویر را در اختیار داشته باشید(فرمت تصویری که از صفحه گرفتید bmp است.)
با تابع savepicture هم می توانید تصویر را ضبط کنید.

vbprogramer
سه شنبه 21 مهر 1383, 07:45 صبح
آقا خیلی از جوابتون ممنون ولی کد کلید printscreen چنده؟ و این تابع sendkeys چه جوری کار میکنه ؟ اگه یک مثال دارید می تونید بفرستید ؟ :متفکر:

Ariyan
جمعه 24 مهر 1383, 07:32 صبح
آقا تابع Sendkeys در VB قابلیت شبیهسازی Print Screen رو نداره اگه میخواهید امتحان کنید : :shock:

Private Const VK_SNAPSHOT = &H2C

این قابلیت برای Net. است. :گیج:

je_nickp
دوشنبه 27 مهر 1383, 19:13 عصر
با عرض پوزش جناب vbprogramer که دیر جواب میدم.
در ضمیمه ی این جواب متنی که در msdn پیدا کردم و مثال msdn رو گذاشتم .
راستی شما با object browser می تونید تمام توابع داخلی vb رو ببینید. برای دست رسی به object browser روی قسمت کد vb راست کلیک کرده و از منوی آمده object browser را انتخاب کنید.
------------------------------

آقا تابع Sendkeys در VB قابلیت شبیهسازی Print Screen رو نداره
آقای Ariyan می شه: با رشته ی "{PRTSC}" ولی باید به بزرگی و کوچیکی حروف دقت کرد.

vbprogramer
سه شنبه 28 مهر 1383, 07:59 صبح
آقا از پاسختون خیلی ممنون :تشویق:
ولی برای {PRTSC} کار نکرد :گیج:
چه جوری یه ؟

je_nickp
شنبه 02 آبان 1383, 16:21 عصر
دوباره :sorry:
چرا کار نمی کنه نمی دونم :متفکر: من متن msdn را نوشتم، برین یقه ی microsoft رو بگیرید که ما رو اغفال کرد!

VG1234
چهارشنبه 30 فروردین 1391, 01:51 صبح
به نام خدا
===========
بفرمایید این هم سورس عکس برداری از دسکتاپ فقط زحمت ذخیره سازیشو خودت بکش کار سختی نیست .
دانلود پروژه (http://mrkey.persiangig.com/Program/AksBardari.zip)

M.T.P
چهارشنبه 30 فروردین 1391, 08:51 صبح
دوست عزیز تاپیک مربوط به سال 83 :لبخند:

به هر حال اینجا من یه نمونه کامل گذاشتم.
عکس گرفتن از محیط بازی (http://barnamenevis.org/showthread.php?336441-%D8%B9%DA%A9%D8%B3-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B2-%D9%85%D8%AD%DB%8C%D8%B7-%D8%A8%D8%A7%D8%B2%DB%8C)

setroyd
پنج شنبه 31 فروردین 1391, 02:38 صبح
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_SNAPSHOT = &H2C
این برای ارسال print screen هست