الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اضع صورة في Pic Box من Print Screen

مغلق
بدأه مبرمج مبتدا في 21 سبتمبر 2007 · 24 رد · 3,348 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف اضع صورة في pic box من print screen بيكون في البداية : keycode = 44 لكن بعدين اريد وضعها في picture box كيف ذلك ؟

مجرد محاولة فاشلة :

Private Sub Command1_Click()
keycode = 44
pic.Picture = Clipboard.GetData
pic.Refresh
End Sub

تم تعديل هذه المشاركة بواسطة مبرمج مبتدا في 21 سبتمبر 2007 في 21:26

startingprogremmer.jpg
#2

السلام عليكم ورحمة الله وبركاته

حدد نوع البيانات فليس بالضرورة نجد فقط داخل الحافظة صورة

 Image1.Picture = Clipboard.GetData(vbCFBitmap)
#3

أولا الـ Print Screen حسب ما أعرف ليس له KeyCode , ثانيا هل يصح أستعمال الـ KeyCode بحدث الـ Click ؟

الصح :

لو عايز تجيب الصور من الحافظة لما الـ Print Screen ينضغط فقط >> تعمل Hook على الـ Keyboard كلها , راجع مواضيعى.

لو عايز تجيب الصور من الحافظة فى حالة أنها أحتوت على صورة بأى طريقة من الطرق و ليكن بعمل Copy لجزء من صورة بداخل محرر صور >> تعمل Clipboard Hook راجع موقع AllAPI

#4

أخي ميرمج أبحث قبل السؤال لأن هذا السؤال طرحته أنا في المنتدى ولكن لا أعلم أين رابطه الآن.

ملاحظة : راجع كتاب الأخ رغيد الطيب عن البرمجة بالوينسوك.

google.gif

spamxk4.gif

petitionbanner17a.gif

Email : sao_-5000@hotmail.com

#6

والله جهازي ما فيه فيجوال بيسك 6 ، ولو كان مثبت احتمال ايجيب لك الطريقة ،

الأفضل لك يا رجل تترك الفي بي 6 في المشاريع العملية المهمة وتتوجه للدوت نت 2005

3 أكواد في الدوت نت = 15 كود في الفيجوال بيسك 6 ، يعني إن كنت تصلح برنامج بالبيسك 6 في شهر ، بالدوت نت تصلحه في 10 ايام

وبالنسبة لكود إضافة الصورة بواسطة الدوت نت هو كالآتي:

If Clipboard.ContainsImage = True Then PictureBox1.Image = Clipboard.GetImage

كود طويل مرة .... ، اعذرني هذا ما قدرت عليه

#7

ممكن سورس ?? .... لم افهم شيء اريد اخذ صورة ووضعها في الصورة باي طريقة

شكرا لكم

keybd_event

sub or function no found !!

تم تعديل هذه المشاركة بواسطة مبرمج مبتدا في 22 سبتمبر 2007 في 07:31

startingprogremmer.jpg
#8
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

Private Sub Command1_Click()
Dim wScreen As Long
Dim hScreen As Long
Dim w As Long
Dim h As Long
Picture1.Cls

wScreen = Screen.Width \ Screen.TwipsPerPixelX
hScreen = Screen.Height \ Screen.TwipsPerPixelY

Picture1.ScaleMode = vbPixels
w = Picture1.ScaleWidth
h = Picture1.ScaleHeight


hdcScreen = GetDC(0)

r = StretchBlt(Picture1.hdc, 0, 0, w, h, hdcScreen, 0, 0, wScreen, hScreen, vbSrcCopy)

End Sub

nshot.rar

ألا بذكر الله تطمئن القلوب

#9

مشكور اخوي مبرمج مبتدأ بصراح

لازم تاخذ لقب محترف

لكن كود اللي حطه المزمجر افضل

تحياتي

من احب شيء ابدع وابتدع فيه

#10
لازم تاخذ لقب محترف

الكود الي حطيته انا خطا اخي

___________

اخي المزمجر

r = StretchBlt(Picture1.hdc, 0, 0, w, h, hdcScreen, 0, 0, wScreen, hScreen, vbSrcCopy)

هذا الكود يرجع لدالة Stretchblt لكن لم افهمه هل من الممكن الشرح

startingprogremmer.jpg
#11
اقتباس
هذا الكود يرجع لدالة Stretchblt لكن لم افهمه هل من الممكن الشرح

لو استعملت تعليمة  Stretch في برنامج الاوتوكاد

لكانت تعني تمديد العناصر

حيث تقوم الدالة بتمديد الصورة الملتقطة أو ضغطها حسب مساحة صندوق الصورة

ألا بذكر الله تطمئن القلوب

#12

سؤال اخي

هل بامكاني اخذ الصورة والبرنامج في حالة hide ??

startingprogremmer.jpg
#13

للرفع

startingprogremmer.jpg
#14
اقتباس
هل بامكاني اخذ الصورة والبرنامج في حالة hide ??

بالتأكيد لان أخذ الصورة لسطح المكتب لا يتعلق بالفورم

عند ارسال أمر print screen باستعمال keybd_event فهي تقوم بتخزين صورة سطح المكتب بطيبعة الحال هناك طريقة لأخذ صورة النافذة الفعالة بالضغط على alt+print screen

يمكنك تصميم برنامجك كي يكون بجوار الساعة لكي تتفادى ظهور نافذة البرنامج عند التقاط صورة سطح المكتب

بالنسبة للدالة keybd_event فتعريفها :

Private Declare Sub keybd_event Lib "user32" (ByVal bvk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

ومن ثم يمكن التقاط الصورة بارسال المتغير الذي يعبر عن زر print screen

keybd_event vbKeySnapshot, 0, 0, 0

واستخراج الصورة من الحافظة

Image1.Picture = Clipboard.GetData(vbCFBitmap)

لا تنسى أن تدع فارق زمني بين التقاط الصورة وعرضها

#15

اخي هل يمكن بدون ما يكون قرب الساعة

انا جربت اعمل لكن هناك خلل لا استطيع شرحه

اضغط كم مرة print screen لتكتشفه

get_pic.rar

startingprogremmer.jpg
#16
اقتباس
لا تنسى أن تدع فارق زمني بين التقاط الصورة وعرضها

لقد وضعت في التايمر الأمرين معا يعني الضغط على الزر وعرض الصورة من الحافظة

يمكن استخدام الدالة Sleep لجعل فارق زمني أو عرض مسج بوكس بين الأمرين كأن نضع

keybd_event vbKeySnapshot, 0, 0, 0
MsgBox "Screen Captured "
Picture1.Picture = Clipboard.GetData(vbCFBitmap)
#17

السلام عليكم استاذ مبرمج مبتدا انا كنت بعمل نفس فكرت البرنامج وكنت وقفة على نفس الكود الهو اخذ نسخة من الصورة بس كود المزمجر رائع بس كنت احب اعرف اخر ما توصالت الية

#18

السلام عليكم مبرمج مبدا او الاستاذ مزمجر يا جماعة انا عايزة خدمة انا مش فاهمة الكود بتاع الاخ مزمجر انا اقدرت اعرف انوا هنا مستخدم مكتبات 00لدوال

api

Picture1.Cls

wScreen = Screen.Width \ Screen.TwipsPerPixelX

hScreen = Screen.Height \ Screen.TwipsPerPixelY

Picture1.ScaleMode = vbPixels

w = Picture1.ScaleWidth

h = Picture1.ScaleHeight

hdcScreen = GetDC(0)

r = StretchBlt(Picture1.hdc, 0, 0, w, h, hdcScreen, 0, 0, wScreen, hScreen, vbSrcCopy)

End Sub

انا فهمت اساس الكود بس دلوقتى

Picture1.Cls

Clsدى دالة من دوال

get dcطب هى وظيفتها اية بالضبط هل انت هنا بتامر بمسح اى اىبيانات على الادادة

ياريت لو حد يقدر يشرحى الكود

#19

دى المشروع بتاعى

timer.rar

timer.rar

#20

GetDC

ترجع مقبض جهاز العرض لتحديد مساحة الرسم فيما بعد

StretchBlt

تقوم بنسخ من اطار معين إلى اطار آخر مع مراعاة التحجيم طبعا

يمكن مراجعة الموقع للاستفادة أكثر

#21

dream net اشكرك

على ردك بس انت شوفت المشروع الانا رفعتة ياريت تشوفة وتقوالى رايك فى اية وانت شايف اية العيب الفى

فى النتظار ردك

#22

السلام عليكم ورحمة الله وبركاته

بالنسبة للكود كنت سأعلق عنه في الرد السابق

Do

sendkey "[prtscn]"

Loop

1- لا أعرف مافائدة هذا الكود هنا ؟

بالنسبة لي يجب حذفه

2- الخاصية interval للTimer تساوي 0 يعني الكود الموضوع فيه لن ينفذ لذلك يجب تغيير الخاصية والتي ترمز للمجال الزمني الذي يتم تنفيذ فيه الكود الموضوع في التايمر بالميلي ثانية يعني لو وضعنا 1000 هذا يعني 1 ثانية (نفذ كود التايمر كل ثانية )

بالتوفيق

#23

dream net شكرا على متابعتك

بالنسبة للانترفال مجرد بس انى نسيت اكتب رقاممها

ام كود البرانت اسكرين انا صلا مبرمجة برامج بيزنس اكتر بمعنى برامج مبيعات ومدارس محلات سوبر ماركت بس فى حد ادانى كام فكرة لبرامج السيستم وبتالى يعنى خبرتى فيها مش اوى فالكود البرانت اسكرين هو الاوال الانا كنت عارفة بس كود الاخ مزمجر بصراحة اصلا انا مش فاهمة فى حجات كتير لانى مش درست دوال

api

بس انا دلوقتى ام شيلت الكود وظبط الانترفال بدا ياخد صورة الديسك توب تمام كدة بس فى مشكلة ان المفروض ام انا اوقف البرنامج اقدر اعمل عرض للصور دى عشان اقدر اعرف اية الشتغل اعتقد التخزين دية لازم فى قاعدة بيانات وعلى الاساس دية انا كنت حطة دادة كنتروال فى الفورموموصالها بقاعدة بيانات اكسس فدلوقتى ازاى انا هقدر اعرض الصوردى

واشكرا كتير dream net

#24

قبل تسجيلها وعرضها المفروض مراعاة حجم الصور الناتجة عن العملية والتي تكون كبيرة

لذلك من الأحسن تصغير حجمها أو تغيير تنسيقها بمحاولة حفظها بصيغة JPG

هناك عدة مواضيع تتحدث عن كيفية حفظ الصورة بتنسيق غير الBMP من أجل تقليل حجمها

اعادة حفظ صورة بدقة اقل

بعدها نعود لعملية تسجيلها , هناك أيضا عدة مواضيع وأمثلة تتحدث عن كيفية تخزين واستخراج صورة من قاعدة بيانات

ماوجدته عندي مثال عن كيفية تخزين وقرائة صورة داخل قاعدة بيانات يمكن التعديل عليها لاستعماله في مشروعك

picture.zip

بالتوفيق للجميع

#25

السلام عليكم شكرا على موضوع حجم الصورة بس كنت اعتقد انا حجم الصورة هيكون ثابت لان التقاط الصور من الديسك توب بس على العموم انا اخدت الكود وبدات

احطة عندى بس فى

مشكلة ايرو فى اكواد مكتبات الapi

وكنت وضحت انى فى بداية محاولات لدراسة هذة الدوال ام المشروع بتاعك فهو شى رائع بس انا كنت عايزة اعرف لية حضرتك عامل

داير ودرايف وفايل ليست بوكس بنسبة لفكرتى معتقدش انى محتاجاها و بس كان لية سوال هو حضرتك الصور المخزنة فى قاعدة البيانات مخزنة عن طريق الاكسس نفسة ولا من المشروع بتاعك انا مش عارفة لو انت سجالتها من البرنامج سجالتها ازاى لان الاكواد مش لقيت فيها اى كود للحفظ المشروع الهرفقة فى عيب ذى موضحت ياريت لو تقدر تحلة ويبقى بردة ناقص ربط الصور االماخوذة الى قاعدة البيانات ومشكورا جدا

timer.rar

هذا الموضوع مغلق.

مواضيع مشابهة