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

مشروع إثراء مكتبة الموقع لدوال API

مغلق
بدأه محمد بدوي في 26 مايو 2003 · 23 رد · 2,120 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

http://www.arabteam2000.com/win32api/Default.asp

وظيفته تمكيننا من اضافة الدوال مع امثلتها وحتى لاتتكرر الامثلة على الدالة ونعطي وقت اكبر في اضافة دوال بشكل دائم

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

جربوا البحث عن الدالتيين

SendMessage

GetWindowsDirectory

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

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#2

الفكرة رائعة (f) ولكن لا أدري لماذا لا يعجبني إخراجها :( فحبذا لو قمتم بتحسين وتسهيل الواجهة أكثر، وإضافة زر لنسخ المثال، وعدم السماح للمستخدم بالكتابة في مربع النص الخاص بالمثال.

وعلى فكرة أنا أضفت مثالين للدالتين Sleep و SndPlaySound أرجو أن تحوز على الإعجاب:)

ani.gif
#3

فكرة جميلة .. لكن الا تعتقد بان مجرد الخطا بالادخال كافي للقضاء على الدالة ؟ في هذه الحالة يجب ان تخضع الدوال لمراقبة احد متخصص بعد ان تضاف في نهاية كل يوم مثلا

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4

أفكار رائعه اخي عبد الله فتحي وبالنسبة للاخراج انا أيضا لم تعجبني ولكن للاسف لا املك رؤيا فنيه حتى اخرجها بشكل احسن فهلا تفضل احدكم باعطانا توصيف او شكل افضل

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

انتظر باقي الاقتراحات

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#5

أخي عبدالله فتحي هل يمكنك ان تضيفني علي الماسنجر لامر هام :)

almasre4@hotmail.com

ومشكور

#6

أخي العزيز محمد للأسف فأنا لا أهتم كثيراً بالأمور الفنية، ولكن كنت أرى أنه كان من الأفضل أن يتم عرض الدوال جميعها في شجرة جانبية، على سبيل المثال كما في مكتبة MSDN أو في برنامج الـ API-GUIDE.

أخي العزيز Student يسرني أن أضيفك على الماسنجر، ولكنني الآن مشغول بالامتحانات وزياراتي للإنترنت لا تتعدى دقائق، وأنا تحت أمرك من يوم 10/6/2003م .... تحياتي إليك وإلى الجميع.

ani.gif
#7

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

A

يضم الدوال الخاصة به وهكذا وذلك بشل منسق

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#8

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

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#9

يتم العرض كما قلت كما يظهر في مكتبة الدروس

مثلا

A تظهر ما اضيف من دوال بالنسبة له

B ايضا

C

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

(لم اجرب اضافة شئ بعد)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#10

في الحقيقة أنا أضفت دالتين فقط (الوقت ما يسمح: امتحانات:'() وما ظهرت أي مشاكل، وياريت يتم عرض الأدوات كلها، لكي يقوم الأعضاء بملئها جميعاً(f)

ani.gif
#11

افكار جيدة وعلى بركة الله ...

#12

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

الله يعطيكون العافية .... فعلا مشروع حلو وغير مطروق ..

ولكن يحتاج لتأني حتى ينجح العمل وفعلا يكون مرجع للعرب .....

ولكن عندي بعض النقاط الهامة ....

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

مثلاًُ

* إنترنت

- بريد

-ftp

-تحميل ملفات

* ملفات

-فتح ملف

-قراءة من ملف

-إغلاق ملف

-حذف ملف

-إنشاء مجلد

*ملتيمديا

-صوت

-فيديو

-صور

-منوع

الخ .....

لأنه في كثير من الأحيان واحد منا يريد صنع برنامج يخص الإنترنت فيدخل إلى قسم الإنترنت ليرى مافيها من الدالات التي قد تهم برنامجه ...

النقطة الثانية هي عرض الدوال

تكون مكتوبة بإسمها وبجانيها شرح عنها مبسط باللغة العربية ...

وإن أمكن ملف مثال جاهز ومجرب مضغوظ zip وذلك لتسهيل الدور على مراقب القسم بتفحص كل الدول ...

يعني بس كان الشخص الذي ضاف الدالة مجربها خلاص ...

وطبعا الدخول لإصافة دوالة يجب أن يكون على حسب أسماء الأعضاء في المنتدى ويجب إدخال كلمة السر إن كانوا لم يسجلوا الدخول ....

والأسسباب أنتم تعرفونها ..

وشكرا ً آسف على الإطالة ......

نسيت بالسبة لدالةالبحث المكتوبة فيهي لاتستخدم الدالة trim

يعني منذ قليل حطيت فيها إسم الدالة التي كتبتها أخ محمد ولكن لم تظهر لأني وضعت بعدها فراغ .....

طبعاً هذا أكيد بيمشي الحال في النسخة الأخيرة من البرنامج .....

والسلام عليكم .....(clock)(gift)

#13

(f) تمام افكار رائعة

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#14

لم استطع اضافة اي شئ :rolleyes: ولا ادري لم

هل لو يتفضل احد الاخوة ويخبرنا الخطوات لربما قد غفلت عنها

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#15

شباب طبعا انا في اليوم الي فاتوا ما اضفت او عدلت اي شيء بس قعدت ادور على الانترنت على برنامج آو فكرة مشابهة لم اجد الا MSDN صحيح ان الافكار الي انتم قلتوا عنها ممتازة وجيدة ولكن لايوجد وقت لعمل مثل هذه ولذلك في حال وجد اي شخص برنامج أو فكرة برنامج موجودة لنفس الغرض او لفكرة مشابهة يدلنا عليها حتى نقوم بتنفيذها وليستفيد الجميع

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

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#16

وانا ولا كاني سألت شي :(

يالله رح حط اللي بقدر عليه هون متل ما قلت (ملاحظة: ما بعرف شو ضفتوا دوال)

' ضع الدالة في Module جديد

Declare Function BringWindowToTop Lib "user32.dll" (ByVal hwnd As Long) As Long 

Dim retval As Long



' ضع هذا السطر في أي حدث تريد

retval = BringWindowToTop(Form1.hWnd)



تقوم هذه الدالة بجعل نافذة ما تعلو كل النوافذ وفقاً للـ z-Order, تملك هذه الدالة التأثير نفسه الذي تملكه دالة SetWindowPos بالنسبة لوضع النافذة فوق الجميع وفق الـ z-Order.

(تنبيه: يجب تعديل اسم الفورم التي تريدها أن تعلو الجميع وذلك في سطر الحدث)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#17
' ضع الدالة في Module جديد

Declare Function Beep Lib "kernel32.dll" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Dim retval As Long



' ضع هذا السطر في أي حدث تريد

retval = Beep(800, 2000)



تقوم هذه الدالة بتشغيل صوت النقر الافتراضي في الويندوز وذلك عند تنفيذ الحدث المرتبط بها.

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

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#18
' ضع الدالة في Module جديد

Declare Function Beep Lib "kernel32.dll" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Dim retval As Long



' ضع هذا السطر في أي حدث تريد

retval = Beep(800, 2000)



تقوم هذه الدالة بتشغيل صوت النقر الافتراضي في الويندوز وذلك عند تنفيذ الحدث المرتبط بها.

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





' ضع هذه الدالة في Module جديد

Public Type DEVMODE

    dmDeviceName As String * 32

    dmSpecVersion As Integer

    dmDriverVersion As Integer

    dmSize As Integer

    dmDriverExtra As Integer

    dmFields As Long

    dmOrientation As Integer

    dmPaperSize As Integer

    dmPaperLength As Integer

    dmPaperWidth As Integer

    dmScale As Integer

    dmCopies As Integer

    dmDefaultSource As Integer

    dmPrintQuality As Integer

    dmColor As Integer

    dmDuplex As Integer

    dmYResolution As Integer

    dmTTOption As Integer

    dmCollate As Integer

    dmFormName As String * 32

    dmUnusedPadding As Integer

    dmBitsPerPixel As Integer

    dmPelsWidth As Long

    dmPelsHeight As Long

    dmDisplayFlags As Long

    dmDisplayFrequency As Long

    ' التالي يظهر تأثيره فقط في ويندوز 95 و 98 و 2000

    dmICMMethod As Long

    dmICMIntent As Long

    dmMediaType As Long

    dmDitherType As Long

    dmReserved1 As Long

    dmReserved2 As Long

    ' التالي يظهر تأثيره فقط في ويندوز 2000

    dmPanningWidth As Long

    dmPanningHeight As Long

End Type

Public Declare Function EnumDisplaySettings Lib "user32.dll" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As String, _

    ByVal iModeNum As Long, lpDevMode As DEVMODE) As Long

Public Const ENUM_CURRENT_SETTINGS = -1

Public Declare Function ChangeDisplaySettings Lib "user32.dll" Alias "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwFlags _

    As Long) As Long

Public Const CDS_UPDATEREGISTRY = &H1

Public Const CDS_TEST = &H2

Public Const DISP_CHANGE_SUCCESSFUL = 0

Public Const DISP_CHANGE_RESTART = 1



' ضع التالي في أي حدث تريد

    Dim dm As DEVMODE   ' display settings

    Dim retval As Long  ' return value

    

    dm.dmSize = Len(dm)

    ' احصل على قيم احداثيات الشاشة

    retval = EnumDisplaySettings(vbNullString, ENUM_CURRENT_SETTINGS, dm)

    ' غير الاحداثيات إلى 800×600

    dm.dmPelsWidth = 800

    dm.dmPelsHeight = 600

    ' اختبار للتاكد من ان التغييرات ممكنة

    retval = ChangeDisplaySettings(dm, CDS_TEST)

    If retval <> DISP_CHANGE_SUCCESSFUL Then

        Debug.Print "لا يمكن التغيير لهذه الإحداثيات!"

    Else

        ' Change and save to the new settings.

        retval = ChangeDisplaySettings(dm, CDS_UPDATEREGISTRY)

        Select Case retval

        Case DISP_CHANGE_SUCCESSFUL

            Debug.Print "تم تغيير الإحداثيات بنجاح"

        Case DISP_CHANGE_RESTART

            Debug.Print "يجب إعادة التشغيل قبل أن تأخذ التغييرات أثرها"

        Case Else

            Debug.Print "غير قادر على تغيير الإحداثيات!"

        End Select

    End If



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

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#19

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

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#20

شوف السؤال بالصفحة السابقة, لاني حاولت ضيف دوال بس ما قدرت والدوال لما تعرضهم ما بيظهر شرح عنهم فهل هيدا خطا من عندي ؟

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#21

ممكن عملها مثل كتاب api guide

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#22

اخوي win98_eg كيف يعني متله؟ قصدت صفحات html ?

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#23

بل اقصد من ناحية التصنيف

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#24

مشكورين والى الامام

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

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