بسم الله الرحمن الرحيم
الفكرة مبسطة جدا وهي محاولة صنع
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] نستطيع من خلاله مشاهدة صورة
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] .وجه
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] على نفسك ثم اضغط على بدء التقاط الصورة وستظهر صورتك في هذا البرنامج المبسط الذي سنتناول شرحه في هذا الوقت ....
اولا : نفتح مشروع جديد بعد ان نتوكل على الله وسوف نختار من قائمة الادوات
2 كوماند ( زرين ) وتايمر واحد ثم picture واحدة كما في الصورة التالية :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة] ولا تنسى ان تغير interval الي 200 في التايمر ( timer )
طبعا الاسماء للادوات ستكون الافتراضية
سننتهي من التصميم الفورم الاول وهذا ما نحتاجه فقط فورم واحد كما في
الصورة السابقة .. سنحتاج الي مودول واظن ان الكثير يعرف كيف يضيفه الي
مشروعه .
نبدا بالفورم لنكتب الاكواد التالية ..
اولا سنبدا بزر command 1 ونضع فيه الكود التالي مع شرحه( زر بدء تشغيل الكام)
كود: Command1.Enabled = False 'ابطال زر البدء
Command2.Enabled = True 'تمكين زر التوقف
'هذا الكود لتنصيب نافذة التقاط الكام
mCapHwnd = capCreateCaptureWindow("AlsahemCapture", 0, 0, 0, 320, 240, Me.hwnd, 0)
DoEvents: SendMessage mCapHwnd, CONNECT, 0, 0 'الاتصال بجهاز الالتقاط وهو الكام
Timer1.Enabled = True 'تمكين التايمر ثانيا : زر command2 ونضع فيه هذا الكود ( التوقف )
كود: Command1.Enabled = True 'تمكين زر البدء
Command2.Enabled = False 'ابطال زر التوقف
Timer1.Enabled = False 'ابطال التايمر
DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0 'قطع الاتصال باللاقط وهو الكام ثالثا : ننتقل الي form وفي اجراء QueryUnload ونضع هذا الكود :
كود: If Command2.Enabled = False Then
DoEvents: SendMessage mCapHwnd, DISCONNECT, 0, 0
End If
'للتاكيد على قطع الاتصال وهنا استخدمنا قاعدة شرطية
'فلو قيمة زر التوقف خاطئ اذن ينتج قطع الاتصال بالكام واخيرا وليس اخيرا في حدث Timer1 سنضع هذا الكود الجميل :
كود: On Error Resume Next 'مصيدة الخطا
SendMessage mCapHwnd, GET, 0, 0 'الحصول على الفريم الحالي للكام
SendMessage mCapHwnd, COPY, 0, 0 'نسخ الفريم الحالي الي الكلببورد
Picture1.Picture = Clipboard.GetData 'وضع بيانات الكليبورد الي صندوق الصور الذي وضعناه
Clipboard.Clear 'تنظيف الكليبورد بهذا انتهينا من الفورم تصميما وبرمجة بفضل الله ولكن تبقى علينا بعض الاكواد وسوف نضعها في المودول وهي اكواد سهلة تمتع بها :
كود: Public Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA" (ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As Long
Public mCapHwnd As Long
Public Const CONNECT As Long = 1034
Public Const DISCONNECT As Long = 1035
Public Const GET As Long = 1084
Public Const COPY As Long = 1054 وهنا كانت التصريحات عن متغيرات طويلة
متغير الاتصال وقطع الاتصال والحصول على الفريم الحالي للصورة ثم نسخها وهذه متغيرات طويلة نسبيا .
هذا كل مافي الامر بامكانك تطوير البرنامج وربطه باداة الوينسوك لنعمل منه
برنامجا للتجسس على الكاميرات . اتمنى لكم وقتا جميلا .. وبالتوفيق