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

اقتراح لشرح دوال API

مغلقرائج
بدأه GHOST2010 في 18 مايو 2005 · 81 رد · 21,538 مشاهدة · في قسم الدروس والمواضيع الهامة
مشاركة: واتساب X فيسبوك تيليجرام
#51

الدالة Sleep

الدالة تقوم بتأجيل تنفيذ الكود الذى يليها مدة معينة

Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

المعامل dwMilliseconds هو مدة تأخير الكود بوحدة المللى ثانية :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#52

الدالة SetActiveWindow

هذه الدالة تقوم بتنشيط نافذة عن طريق مقبضها

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

المعامل hwnd هو مقبض النافذة المراد تنشيطها :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#53

شكرا لك اخي محمد

وان شاء الله قريبا سوف ابحث عن دوال مفيدة واضعها

من دروسي :

درس مبسط لفهم ال VB6.... Resource File

تعلم تصميم اداة ال Active X خطوة بخطوة (الجزء الأول)

الطريقة المثلى للتعامل مع مسجل النظام( VB6..... (Registry

من برامجي :

Abo Sabreen Messenger v2.1 العملاق

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

مفكرة الإسلام؛ طالع أخبار العالم وأخبار المجاهدين بعيدا عن التعتيم الاعلامي.

#54

الدالة FlashWindow

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

Private Declare Function FlashWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal bInvert As Long) As Long

المعامل hwnd مقبض النافذة التى ستستقبل الحدث

المعامل bInvert هو المسؤول عن اتمام الحدث فاذا اخذ القيمة صفر يتوقف الحدث واذا اخذ قيمة اكبر من الصفر يتم تنفيذ الحدث :rolleyes:

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

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#55

شكراً على تواجدك معى اخى ابو صابرين :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#56

ما شالله على المرجع الرائع لدوال API

مجهود تشكر عليه أخ محمد المهدي

"متألق بجدارة"

سجل ايميلك هنا

googlejb5.gif ليصلك كل ما هو مفيد في عالم البرمجة
#57

نتعلم منك ايها الخبير فأنت النجم وشهادتك هذه أعتز بها جداً , شكراً لك :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#58

الله يحفظكم و يوفقكم

#59

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

هي دي الدروس ولا بلاش يا أخوانا, عظمة على عظمة والله.

بارك الله بيك و بأولادك إن شاء الله. :D (h)

#60

هنا ستجدون شرح للدول المستخدمة فى تغيير شكل الفورم

/index.php?showtopic=28737

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#61

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

قبل اي شيئ احب ان اهني صديقى محمد عل الحصول على لقب "عــضو شرف".

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

وابدأ بإضافة بعض الدوال البسيطه الذي اتذكرها حالياً ."للتعامل مع النصوص "

1- الدالتين Right و Left

اولا: الدالة Right يكــون شكـلها هكذا .

Right(string,Length)

تعمل هذه الدالة على انتاج عدد معين من الحروف التي تقع اقصى يمين النص حيث ان string هو النص الذي يتم التحكم فيه اما Length هي طول احرف النص بداية من اقصى يمين . مثلا :

Right(Arab,2)

يكون ناتج الداله هو "Ar"

ثانيا: الدالة Left ويكون شكلها هكذا .

Left(string,Length)

تعمل هذه الدالة على انتاج عدد معين من الحروف التي تقع اقصى يسار النص حيث ان string هو النص الذي يتم التحكم فيه اما Length هي طول احرف النص بداية من اقصى يسار . مثلا :

Left(Arab,3)

يكون ناتج الداله هو "rab" والاثنين عكس بعض .

2: الدالة Mid ويكون شكلها هكذا .

Mid(string,start,Length)

تعمل هذه الدالة على انتاج عدد معين من الحروف مثل فكرة الاثنين السابقين ولكن حسب ما تقوم بتحديده انت.حيث ان string هو النص الذي يتم التحكم فيه اما الـ Start هي بداية طول السلسله فليكون البدايه من ثالث حرف مثلا وهكذا اما Length هي طول احرف النص. مثلا :

Mid(Arab For You,3,5)

يكون ناتج الداله هو "ab Fo" مع العلم ان الدالة تاخز بالمسافات .

3- الدالة Instr ويكون شكلها هكذا .

Instr(start,string1,string2,compare)

"start" بدية البحث في النص المدخل للدالة .

"string1" هو النص الذي يتم البحث فيه .

"string2" هو النص الذي يتم البحث عنه .

"compare" ترجع هذه القيمه الى انها قيمه عددية اما تكون بـ " 0" او بـ "1" فإذا تم ضبطها بـ القيمه "0" يتم البحث على النص مشابها تمام . اما إذا تم ضبطها القيمة بـ "1" يتم البحث عن النص مهما كانت حالته . يعني احرف كبيره و صغير .

4- الدالة Len ويكون شكلها هكذا .

X = Len(Mohamed)

تقوم هذه الداله على حساب عدد احرف نص معين وعلى المثال السابق يــكون الناتج الذي يكون حامله المتغير "X" هو 7 . وهكذا ......

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

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

.

</
#62

حمد الله ع السلامة ياعم احمد , المنتدى كان مضلم من غيرك وان شاء الله تكون اتوفقت فى الامتحانات ومنتظرين تكملة دروس الاكتف سكين , لكن واضح ان الامتحانات اثرت عليك شوية يااحمد :lol: :lol:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#63

شكرا لك اخي احمد

ولكن هذه الدوال التي وضعتها هل تعتبر دوال api?

لاني اعتقد ان هذه الدوال هي دوال جاهزة في الفيجوال بيسك يعني Built-in-Functions وليست دوال api

من دروسي :

درس مبسط لفهم ال VB6.... Resource File

تعلم تصميم اداة ال Active X خطوة بخطوة (الجزء الأول)

الطريقة المثلى للتعامل مع مسجل النظام( VB6..... (Registry

من برامجي :

Abo Sabreen Messenger v2.1 العملاق

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

مفكرة الإسلام؛ طالع أخبار العالم وأخبار المجاهدين بعيدا عن التعتيم الاعلامي.

#64

لا والله انا اعلم انها ليست دوال api واعلم انها ثوابت في الفيبي ولاكــن قلت مادام الموضوع يتحدث عن الدوال فلماذا لم اضعها .. حتى تعم الفائدة.

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

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

.

</
#65

اســـتخلاص الايكونات من ملف الـ Dll

بإستخدام الدالة ExtractIcon , DrawIcon

ExtractIcon , DrawIcon اضغط هنا

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

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

.

</
#66

الف مليون شـــكر يا عبقري احمد بروف

#67

تسجيل حضور .. ومتابعة ...

بارك الله فيكم ...

(ومَنْ يَتَّقِ اللهَ يَجْعَلْ لَهُ مَخْرَجاً وَيَرْزُقُهُ مِنْ حَيْثُ لَاْ يَحْتَسِبْ وَمَنْ يَتَوَكَّلْ عَلَى اللهِ فَهُوَ حَسْبُهُ)

فرحناز سجّاد حسين فاضل - مهندسة كمبيوتر

ela-rasool-allah.gif

#68

اخ Ghost 2010 وباقي الاخوة اللي افادونا في هذا الموضوع مشكورين والله موضوع متميز وكنت انتظره من زمان

من تواضع لله رفعه

#69

انا لا اجد الداله netsendmessagebuffer

جزاكم الله خير على هذا الموضوع الشيق و جعله الله في ميزان حسناتك

لي سؤال : هل يوجد داله لوضع password على الinternet

Amrkhaled_Amrkhaled.jpg
#70

لو ممكن شرح للكود الخاص بداله netsendmessagebuffer

سؤال اخر : هل يوجد داله تعمل scan على الشبكه و ترجع اسماء الأجهزه المتصله بالشبكه ؟

وجزاكم الله خير

تم تعديل هذه المشاركة بواسطة Amrkhaledccd في 2 سبتمبر 2005 في 05:40

Amrkhaled_Amrkhaled.jpg
#71

السلام عليكم

ياشباب انا بستخدم VB.NET و هذه الدوال معظمها لا يعمل خصوصا الدوال التي تستخدم hwnd

شو الحل ......؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

:blink: :wacko: :s :unsure:

و بالنسبة للفكرة و للموضوع اكثر من رائع .!

#72

مشكــــــــــــــــــــــــــــــــــــــــــــور

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#73

API – Windows Application Programming Interface

سأشرح في هذه الفقرة API بصورة عامة. أن الفائدة من أستخدام دوالAPI لسببين هما الأول نستطيع أنجاز قسم أشياء لاتستطيع لغة VB أنجازها، والثاني تستطيع تنفيذ بعض الأشياء أسرع من تنفيذها ب VB .

أستخدام API :

هناك أربعة خطوات لأستخدام دوال API

1- حدد أي برنامج فرعي تريد أن تستخدمه

هنالك دوال عديدة ل API وهي موضحة في Help الموجود في VB6.0 .

2- حدد هوية أو نوع البيانات التي ترغب بتمريرها الى البرنامج الفرعي . والعبارة TYPE تقوم بعملية التمرير.

3- تثبيت أو تعريغ Declare البرنامج الفرعي بأستخدام العبارة Declare ، للعلم API هو ليس جزء من لغة VB لهذا السبب تستخدم عبارة Declare لغرض أخبار VB أين يستطيع أن يجد هذه الدوال. والصيغة لعبارة التثبيت هي:

Declare Sub name lib "lib" [ Alias, "alias"] (arguments)

Declare Function name Lib "Lib" [Alias, "alias"] (arguments) As type

name : هو أسم الدالة التي تحددها

lib : موقع وجود المكتبة library وعلى سبيل المثال أسم المكتبة gdi32 ، kernel32 ، user32 ،....ألخ

alias :هي أسم الدلالة حيث يتم عن طريقها تعريف البرنامج الفرعي أو الدالة في المكتبة

arguments : هي أسم المتغيرات المستقلة المستخدمة من قبل دالة API التي تعرف بعبارة TYPE .

type : نوع المتغير المرجع لدالة API .

تمرير المتغيرات المستقلة Arguments :

لغة VB بصورة أساسية تمرر المتغيرات أستناداً الى المرجع ، أي بمعنى VB تمرر عناويين الذاكرة المخزونة فيها هذه المتغيرات يدلاً من تمرير قيمة المتغيير ، فلهاذا سنلاحظ كثيراً أستخدام ByVal وذلك لتغيير أسلوب التمرير للتمرير بقيمة المتغيير.

الجزم strings :

عند تمرير الحزم يجب أن تمرر باسلوب التمرير بالقيمة دائماً أي أستخدام ByVal

القيم Null :

عند عدم تثبيت قيمة المتغيير الحزمي فأن حالة API ستمرر القيمة البدائية Null بدلاً عن أنه فارغ . وهناك شئ أخر يجب عمله قبل تعريف دوال API المستخدمة مع الحزم وهو تعريف حجم الحيز الخاص بالحزمة عن طريق أستخدام DIM ، مثال DIM txt As String * 256 .

المناولة Handles :

كثير من دوال API تستخدم المناولة في برنامجها الفرعي لتمثيل عناصرها. ومنها مناولة التي تشير للويندوز HWND ، مناول الصور HBITMAP ومناولة تحديد الجهاز HDC .......ألخ. المناولات هي لاشئ سوى أنها أعداد صحيحة تمثل العنصر وعند أستخدامها من قبل دالة API يجب تعريفها على أنها ByVal Long وهي فقط أرقام وليست لها معنى أذا أستعملت خارج الجالة.

4- أستدعاء الدالة أو البرنامج الفرعي call routine :

بعد الأنتهاء من تعريف المحتويات أو البيانات يجب تثبيت دالة API ويتم أستدعائها كما تستدعى أي دالة أعتيادية في VB .

ومن خلال الأمثلة سأحاول شرح معظم دوال API الأكثر أستعمالاً والتي سوف تستفاد منها في تطوير برامجك.

المثال الأول : جعل الفورم ذات شفافية . من الممكن أنكم لاحظتم من لديه نظام التشغيل ويندوز 2000 و XP أنها تمتلك بعض النوافذ تمتلك شفافية تستطيع من خلالها رؤية ماموجود تحتها. لذا غي هذا المثال سأبرمج هذه الخاصية بأستعمال دوال API مع شرح كل دالة .

سيتكون البرنامج من فورم أسمه frmMain يتكون من عنصريين HScrollBar أسمه scrTransparancy و Label أسمه lblStatus ، أما الموجل Modules أسمه modTransparant

الدوال المستخدمة:

SetLayeredWindowAttributes : دالة تستخدم لأعداد عدم الشفافية والألوان الرئيسية للويندوز ذات الطبقات.

Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

hwnd

مناولة إلى النافذةِ ذات الطبقاتِ. أي صفّفَ النافذةَ المَخْلُوقةُ بتَحديد WS_EX_LAYERED متى َخْلقُ النافذةَ بدالة CreateWindowEx أَو بوضع WS_EX_LAYERED عن طريق SetWindowLong بعد خُلِق النافذةِ .

crKey

تركيب Colorref الذي يُحدّدُ مفتاحَ لونِ الشفافيةَ لكي يُستَعملَ متى يَعدُّ النافذةَ ذات الطبقاتَ. كُلّ نقاط الشاشة تصَبغ بالنافذةِ بهذا اللونِ وسَيَكُونُ شفّاف. لتَوليد Colorref، يَستعملُ ماكرو RGB.

bAlpha

قيمة ألفا تُستَعملُ لوَصْف عدمِ شفافية النافذةِ ذات الطبقاتِ. مشابه لSourceConstantAlpha عضو تركيبِ Blendfunction. عندما تكون bAlphaقيمتها مساوية ل 0 ، النافذة شفّافةُ جداً. عندما تكون قيمة bAlpha مساوية 255، النافذة بليدةُ.

dwFlags

يُحدّدُ العمل الذي سوف يتَخْذ. هذا البارامترِ يُمكنُ أَنْ يَكُونَ واحد أَو أكثر مِنْ القِيَمِ التاليةِ.

LWA_COLORKEY

إستعمال crKey كلون الشفافيةَ.

LWA_ALPHA

إستعمال bAlpha لتَقْرير عدمِ شفافية النافذةِ ذات الطبقاتِ.

UpdateLayeredWindow:

Private Declare Function UpdateLayeredWindow Lib "user32" (ByVal hWnd As Long, ByVal hdcDst As Long, pptDst As Any, psize As Any, ByVal hdcSrc As Long, pptSrc As Any, crKey As Long, ByVal pblend As Long, ByVal dwFlags As Long) As Long

hwnd

مناولة إلى النافذةِ ذات الطبقاتِ. أي صفّفَ النافذةَ المَخْلُوقةُ بتَحديد WS_EX_LAYERED متى َخْلقُ النافذةَ بدالة CreateWindowEx أَو بوضع WS_EX_LAYERED عن طريق SetWindowLong بعد خُلِق النافذةِ

.hdcDst

مناولة إلى سياق أداةِ (دي سي) للشاشةِ. هذه المناولة تحصل عندما تستدْعى الدالة وتكون قيمتها محددة ب Null. هو يستعمل لتطابق لونِ لوحة الألوانِ عندما تحدث محتويات النافذةَ . إذا كانت قيمة hdcDst مساوية ل NULL، سوف تكون لوحة الألوان الأصلية مستعملة.

إذا كانت hdcSrc قيمتها Null , يَجِبُ أَنْ يَكُونَ hdcDstقيمتها Null.

pptDst

مؤشر إلى تركيب النقطةِ الذي يُحدّدُ موقعَ الشاشةِ الجديدِ للنافذةِ ذات الطبقاتِ. إذا كان الموقعِ الحاليِ غير متغيّرُ , يُمكنُ أَنْ يَكُونَ قيمة pptDst مساوية ل Null..

psize

[في] مؤشر إلى a تركيب حجمِ الذي يُحدّدُ الحجمَ الجديدَ للنافذةِ ذات الطبقاتِ. إذا حجمِ النافذةِ لا يَتغيّرُ , psize يُمكنُ أَنْ يَكُونَ ملغيَ. إذا hdcSrc ملغيُ , psize يَجِبُ أَنْ يَكُونَ ملغيَ.

hdcSrc

المناولة إلى دي سي للسطحِ الذي يُعرّفُ النافذةَ ذات الطبقاتَ. هذه المناولة يُمْكِنُ أَنْ يُحْصَلَ عليه بدَعوة دالة CreateCompatibleDC. إذا لم يتغيير الشكلِ والسياقِ البصريِ مِنْ النافذةِ ,فيُمكنُ أَنْ يَكُونَ قيمة hdcSrcَ مساوية ل Null .

pptSrc

مؤشر إلى تركيب النقطةِ الذي يُحدّدُ موقعَ الطبقةِ في سياقِ الأداةَ. إذا كانت قيمة hdcSrc مساوية ل Null ,فيَجِبُ أَنْ تَكُونَ قيمة pptSrc مساوية ل Null.

crKey

تركيب Colorref الذي يُحدّدُ مفتاحَ لونِ الشفافيةَ لكي يُستَعملَ متى يَعدُّ النافذةَ ذات الطبقاتَ. كُلّ نقاط الشاشة تصَبغ بالنافذةِ بهذا اللونِ وسَيَكُونُ شفّاف. لتَوليد Colorref، يَستعملُ ماكرو RGB.

pblend

مؤشر إلى تركيب Blendfunction الذي يُحدّدُ قيمةَ الشفافيةَ لكي يُستَعملَ متى يَعدُّ النافذةَ ذات الطبقاتَ.

dwFlags

هذا المتغيير يُمكنُ أَنْ يَكُونَ أحد القِيَمِ التاليةِ.

ULW_ALPHA

إستعمال pblend كدالة للمزيجَ. إذا كان نمطِ العرضَ 256 لونُ أَو أقل، تأثير هذه القيمةِ تماماً مثل تأثير ULW_OPAQUE

ULW_COLORKEY

إستعمال crKey كلون الشفافيةَ.

ULW_OPAQUE

إسحبْ نافذةَ ذات طبقاتَ بليدةَ.

إذا كانت قيمة hdcSrc مساوية ل Null , فأَنْ قيمة dwFlags يَجِبُ أن تكون صفر

GetWindowLong : هي الدالة المستخدمة لأسترجاع المعلومات المتعلقة بالويندوز المحدد، وتكون القيم للمعلومات المسترجعة من قبل هذه الدالة 32-bit وأذا أردت أسترجاع القيم 64-bit فيجب أستخدام الدالة GetWindowLongPtr .

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long

hwnd : معالجْ أو المناولة إلى النافذةِ، وبشكل غير مباشر، صنف class للنافذة التي تَعُودُ.

nIndex : ُحدّدُ المرجع أي نقطة الصفر إلى القيمةِ الّتي سَتُستَرجعُ. القِيَم الممكنة تكون في المدى صفر الى عددِ بايتاتِ ذاكرةِ النافذةِ الإضافيةِ، ناقص أربعة؛ على سبيل المثال، إذا حدّدتَ 12 أَو بايتاتَ أكثرَ مِنْ الذاكرةِ الإضافيةِ , 8 سَتَكُونُ قيمة دليل 32-bit الثالثِ من العدد الصحيح. لإسْتِرْجاع أيّ قيمة أخرى، يُحدّدُ القِيَمِة التاليةِ.

GWL_EXSTYLE التي تمثل أسترجاع أساليب الويندوز الممتدة.

SetWindowLong : الحالة التي تُغيّرُ خاصيّةَ النافذةِ المحدّدةِ.

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

dwNewLong : يُحدّدُ قيمةَ البديلَ.

الكود بصورة كاملة – أطبع هذا الكود غي modTransparant

Option Explicit

'Transparancy API's

Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Private Declare Function UpdateLayeredWindow Lib "user32" (ByVal hWnd As Long, ByVal hdcDst As Long, pptDst As Any, psize As Any, ByVal hdcSrc As Long, pptSrc As Any, crKey As Long, ByVal pblend As Long, ByVal dwFlags As Long) As Long

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Const GWL_EXSTYLE = (-20)

Private Const LWA_COLORKEY = &H1

Private Const LWA_ALPHA = &H2

Private Const ULW_COLORKEY = &H1

Private Const ULW_ALPHA = &H2

Private Const ULW_OPAQUE = &H4

Private Const WS_EX_LAYERED = &H80000

Public Function isTransparent(ByVal hWnd As Long) As Boolean

On Error Resume Next

Dim Msg As Long

Msg = GetWindowLong(hWnd, GWL_EXSTYLE)

If (Msg And WS_EX_LAYERED) = WS_EX_LAYERED Then

isTransparent = True

Else

isTransparent = False

End If

If Err Then

isTransparent = False

End If

End Function

Public Function MakeTransparent(ByVal hWnd As Long, ByVal Perc As Integer) As Long

Dim Msg As Long

On Error Resume Next

Perc = ((100 - Perc) / 100) * 255

If Perc < 0 Or Perc > 255 Then

MakeTransparent = 1

Else

Msg = GetWindowLong(hWnd, GWL_EXSTYLE)

Msg = Msg Or WS_EX_LAYERED

SetWindowLong hWnd, GWL_EXSTYLE, Msg

SetLayeredWindowAttributes hWnd, 0, Perc, LWA_ALPHA

MakeTransparent = 0

End If

If Err Then

MakeTransparent = 2

End If

End Function

Public Function MakeOpaque(ByVal hWnd As Long) As Long

Dim Msg As Long

On Error Resume Next

Msg = GetWindowLong(hWnd, GWL_EXSTYLE)

Msg = Msg And Not WS_EX_LAYERED

SetWindowLong hWnd, GWL_EXSTYLE, Msg

SetLayeredWindowAttributes hWnd, 0, 0, LWA_ALPHA

MakeOpaque = 0

If Err Then

MakeOpaque = 2

End If

End Function

الكود في ال frmMain

Option Explicit

Private Sub scrTransparancy_Change()

modTransparant.MakeTransparent Me.hWnd, scrTransparancy.Value

lblStatus.Caption = CStr(scrTransparancy.Value) & "% transparancy"

End Sub

#74

السلام عليكم

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

كيفية استخدام دوال الــ API المسئولة عن تغيير شكل الــ (FORM)

برنامج allapi , برنامج به >1000 كودومثال لAPI

دروس عن واجهة برمجة التطبيقات API

قراءة جدول اتصالات TCP الفعالة, شرح تفصيلي لأحد دوال IP Helper API

استعراض المنافذ و البرامج التي تتحكم فيها, شرح تفصيلي لأحد دوال IP Helper API

تم تعديل هذه المشاركة بواسطة hanysaad في 9 يناير 2006 في 18:41

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

#75

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

مع هذه المشاركة المتأخرة في هذا الموضوع الرائع سوف اتحدث بشكل مختصر حول دالة ادارة الذاكرة..

اسم الدالة: GlobalMemoryStatus

شرح: تعيد قيم بإستخدامات الذاكرة الفيزيائية والظاهرية

طريقة كتابتها:

Public Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MemoryStatus)

قم بتصريح المتغيير MemoryStatus كالتالي:

Public Type MemoryStatus
		dwLength As Long
		dwMemoryLoad As Long
		dwTotalPhys As Long
		dwAvailPhys As Long
		dwTotalPageFile As Long
		dwAvailPageFile As Long
		dwTotalVirtual As Long
		dwAvailVirtual As Long
End Type

تم تعديل هذه المشاركة بواسطة كلمة الـعـرب في 24 يونيو 2006 في 21:27

((رحلة العودة الى العالم الافتراضي قد بدأت))

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

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