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

سؤال:بعض دوال API احتاج لمن يشرحها ويفسرها

مغلق
بدأه أيمن عشبة في 21 سبتمبر 2005 · 11 رد · 1,108 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الغملاسي والاخوة المحترمين اعضاء المنتدي:

انا عندي كود يصور شاشة الجهاز من دون ما ياثر علي حافظة الجهاز ولكن انا اريد شرح لهذا الكود مع العلم انه الكود شغال 100*100 انا لقيته في احد المواقع ولكن انا عاوز اعرف شرح بعض الدوال api والاستدعاءات

Public Class Form1
    Inherits System.Windows.Forms.Form

    Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, ByVal lpInitData As String) As Integer

    Private Declare Function CreateCompatibleDC Lib "GDI32" (ByVal hDC As Integer) As Integer

    Private Declare Function CreateCompatibleBitmap Lib "GDI32" (ByVal hDC As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer) As Integer

    Private Declare Function GetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Integer, ByVal nIndex As Integer) As Integer

    Private Declare Function SelectObject Lib "GDI32" (ByVal hDC As Integer, ByVal hObject As Integer) As Integer

    Private Declare Function BitBlt Lib "GDI32" (ByVal srchDC As Integer, ByVal srcX As Integer, ByVal srcY As Integer, ByVal srcW As Integer, ByVal srcH As Integer, ByVal desthDC As Integer, ByVal destX As Integer, ByVal destY As Integer, ByVal op As Integer) As Integer

    Private Declare Function DeleteDC Lib "GDI32" (ByVal hDC As Integer) As Integer

    Private Declare Function DeleteObject Lib "GDI32" (ByVal hObj As Integer) As Integer

    Const SRCCOPY As Integer = &HCC0020

    Private oBackground As Bitmap
    Private FW, FH As Integer
---------------------------------------------------------------------------------------------------------------------------------

وبعدها تجي اداله CaptureScreen

Protected Sub CaptureScreen()

Dim hSDC, hMDC As Integer

Dim hBMP, hBMPOld As Integer

Dim r As Integer

hSDC = CreateDC("DISPLAY", "", "", "")

hMDC = CreateCompatibleDC(hSDC)

FW = GetDeviceCaps(hSDC, 8)

FH = GetDeviceCaps(hSDC, 10)

hBMP = CreateCompatibleBitmap(hSDC, FW, FH)

hBMPOld = SelectObject(hMDC, hBMP)

r = BitBlt(hMDC, 0, 0, FW, FH, hSDC, 0, 0, 13369376)

hBMP = SelectObject(hMDC, hBMPOld)

r = DeleteDC(hSDC)

r = DeleteDC(hMDC)

oBackground = Image.FromHbitmap(New IntPtr(hBMP))

DeleteObject(hBMP)

End Sub

--------------------------------------------------------------------------------------------------------------------------------

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

CaptureScreen()

PictureBox1.Image = oBackground

End Sub

ارجوا من الاخوه بارك الله فيهم الاتي

1. توضيح الدوال التي تم تعريفها في الاول كل داله ما عملها بالظبط

2.توضيح عمل الداله ()CaptureScreen يعني ما القيمه التي تتم ارسالها للدوال api

وبارك الله فيكم اخواني

ويجعله الله في ميزان حسانتكم

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

تم تعديل هذه المشاركة بواسطة crazy-man في 24 سبتمبر 2005 في 03:59

اللهم انصر الاسلام والمسلمين

2035881233.gif

#2

السلام عليكم

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

Capture_Sc90471652002.zip

اللهم انصر الاسلام والمسلمين

2035881233.gif

#3

السلام عليكم

احيلك لهذا الرابط API برنامج و شرح الـ

....

أحسن الله إليك , يبدُ لي أنك إلى الان لم تقرأ قواعد الطرح العامة ...

في المثال يتضح المقال

#4

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

والسلام عليكم

اللهم انصر الاسلام والمسلمين

2035881233.gif

#5

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

اللهم انصر الاسلام والمسلمين

2035881233.gif

#6

السلام عليكم

ياريت احد من اعضاء المنتدي يشوف حل التعريف الدوال بصراحة ما طلع معايا شي لان الموضع يهمني حتي يوم السبت

اللهم انصر الاسلام والمسلمين

2035881233.gif

#7

السلام عليكم

اترك عنك دوال API واستخدم نصين برمجيين فقط لعمل إلتقاط صورة من الـ Desktop

SendKeys.Send("%({PRTSC})")
Me.PictureBox1.Image = _
Clipboard.GetDataObject.GetData("Bitmap", True)

الكود واضح جداً, فهو يقوم بإرسال قيمة برمجية بالضغط على الزر Print في لوحة المفاتيح, الذي يقوم بدورة بأخذ صورة

لـواجهة النظام, ثم نقوم بجلب تلك الصورة من الـ Clip Board ونضعها في عنصر صندوق الصور PictureBox

بالتوفيق و السداد , السلام عليكم

تم تعديل هذه المشاركة بواسطة الغملاسي في 22 سبتمبر 2005 في 22:17

في المثال يتضح المقال

#8

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

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

انا اريد عمل print sereen بدون ما اثر علي قيكة الحافظة لاني انا صممت برنامج " مراقبة الوقت والاجهزة لمقاهي الانترنت " واحد خصائص البرنامج التقاط صورة من الجهاز علي الشبكة فا بذلك لان تنفعني الكود السابق لانه ياثر علي حافظة الجهاز

ياريت تكون وصلتك الفكرة مني

وشكرا علي ردك علي الموضوع اذلك انا ابحث في تعريف الدوال وما القيمة التي تاخذها مع انا الكود شغال 100*100 لكن اريد فكرة عمل الدوال وشكرا

اللهم انصر الاسلام والمسلمين

2035881233.gif

#9

عموما شكرا لاعضاء المنتدي الي ماقصروا في اي شي

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

لكن السوال الان هل سوالي صعب لهذه الدرجة او بعض الاعضاء لايريدون ان تعم الفائدة للمتندي اذا كان كذلك فحسبي الله ونعم الوكيل

اللهم انصر الاسلام والمسلمين

2035881233.gif

#10

يا أخي العزيز العيب ليس في المنتدى الاخوة أعطوك برنامج يشرح الدوال ماذا تريد أكثر من ذلك ؟ أن يترجموا لك !!!!

لا أظن أن هناك احد يملك الوقت و خصوصا ان الدراسة بدأت لكي يقوم بترجمة و شرح 8 لو 10 دوال API و كما تلاحظ فهذه الدوال دوال صعبة نوعا ما و حتى لو تم شرحها فلن يتم فهمها بسهولة !!!

يعني مثلا شرح الدالة CreateDC في جميع المواقع هو :

The CreateDC function creates a device context (DC) for a device by using the specified name.

حقيقة انا لست بمحترف API لذلك لن أستطيع ان أعطيك اكثر من هذه التعاريف التي سأجدها في المواقع و بالباقي عليك يعني ابحث عن أمثلة لأن الأمثلة هي التي تبين معنى هذه الأشياء

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

المهم اريد ان لا تشك و لو لوهلة واحدة ان هناك هنا من يخبئ العلم عن الآخرين ...

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

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

انا اريد عمل print sereen بدون ما اثر علي قيكة الحافظة لاني انا صممت برنامج " مراقبة الوقت والاجهزة لمقاهي الانترنت " واحد خصائص البرنامج التقاط صورة من الجهاز علي الشبكة فا بذلك لان تنفعني الكود السابق لانه ياثر علي حافظة الجهاز

ياريت تكون وصلتك الفكرة مني

وشكرا علي ردك علي الموضوع اذلك انا ابحث في تعريف الدوال وما القيمة التي تاخذها مع انا الكود شغال 100*100 لكن اريد فكرة عمل الدوال وشكرا

مجرد فكرة

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

:rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:

تم تعديل هذه المشاركة بواسطة SOLO.NET في 25 سبتمبر 2005 في 01:19

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#12

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

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

وشكرا جدا علي مشاركتك الفعاله ...............

اللهم انصر الاسلام والمسلمين

2035881233.gif

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

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