الحالة
مغلق و غير مفتوح للمزيد من الردود.
توقيع : موريادي
[1] (Win / Control) - مقدمة :: الجزء الأول

[1] (Win / Control) - مقدمة :: الجزء الأول

بسم الله الرحمن الرحيم

قبل شرح أوامر التحكم بالواجهات (Win / Control)

سوف أعطيكم مقدمة بسيطة عنها


فوائد هذه الأوامر:

1- إمكانية التغيير في شكل واجهة (نافذة) موجودة أمامك

2- المساعدة في إضفاء حركات وجماليات إضافية

3- المساعدة في مشاريع مهمة:
أ - التنصيب التلقائي (وليس الصامت)
ب - برامج الحماية عبر كشف معلومات عن النوافذ
جـ - تطبيقات ومشاريع أخرى كثيرة


تكون صيغة أوامر Win هكذا عادة مع اختلاف المهام

كود:
Winxxxx(Title, Text, xxxx...etc)

Title = عنوان النافذة التي تريدها (تكتب النص الذي في العنوان)

Text = أي نص مكتوب في الواجهة أو النافذة وبإمكانك تركه فارغ ("")
ولكن يفضل تكتبه إذا كنت تعمل على تنصيب تلقائي بسبب تشابه العناوين

xxxx...etc = تختلف حسب نوع الأمر


أما صيغة أوامر Control تكون هكذا عادة مع اختلاف المهام

كود:
Controlxxxx(Title, Text, ControlID, xxxx...etc)

Title = عنوان النافذة

Text = أي نص مكتوب في الواجهة

ControlID = عنوان ورقم الكائن (زر أو نص.. الخ) في الواجهة وهذه سنتطرق لشرحها لاحقًا في الجزء الثاني

xxxx...etc = تختلف حسب نوع الأمر


البقية في الجزء الثاني :kmj-by0000 (72):
 
[1] (Win / Control) - مقدمة :: الجزء الثاني

[1] (Win / Control) - مقدمة :: الجزء الثاني

بعدما عرفتم ماهية أوامر (Win / Control)

سنشرح في هذا الجزء طريقة استخدام تسمية الويندوز للنوافذ والكائنات في الأوامر


فمثلا عندما تتحكم بنافذة ما (واجهة) عليك إذا إدخال عنوانها حتى يتعرف عليها الأمر

ولكن افترض أن هذه النافذة تغير عنوانها دائما كما هو الحال مع المتصفحات مثلا :ok:

كيف إذًا بالإمكان التحكم في النوافذ أو الواجهة !

الجواب عن هذا السؤال هو باستخدام التسمية الخفية الدائمة لهذه النوافذ (Class)


فمثلا هذا الأمر يتحكم بنافذة عنوانها Windows Internet Explorer

كود:
Winxxx("Windows Internet Explorer", "",..etc)

ونحن نعرف أن التسمية لهذا المتصفح عادة هكذا:

Windows Internet Explorer - Title Of The Page

Title Of The Page = عنوان الصفحة التي تتصفحها

وهكذا لن يتعرف الأمر على المتصفح ولن يتحكم فيه مع اختلاف الصفحات وعناوينها

فالأفضل تستخدم التسمية الخفية للنافذة

بالصيغة التالية في خانة (Title):

كود:
Winx("[Class:xxxx]", "")

[Class:xxxx] --- في خانة العنوان وانتبه دائمًا أن يكون بين علامتي تنصيص ""

xxxx = اسم النافذة الخفي الدائم

وينطبق الأمر كذلك على أوامر Control في خانة Title


أما بالنسبة إلى ControlID في أوامر Control في هذه الصيغة يكون:

كود:
Controlx(Title, Text, "[Class:xxx1; Instance: xxx2]")

[Class:xxx1; Instance: xxx2] --- في خانة الكنترول وانتبه دائمًا أن يكون بين علامتي تنصيص ""

xxx1 = العنوان الخفي للكائنات في الواجهة ويكون عادة Button للأزرار وStatic للنصوص وقد يختلف

xxx2 = رقم الزر أو النص أو الكائن في الواجهة


السؤال هنا يطرح نفسه: كيف نخرج العنوان الخفي للنافذة وكائناتها ورقم الكائن؟

الجواب: عبر استخدام أداة Autoit v3 Windows Info


طريقة استخدام الأداة:

1- افتح مجلد الأداة في قائمة ابدأ وابحث عنها أو ادخل هذا الأمر:

كود:
%ProgramFiles%\AutoIt3\Au3Info.exe


2- اتبع شرح الصور:

أ- اسحب الزر إلى الواجهة

8af64e41b75f87d7aaf4e51b881d8178.jpg



ب- بعد سحب الزر واختيار نافذة + كائن معين يظهر لك التالي:


829728279ac687fc24d02c71403629e6.jpg



1- الإسم الخفي للنافذة أو الواجهة (وهو الاسم الخفي لـ Internet Explorer هنا)

2- الإسم الخفي للكائن الذي تم التأشير عليه (وهو عرض الصفحة هنا)

3- رقم الكائن (وهو الرقم 1)


بعد قراءتك للبيانات الأعلاه تضع الأمر بهذا الشكل

إذا كان أمر التحكم بالواجهة فقط دون الكائنات داخله يكون الشكل العام هكذا:

كود:
Winx("[Class:IEFrame]", "",..etc)


وإذا كان أمر التحكم بالكائنات يكون الشكل العام هكذا:

كود:
Controlx("[Class:IEFrame]", "", "[Class:Internet Explorer_Server; Instance:1]",..etc)


ولا تنسوا دائما أن يكون الشكل العام للعنوان هكذا ويوضح في خانة العنوان (Title):

كود:
[Class:xxx]

xxx = العنوان الخفي للنافذة ويظهر لك في أداة Windows Info في الرقم 1


والشكل العام للكائنات هكذا ويوضع في خانة الكنترول (ControlID):

كود:
[Class:xxx1; Instance:xxx2]

xxx1 = العنوان الخفي للكائن ويظهر لك في أداة Windows Info في الرقم 2

xxx2 = الرقم للكائن ويظهر لك في أداة Windows Info في الرقم 3


اعتذر عن الإطالة

تم الدرس...
 
[2] التفاعل مع النافذة .

[2] التفاعل مع النافذة

بسم الله الرحمن الرحيم .

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

الدالة WinExists

تقوم هذه الدالة بالتحقق من وجود النافذة .

لايهم هل النافذة مصغره أو خلف النوافذ او النافذة الحالية . الداله فقط تتحقق هل النافذة موجودة .

الصورة العامة :
كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]
المدخلات :

title : نضع فيه عنوان النافذة أو الClass تبعها إذا كنا سنتبع الاسلوب المتقدم .
text : نص تحتوي علية النافذة . (إختياري)

راح تتكرر معنا هذه المدخلات بإختلاف الدوال وعملها . وهي تقريباً هي ثابته . كما وضح يونس في الدرس السابق .

المخرجات :

إذا كانت النافذة غير موجودة ترجع الدالة 0
إذا كانت النافذة موجودة ترجع الدالة 1

مثال :

كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]IF[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:CalcFrame]"[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]524288[/i][/color] [color=#FF0000]+[/color] [color=#AC00A9][i]64[/i][/color][color=#FF0000],[/color][color=#9999CC]""[/color][color=#FF0000],[/color][color=#9999CC]"النافذة موجودة"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Else][color=#0000FF]Else[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]524288[/i][/color] [color=#FF0000]+[/color] [color=#AC00A9][i]64[/i][/color][color=#FF0000],[/color][color=#9999CC]""[/color][color=#FF0000],[/color][color=#9999CC]"النافذة غير موجودة"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]endif[/color][/url]

الدالة : WinActive

الصورة العامة :

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinActive.htm][color=#000090][i]WinActive[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]

هذه الدالة تتحق من أن النافذة المحدده هي النافذة المفعله (أي التي فوق جميع النوافذ الحالية والتي يستطيع المستخدم التعامل معها )

المدخلات : نفس مدخلات الدالة السابقة .

المخرجات :

في حالة أن النافذة غير مفعلة ترجع الدالة ب0
في حالة أن النافذة مفعلة ترجع الدالة ب1
مثال :

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/Run.htm][color=#000090][i]run[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"mspaint.exe"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm][color=#000090][i]Sleep[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]1000[/i][/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]IF[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:MSPaintApp]"[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]524288[/i][/color] [color=#FF0000]+[/color] [color=#AC00A9][i]64[/i][/color][color=#FF0000],[/color][color=#9999CC]"نافذة أداة الرسم"[/color][color=#FF0000],[/color][color=#9999CC]"النافذة مفعلة"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Else][color=#0000FF]Else[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]524288[/i][/color] [color=#FF0000]+[/color] [color=#AC00A9][i]64[/i][/color][color=#FF0000],[/color][color=#9999CC]"نافذة أداة الرسم"[/color][color=#FF0000],[/color][color=#9999CC]"النافذة غير مفعلة"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]endif[/color][/url]


الدالة WinFlash :

هدف هذه الدالة هو جذب المستخدم لنافذه معينة ..

فالدالة تجعل النافذة تومض في شريط المهام (مهم للنافذة الغير مفعله ) .

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinFlash.htm][color=#000090][i]WinFlash[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color][color=#9999CC]"text"[/color] [color=#FF0000][,[/color]flashes [color=#FF0000][,[/color]delay[color=#FF0000]]]] )[/color]

المدخلات :

نفس المدخلات السابقه .إلا إنه يجود لدينا مدخلين إضافيين .

flashes : (إختياري)عدد مرات الوميض ( الافتراضي هو 4 مرات)

delay : فتره التوقف بين كل وميض وآخرى يحدد بmilliseconds جزء من الالف في الثانية الواحده بمعني 1000 = ثانية ( الافتراضي 500 أي نصف ثانية .)

المخرجات : لايوجود .
مثال :

كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]if[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:MSPaintApp]"[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#And][color=#0000FF]and[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Not][color=#0000FF]not[/color][/url][color=#FF0000]([/color][url=http://www.autoitscript.com/autoit3/docs/functions/WinActive.htm][color=#000090][i]WinActive[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:MSPaintApp]"[/color][color=#FF0000]))[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/WinFlash.htm][color=#000090][i]WinFlash[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:MSPaintApp]"[/color][color=#FF0000],[/color][color=#9999CC]""[/color][color=#FF0000],[/color][color=#AC00A9][i]4[/i][/color][color=#FF0000],[/color][color=#AC00A9][i]500[/i][/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Else][color=#0000FF]Else[/color][/url]
     [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]524288[/i][/color] [color=#FF0000]+[/color] [color=#AC00A9][i]64[/i][/color][color=#FF0000],[/color][color=#9999CC]"نافذة أداة الرسم"[/color][color=#FF0000],[/color][color=#9999CC]"النافذة غير موجودة"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]endif[/color][/url]

الدالة WinActivate :

عمل الدالة هو تفعيل نافذة معنية (جعل التركيز عليها حيث تكون فوق النوافذ الاخرى )

الصورة العامة :

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinActivate.htm][color=#000090][i]WinActivate[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]

المدخلات : نفس مدخلات الدالة الاولى .

المخرجات :
في حالة عدم إمكانية تفعيل النافذة (أي غير موجودة)ترجع الدالة ب0
في حالة تفعيل النافذة ترجع الدالة بمقبض او مؤشر للنافذة (سنعرف فائدته عند الحاجة إلية) . وهو عباره عن رقم عشري .

مثال :

كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]IF[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Not][color=#0000FF]Not[/color][/url][color=#FF0000]([/color][url=http://www.autoitscript.com/autoit3/docs/functions/WinActive.htm][color=#000090][i]WinActive[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:MSPaintApp]"[/color][color=#FF0000]))[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]

    [url=http://www.autoitscript.com/autoit3/docs/functions/WinActivate.htm][color=#000090][i]WinActivate[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:MSPaintApp]"[/color][color=#FF0000])[/color]

[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]Endif[/color][/url]



الدالة WinClose

هذه الدالة تقوم بإغلاق النافذة .

الصورة العامة :

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinClose.htm][color=#000090][i]WinClose[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]

المدخلات : نفس مدخلات الدالة الاولى

المخرجات :
إذا لم تتمكن الدالة من إغلاق النافذة ترجع ب0
إذا أغلقت النافذة بنجاح ترجع 1

مثال :

كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]IF[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:MSPaintApp]"[/color][color=#FF0000]))[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]

    [url=http://www.autoitscript.com/autoit3/docs/functions/WinClose.htm][color=#000090][i]Winclose[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:MSPaintApp]"[/color][color=#FF0000])[/color]

[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]Endif[/color][/url]



 
توقيع : waget
شغل مرتب :kmj-by0000 (72):
 
توقيع : LINEZERO
[3] انتظار النافذة

[3] انتظار النافذة

بسم الله الرحمن الرحيم


أمر انتظار النافذة حتى تظهر وهي الدالة:

WinWait

ولا يهم إذا كانت النافذة مصغرة أم مكبرة أم مخفية ...الخ، المهم إن هذا الأمر يكشف عن وجودها


الصورة العامة:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWait.htm][color=#000090][i]WinWait[/i][/color][/url] [color=#FF0000]([/color][color=#9999CC]"title"[/color][color=#FF0000][,[/color] [color=#9999CC]"text"[/color] [color=#FF0000][,[/color] timeout[color=#FF0000]]] )[/color]

المدخلات:

title = عنوان النافذة الحرفي، أو الـ Class الخاص بها

text = أي نص موجود في النافذة وبإمكانك تركه فارغًا --> ""

timeout = (اختياري) زمن الانتظار بـ الثانية وليست الملي ثانية (أي إذا ادخلت 5 يعني سيترك انتظار النافذة بعد 5 ثواني)

ملاحظة: إذا لم تدخل أي شيء في خانة الـ timeout سينتظر الاوتوات إلى الأبد حتى تظهر النافذة


المخرجات:

إذا وضعت زمنًا محددًا:

وانتهى الزمن قبل ظهور النافذة تخرج القيمة 0
وإذا ظهرت النافذة قبل انتهاء الزمن تخرج قيمة الـ Hundle للنافذة


إذا لم تضع زمنا محددًا: (للأبد)

بما أن الأمر ينتظر للأبد أي إن القيمة 0 مستحيلة هنا لأنه يجب أن تظهر النافذة لتكمل الاداة الاوامر
ولكن إذا ظهرت النافذة تخرج قيمة الـ Hundle للنافذة وتكمل الأوامر المتبقية أسفلها


طبعا لن أشرح قيمة الـ Hundle لأنه يحتاج إلى تقدم أكبر في الـ Autoit v3 وشرح يختلف عن الأوامر العادية اختلافًا تامًّا


مثال على انتظار ظهور الآلة الحاسبة لمدة 10 ثواني:

كود:
[color=#AA0000]$A[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinWait.htm][color=#000090][i]WinWait[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[Class:CalcFrame]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#AC00A9][i]10[/i][/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [color=#AA0000]$A[/color] [color=#FF0000]=[/color] [color=#AC00A9][i]0[/i][/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"انتهى الزمن المحدد ولم تظهر النافذة"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Else][color=#0000FF]Else[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"ظهرت النافذة قبل انتهاء الزمن المحدد"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]EndIf[/color][/url]

مثال آخر على انتظار ظهور الآلة الحاسبة إلى الأبد:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWait.htm][color=#000090][i]WinWait[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[Class:CalcFrame]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"لقد ظهرت النافذة"[/color][color=#FF0000])[/color]



أمر انتظار النافذة حتى تغلق (تصبح غير موجودة) وهي الدالة:

WinWaitClose

أي أنه يجب أن تكون النافذة غير موجودة أو تم إغلاقها


الصورة العامة:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWaitClose.htm][color=#000090][i]WinWaitClose[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color] [color=#FF0000][,[/color] timeout[color=#FF0000]]] )[/color]

المدخلات:

نفس مدخلات الدالة WinWait


المخرجات:

نفس مخرجات الدالة WinWait


مثال على انتظار إغلاق الآلة الحاسبة لمدة 10 ثواني:

كود:
[color=#AA0000]$A[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinWaitClose.htm][color=#000090][i]WinWaitClose[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[Class:CalcFrame]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#AC00A9][i]10[/i][/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [color=#AA0000]$A[/color] [color=#FF0000]=[/color] [color=#AC00A9][i]0[/i][/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"انتهى الزمن المحدد وما زالت النافذة موجودة"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Else][color=#0000FF]Else[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"أغلقت النافذة قبل انتهاء الزمن المحدد"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]EndIf[/color][/url]

مثال آخر على انتظار إغلاق الآلة الحاسبة إلى الأبد:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWaitClose.htm][color=#000090][i]WinWaitClose[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[Class:CalcFrame]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"لقد أغلقت النافذة"[/color][color=#FF0000])[/color]



أمر انتظار النافذة حتى تصبح مفعلة (فوق الجميع) وهي الدالة:

WinWaitActive

أي أنه من المهم أن تكون النافذة موجودة + مفعلة (فوق جميع النوافذ)


الصورة العامة:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWaitActive.htm][color=#000090][i]WinWaitActive[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color] [color=#FF0000][,[/color] timeout[color=#FF0000]]] )[/color]

المدخلات:

نفس مدخلات الدالة WinWait


المخرجات:

نفس مخرجات الدالة WinWait


مثال على انتظار أن تكون الآلة الحاسبة مفعلة لمدة 10 ثواني:

كود:
[color=#AA0000]$A[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinWaitActive.htm][color=#000090][i]WinWaitActive[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[Class:CalcFrame]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#AC00A9][i]10[/i][/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [color=#AA0000]$A[/color] [color=#FF0000]=[/color] [color=#AC00A9][i]0[/i][/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"انتهى الزمن المحدد ولم تصبح النافذة مفعلة أو أنها ليست موجودة أصلًا"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Else][color=#0000FF]Else[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"أصبحت النافذة مفعلة قبل انتهاء الزمن المحدد"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]EndIf[/color][/url]

مثال آخر على انتظار أن تصبح الألة الحاسبة مفعلة إلى الأبد:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWaitActive.htm][color=#000090][i]WinWaitActive[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[Class:CalcFrame]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"أصبحت النافذة مفعلة"[/color][color=#FF0000])[/color]



أمر انتظار النافذة حتى تصبح غير مفعلة (أي فوقها نوافذ أو مصغرة) وهي الدالة:

WinWaitNotActive

أي أنه يجب أن تكون النافذة غير موجودة أو غير مفعلة (أحدهما)


الصورة العامة:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWaitNotActive.htm][color=#000090][i]WinWaitNotActive[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color] [color=#FF0000][,[/color] timeout[color=#FF0000]]] )[/color]

المدخلات:

نفس مدخلات الدالة WinWait


المخرجات:

نفس مخرجات الدالة WinWait


مثال على أن تكون الآلة الحاسبة غير موجودة أو غير مفعلة لمدة 10 ثواني:

كود:
[color=#AA0000]$A[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinWaitNotActive.htm][color=#000090][i]WinWaitNotActive[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[Class:CalcFrame]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#AC00A9][i]10[/i][/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [color=#AA0000]$A[/color] [color=#FF0000]=[/color] [color=#AC00A9][i]0[/i][/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"انتهى الزمن المحدد وما زالت النافذة مفعلة"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Else][color=#0000FF]Else[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"أصبحت النافذة غير مفعلة أو غير موجودة قبل انتهاء الزمن المحدد"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]EndIf[/color][/url]

مثال آخر على أن تكون الألة الحاسبة غير مفعلة أو غير موجودة إلى الأبد:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWaitNotActive.htm][color=#000090][i]WinWaitNotActive[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[Class:CalcFrame]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"أصبحت النافذة غير مفعلة أو غير موجودة"[/color][color=#FF0000])[/color]



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

انتهى الدرس...
 
[4] التلاعب بخصائص النافذة


[4] التلاعب بخصائص النافذة

بسم الله الرحمن الرحيم .

في هذا الدرس إن شاء الله سنتعلم كيفية

الاستعلام عن الخصائص والتعديل عليها .

الدالة WinGetPos

هذه الدالة تجلب لنا معلومات عن موضع النافذة على الشاشة + حجمها .

الصورة العامة :

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinGetPos.htm][color=#000090][i]WinGetPos[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]

المدخلات :

title : نضع فيه عنوان النافذة أو الClass تبعها إذا كنا سنتبع الاسلوب المتقدم .
text : نص تحتوي علية النافذة . (إختياري)

المخرجات :

في حالة وجود النافذة ترجع الدالة مصفوفة . بها ثلاث عناصر .

العنصر الاول بها يحوي قيمة الموضع X لنافذة على سطح المكتب.
العنصر الثاني يحوي قيمة الموضعY لنافذة على سطح المكتب.
العنصر الثالث يحوي عرض النافذ .
العنصر الرابع يحوي إرتفاع النافذة .

في حالة عدم وجود النافذة ترجع الدالة بـ 0

مثال :
كود:
[color=#AA0000]$WinPos[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinGetPos.htm][color=#000090][i]winGetPos[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]if[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/IsArray.htm][color=#000090][i]IsArray[/i][/color][/url][color=#FF0000]([/color][color=#AA0000]$WinPos[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]48[/i][/color][color=#FF0000],[/color][color=#9999CC]""[/color][color=#FF0000],[/color][color=#9999CC]"X Pos : "[/color] [color=#FF0000]&[/color] [color=#AA0000]$WinPos[/color][color=#FF0000][[/color][color=#AC00A9][i]0[/i][/color][color=#FF0000]] &[/color] [url=http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf][color=#FF33FF]@Crlf[/color][/url] [color=#FF0000]& _[/color]
                [color=#9999CC]"Y Pos : "[/color] [color=#FF0000]&[/color] [color=#AA0000]$WinPos[/color][color=#FF0000][[/color][color=#AC00A9][i]1[/i][/color][color=#FF0000]] &[/color] [url=http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf][color=#FF33FF]@crlf[/color][/url] [color=#FF0000]& _[/color]
                [color=#9999CC]"width : "[/color] [color=#FF0000]&[/color][color=#AA0000]$WinPos[/color][color=#FF0000][[/color][color=#AC00A9][i]2[/i][/color][color=#FF0000]] &[/color] [url=http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf][color=#FF33FF]@crlf[/color][/url] [color=#FF0000]& _[/color]
                [color=#9999CC]"height :"[/color] [color=#FF0000]&[/color][color=#AA0000]$WinPos[/color][color=#FF0000][[/color][color=#AC00A9][i]1[/i][/color][color=#FF0000]])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]endif[/color][/url]
[MARK="#FF0000"]ملاحظة : الدالة IsArray تتحقق هل المتغير المرسل يشير إلى مصفوفة . وترجع 1 إذا كان نعم والعكس 0[/MARK]

[MARK="#FF0000"]ملاحظة : إذا كانت النافذة مصغره ستكون النتيجة رقم سالب يفضل قبل أخذ القيمة التأكد من عدم تصغيرها[/MARK]

الدالة WinMove

هذه الدالة تمكننا من تغيير موضع النافذة وحجمها .

الصورة العامة :

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinMove.htm][color=#000090][i]WinMove[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color][color=#FF0000],[/color] [color=#9999CC]"text"[/color][color=#FF0000],[/color] x[color=#FF0000],[/color] y [color=#FF0000][,[/color] width [color=#FF0000][,[/color] height [color=#FF0000][,[/color] speed[color=#FF0000]]]] )[/color]

title : نضع فيه عنوان النافذة أو الClass تبعها إذا كنا سنتبع الاسلوب المتقدم .
text : نص تحتوي علية النافذة . (إختياري)

X : الموضع X لنافذة على سطح المكتب.
Y : الموضع Y لنافذة على سطح المكتب.
width : (إختياري)عرض النافذة .
height :(إختياري)إرتفاع النافذة.
speed : (إختياري) هذا المدخل يقبل قيمة من 1 (سريع)إلى 100 (بطيء)وهو لتحديد سرعه نقل النافذه إلى الموضع الجديد.

المخرجات :
في حالة النجاح ترجع الدالة ب مقبض النافذة .
في حالة الفشل ترجع الدالة بـ 0 (النافذة غير موجودة )

مثال :

تغيير الموضع :
كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]

    [url=http://www.autoitscript.com/autoit3/docs/functions/WinMove.htm][color=#000090][i]winmove[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color][color=#9999CC]""[/color][color=#FF0000],[/color][color=#AC00A9][i]100[/i][/color][color=#FF0000],[/color][color=#AC00A9][i]100[/i][/color][color=#FF0000],[/color][url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Default][color=#0000FF]Default[/color][/url][color=#FF0000],[/color][url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Default][color=#0000FF]Default[/color][/url][color=#FF0000],[/color][color=#AC00A9][i]20[/i][/color][color=#FF0000])[/color]

[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]endif[/color][/url]

مثال 2 :
تغيير الحجم والموضع ثابت .

كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]

    [url=http://www.autoitscript.com/autoit3/docs/functions/WinMove.htm][color=#000090][i]winmove[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color][color=#9999CC]""[/color][color=#FF0000],[/color][url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Default][color=#0000FF]Default[/color][/url][color=#FF0000],[/color][url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Default][color=#0000FF]Default[/color][/url][color=#FF0000],[/color][color=#AC00A9][i]400[/i][/color][color=#FF0000],[/color][color=#AC00A9][i]200[/i][/color][color=#FF0000])[/color]

[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]endif[/color][/url]


ملاحظات :

موضع النافذة يعتمد على الاحداثي X , Y للشاشة حيث أن 0,0 يعني الزاوية اليسرى العليا للشاشة .

الماكرو @DesktopHeightيرجع إرتفاع الشاشة الكلي .

الماكرو @DesktopWidthيرجع بعرض الشاشة الكلي .


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


الدالة WinGetProcess

الدالة ترجع برقم العملية الفريد PID للنافذة .

الصورة العامة :

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinGetProcess.htm][color=#000090][i]WinGetProcess[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]


المدخلات :

title : نضع فيه عنوان النافذة أو الClass تبعها إذا كنا سنتبع الاسلوب المتقدم .
text : نص تحتوي علية النافذة . (إختياري)

المخرجات :

في حالة وجود النافذة ترجع ب PID الخاص بعمليتها .

في حالة عدم وجدها ترجع ب -1

مثال :
كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]

    [url=http://www.autoitscript.com/autoit3/docs/functions/ProcessClose.htm][color=#000090][i]ProcessClose[/i][/color][/url][color=#FF0000]([/color][url=http://www.autoitscript.com/autoit3/docs/functions/WinGetProcess.htm][color=#000090][i]WinGetProcess[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000]))[/color]

[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]endif[/color][/url]

الدالة WinGetState

هذه الدلة ترجع بحالة النافذة سنعرفها من خلال المخرجات .

الصورة العامة :
كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinGetState.htm][color=#000090][i]WinGetState[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]
المدخلات :

title : نضع فيه عنوان النافذة أو الClass تبعها إذا كنا سنتبع الاسلوب المتقدم .
text : نص تحتوي علية النافذة . (إختياري)

المخرجات :

النافذة موجودة : 1
النافذة ظاهره : 2
النافذة متاحة : 4
النافذة مفعلة : 8
النافذة في وضع التصغير : 16
النافذة في وضع التكبير : 32

النافذة غير موجودة : 0

قلنا أن المخرجات قد تكون عده قيم من هذه مثلا : إذا كانت الدالة موجود + ظاهره + متاحه الدلة ترجع ب 7

وإذا أردنا التحقق من حاله معينة نستخدم الدالة BitAND للتحقق . لماذا ؟ الدالة تجري العملية على مستوى البت .

مثلا اردنا التحقق هل النافذة ظاهره . نحن نريد التحقق هل القيمه 2 موافقة للمخرج !!

القيمة إثنين بـ Binary تساوي (010) والقيمة 7 تساوي (111) فلو أجرينا عليهما العملية AND المخرج سيكون (010) أي 2

إذاكانت القيمة غير موافقه ناتج العملية يساوي 0

مثال :

كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]

    [color=#AA0000]$State[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinGetState.htm][color=#000090][i]WinGetState[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000])[/color]

    [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]if[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/BitAND.htm][color=#000090][i]BitAND[/i][/color][/url][color=#FF0000]([/color][color=#AA0000]$State[/color] [color=#FF0000],[/color] [color=#AC00A9][i]2[/i][/color] [color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]
        [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]64[/i][/color][color=#FF0000]+[/color][color=#AC00A9][i]524288[/i][/color][color=#FF0000],[/color][color=#9999CC]"نافذة المفكرة"[/color] [color=#FF0000],[/color] [color=#9999CC]"النافذة ظاهره"[/color][color=#FF0000])[/color]
    [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]endif[/color][/url]

[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]endif[/color][/url]


الدالة WinSetState

الدالة تغير أو تعين حاله النافذة والحالات التي تضعها لا تخرج عن المعروفه من الدالة WinGetState

الصورة العامة :

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinSetState.htm][color=#000090][i]WinSetState[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color][color=#FF0000],[/color] [color=#9999CC]"text"[/color][color=#FF0000],[/color] flag [color=#FF0000])[/color]

المدخلات :


title : نضع فيه عنوان النافذة أو الClass تبعها إذا كنا سنتبع الاسلوب المتقدم .
text : نص تحتوي علية النافذة . (إختياري)
flag : نضع هنا الحالة المراد تعيينها - تغييرها ..

وهي واحده من الماكرو التالية :

كود:
[url=http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_hide][color=#FF33FF]@SW_HIDE[/color][/url]  [color=#009933][i]; إخفاء النافذة[/i][/color]
[url=http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_show][color=#FF33FF]@SW_SHOW[/color][/url]  [color=#009933][i]; أظهار النافذة[/i][/color]
[url=http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_minimize][color=#FF33FF]@SW_MINIMIZE[/color][/url]  [color=#009933][i]; تصغير النافذة[/i][/color]
[url=http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_maximize][color=#FF33FF]@SW_MAXIMIZE[/color][/url]  [color=#009933][i]; تكبير النافذة[/i][/color]
[url=http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_restore][color=#FF33FF]@SW_RESTORE[/color][/url] [color=#009933][i]; إستعادة النافذة[/i][/color]
[url=http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_disable][color=#FF33FF]@SW_DISABLE[/color][/url]  [color=#009933][i]; تعطيل النافذة[/i][/color]
[url=http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_enable][color=#FF33FF]@SW_ENABLE[/color][/url]  [color=#009933][i]; تفعيل النافذة[/i][/color]

المخرجات :

إذا تمت العملية بنجاح ترجع الدالة ب1
إذا فشلت ترجع بـ 0

مثال

كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]

    [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]if[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/BitAND.htm][color=#000090][i]BitAND[/i][/color][/url][color=#FF0000]([/color][url=http://www.autoitscript.com/autoit3/docs/functions/WinGetState.htm][color=#000090][i]WinGetState[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000]),[/color][color=#AC00A9][i]2[/i][/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]then[/color][/url]

    [url=http://www.autoitscript.com/autoit3/docs/functions/WinSetState.htm][color=#000090][i]WinSetState[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color][color=#9999CC]""[/color][color=#FF0000],[/color][url=http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_maximize][color=#FF33FF]@SW_MAXIMIZE[/color][/url][color=#FF0000])[/color]
    [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]endif[/color][/url]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]endif[/color][/url]


 
توقيع : waget
[5]جلب معلومات النوافذه

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

[5]جلب معلومات النوافذه


الدالة WinGetTitle

هذه الدالة ترجع ب العنوان الكامل للنافذة .

الصور العامة :

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinGetTitle.htm][color=#000090][i]WinGetTitle[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]

المدخلات :

title : نضع فيه عنوان النافذة أو الClass تبعها إذا كنا سنتبع الاسلوب المتقدم .
text : نص تحتوي علية النافذة . (إختياري)

المخرجات :

في حالة النجاح : ترجع الدالة عنوان النافذة ..

في حالة الفشل ترجع بـ 0 (النافذة غير موجوده)
مثال :

كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]then[/color][/url]
    
    [color=#AA0000]$title[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinGetTitle.htm][color=#000090][i]WinGetTitle[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000])[/color]
    
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color][color=#9999CC]""[/color][color=#FF0000],[/color][color=#AA0000]$title[/color][color=#FF0000])[/color]
    
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]EndIf[/color][/url]


الدالة WinGetText


الدالة تقوم بإرجاع النص الموجود في النافذة .

الصور العامة :

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinGetText .htm][color=#000090][i]WinGetText [/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]

المدخلات :

title : نضع فيه عنوان النافذة أو الClass تبعها إذا كنا سنتبع الاسلوب المتقدم .
text : نص تحتوي علية النافذة . (إختياري)

المخرجات :

في حالة النجاح : ترجع الدالة عنوان النافذة ..

في حالة الفشل ترجع بـ 0 (النافذة غير موجوده)

كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]
    [color=#AA0000]$Text[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinGetText.htm][color=#000090][i]WinGetText[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#AA0000]$Text[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]EndIf[/color][/url]

الدالة WinGetHandle

الدالة ترجع بمقبض أو مؤشر للنافذة ..

الفائدة :

1) يمكننا إرسال المتغير الذي يحمل قيمة المقبض إلى أي دالة من دوال النوافذ أو حتى الكنترول .

طبعاً توضع القيمة مكان المدخل titel . أي أنها طريقة أخرى لوضع القيمة للمدخل title

2)يمكننا إرسال المتغير الذي يحمل قيمة المقبض إلي أي من دوال win32 API التي تتعامل مع النوافذ . والتي لاتقبل إرسال عنوان النافذة .

الصورة العامة :
كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinGetHandle.htm][color=#000090][i]WinGetHandle[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]
المدخلات :

title : نضع فيه عنوان النافذة أو الClass تبعها إذا كنا سنتبع الاسلوب المتقدم .
text : نص تحتوي علية النافذة . (إختياري)

المخرجات :

في حالة النجاح : مقبض أو مؤشر النافذة .
في حالة الفشل : نص فارغ "" .

مثال (1) :

كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]

    [color=#AA0000]$hwin[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinGetHandle.htm][color=#000090][i]WinGetHandle[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
    [url=http://www.autoitscript.com/autoit3/docs/functions/WinSetState.htm][color=#000090][i]WinSetState[/i][/color][/url][color=#FF0000]([/color][color=#AA0000]$hwin[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [url=http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_disable][color=#FF33FF]@SW_DISABLE[/color][/url][color=#FF0000])[/color]

[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]EndIf[/color][/url]

مثال (2) :

كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm##include][color=#F000FF][i]#include[/i][/color][/url] [color=#9999CC]<WinAPI.au3>[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]

    [color=#AA0000]$hwin[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinGetHandle.htm][color=#000090][i]WinGetHandle[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
    [url=http://dundats.mvps.org/help/html/libfunctions/_winapi_enablewindow.htm][color=#808080][i]_WinAPI_EnableWindow[/i][/color][/url][color=#FF0000]([/color][color=#AA0000]$hwin[/color][color=#FF0000],[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#False][color=#0000FF]False[/color][/url][color=#FF0000])[/color]

[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]EndIf[/color][/url]

ملاحظة 1 :

الدالة _WinAPI_EnableWindow
تأخذ مدخلين الاول مقبض النافذة أو الكنترول والثاني الحالة المراد تطبيقها وهو True أي تمكين النافذة
أو الكنترول أو False لتعطيل النافذة أو الكنترول .



الدالة WinGetClientSize :

نعلم أن الدالة WinGetPos ترجع في المصفوفة قيمتي الطول والعرض للنافذة ..

هذه الدالة تقوم بنفس الامر لكن مع إختلاف بسيط .. الدالة تستثني حساب إطار النافذة والعنوان العلوى

أي ترجع طول وعرض المحتويات فقط . الصورة التالية توضح أكثر :

4d15f122fb238bbe68caa0a2c0660979.png


الصورة العامة :

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinGetClientSize.htm][color=#000090][i]WinGetClientSize[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]

المدخلات :

title : نضع فيه عنوان النافذة أو الClass تبعها إذا كنا سنتبع الاسلوب المتقدم .
text : نص تحتوي علية النافذة . (إختياري)

المخرجات :

في حالة النجاح ترجع بصفوفه بها عنصرين العنصر 0 يمثل العرض و 1 يمثل الطول

في حالة الفشل ترجع بـ 0 .

مثال :
كود:
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]

    [color=#AA0000]$size[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinGetClientSize.htm][color=#000090][i]WinGetClientSize[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
    [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]0[/i][/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"Width : "[/color] [color=#FF0000]&[/color] [color=#AA0000]$size[/color][color=#FF0000][[/color][color=#AC00A9][i]0[/i][/color][color=#FF0000]] & _[/color]
            [color=#9999CC]" Height : "[/color] [color=#FF0000]&[/color] [color=#AA0000]$size[/color][color=#FF0000][[/color][color=#AC00A9][i]1[/i][/color][color=#FF0000]])[/color]

[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]EndIf[/color][/url]
 
توقيع : waget
[6] تغيير حالة النوافذ

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

[6] تغيير حالة النوافذ

الدالة WinKill:

هذه الدالة تقوم بقتل (إجبار الإغلاق) للنافذة المطلوبة وهي أقوى من الدالة WinClose

الصورة العامة:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinKill.htm][color=#000090][i]WinKill[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color] [color=#FF0000][,[/color] [color=#9999CC]"text"[/color][color=#FF0000]] )[/color]


المدخلات:

title : تضع عنوان النافذة أو الـ Class الخاص بها

text : أي نص يوجد في النافذة


المخرجات:

تخرج القيمة 1 إذا أغلقت النافذة بنجاح

تخرج القيمة 0 إذا لم تغلق النافذة أو النافذة غير موجودة


مثال: (يعتمد على الدروس السابقة :kmj-by0000 (72):)

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/Run.htm][color=#000090][i]Run[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"Notepad.exe"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]48[/i][/color][color=#FF0000]+[/color][color=#AC00A9][i]262144[/i][/color][color=#FF0000],[/color] [color=#9999CC]"yones7x - ZYZOOM.ORG"[/color][color=#FF0000],[/color] [color=#9999CC]"سيتم إغلاق النافذة بعد هذه الرسالة"[/color][color=#FF0000])[/color]
[color=#AA0000]$CheckKill[/color] [color=#FF0000]=[/color] [url=http://www.autoitscript.com/autoit3/docs/functions/WinKill.htm][color=#000090][i]WinKill[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Switch][color=#0000FF]Switch[/color][/url] [color=#AA0000]$CheckKill[/color]
    [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Case][color=#0000FF]Case[/color][/url] [color=#AC00A9][i]1[/i][/color]
        [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]64[/i][/color][color=#FF0000],[/color] [color=#9999CC]"yones7x - ZYZOOM.ORG"[/color][color=#FF0000],[/color] [color=#9999CC]"تم إغلاق النافذة بنجاح"[/color][color=#FF0000])[/color]
    [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Case][color=#0000FF]Case[/color][/url] [color=#AC00A9][i]0[/i][/color]
        [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#If][color=#0000FF]If[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm][color=#000090][i]WinExists[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Then][color=#0000FF]Then[/color][/url]
            [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]16[/i][/color][color=#FF0000],[/color] [color=#9999CC]"yones7x - ZYZOOM.ORG"[/color][color=#FF0000],[/color] [color=#9999CC]"هناك مشكلة ما تعترض إغلاق النافذة"[/color][color=#FF0000])[/color]
        [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Else][color=#0000FF]Else[/color][/url]
            [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]16[/i][/color][color=#FF0000],[/color] [color=#9999CC]"yones7x - ZYZOOM.ORG"[/color][color=#FF0000],[/color] [color=#9999CC]"النافذة غير موجودة"[/color][color=#FF0000])[/color]
        [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf][color=#0000FF]EndIf[/color][/url]
    [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Case][color=#0000FF]Case[/color][/url] [url=http://www.autoitscript.com/autoit3/docs/keywords.htm#Else][color=#0000FF]Else[/color][/url]
        [url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]16[/i][/color][color=#FF0000],[/color] [color=#9999CC]"yones7x - ZYZOOM.ORG"[/color][color=#FF0000],[/color] [color=#9999CC]"الخطأ غير معروف"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/keywords.htm#EndSwitch][color=#0000FF]EndSwitch[/color][/url]


الدالة WinMenuSelectItem:

هذه الدالة تقوم بعمل رائع للغاية وهو اختيار من قائمة الـ tab بواسطة ضغطات الكترونية

الصورة العامة:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinMenuSelectItem.htm][color=#000090][i]WinMenuSelectItem[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color][color=#FF0000],[/color] [color=#9999CC]"text"[/color][color=#FF0000],[/color] [color=#9999CC]"item"[/color] [color=#FF0000][,[/color] [color=#9999CC]"item"[/color] [color=#FF0000][,[/color] [color=#9999CC]"item"[/color] [color=#FF0000][,[/color] [color=#9999CC]"item"[/color] [color=#FF0000][,[/color] [color=#9999CC]"item"[/color] [color=#FF0000][,[/color] [color=#9999CC]"item"[/color] [color=#FF0000][,[/color] [color=#9999CC]"item"[/color][color=#FF0000]]]]]]] )[/color]


المدخلات:

title : نفس الدالة السابقة

text : نفس الدالة السابقة

item... الخ: ترتيب الضغطات (ساشرحه بالتفصيل) (مثلا: ملف > حفظ باسم)


المخرجات:

تخرج القيمة 1 إذا نجحت في الضغطات

تخرج القيمة 0 إذا كانت هناك ضغطة غير صحيحة أو غير موجودة


مثال صورة: (الخطوات في صورة لبرنامج Scite الخاص بعرض أكواد Autoit)

6be54080f45db19ce2f322289f984296.jpg



النتيجة: (عرض نافذة حفظ باسم)

11c525226eb20801db240bb8697e445a.jpg



تطبيق للمثال: (جرب الكود أثناء وجود نافذة محرر أكواد autoit) (الـ Scite)

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWait.htm][color=#000090][i]WinWait[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:SciTEWindow]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/WinSetOnTop.htm][color=#000090][i]WinSetOnTop[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:SciTEWindow]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#AC00A9][i]1[/i][/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/WinMenuSelectItem.htm][color=#000090][i]WinMenuSelectItem[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:SciTEWindow]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"&File"[/color][color=#FF0000],[/color] [color=#9999CC]"Save &As..."[/color][color=#FF0000])[/color]


انتبه إلى أهمية (&) فهي توضع في كثير من أزرار tabs لتفعيل زر alt ولمعرفة مكانها في النص

اضغط alt أثناء تجربتك للخطوات وسترى ظهور خط أسفل النص ضع مكانها (&) في الكود

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


الدالة WinMinimizeAll:

هذه أسهل الدوال التي يتم استخدامها وعملها هو تصغير كافة النوافذ في ويندوز

الصورة العامة:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinMinimizeAll.htm][color=#000090][i]WinMinimizeAll[/i][/color][/url] [color=#FF0000](  )[/color]


المدخلات: لا يوجد

المخرجات: لا يوجد


مثال بسيط:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinMinimizeAll.htm][color=#000090][i]WinMinimizeAll[/i][/color][/url][color=#FF0000]()[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm][color=#000090][i]MsgBox[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]64[/i][/color][color=#FF0000]+[/color][color=#AC00A9][i]262144[/i][/color][color=#FF0000],[/color] [color=#9999CC]"yones7x - ZYZOOM.ORG"[/color][color=#FF0000],[/color] [color=#9999CC]"تم تصغير كافة النوافذ"[/color][color=#FF0000])[/color]


الدالة WinMinimizeAllUndo:

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

أما النوافذ التي صغرتها بنفسك فإنه لا يتدخل بها

الصورة العامة:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinMinimizeAllUndo.htm][color=#000090][i]WinMinimizeAllUndo[/i][/color][/url] [color=#FF0000](  )[/color]


المدخلات: لا يوجد

المخرجات: لا يوجد


مثال:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinMinimizeAll.htm][color=#000090][i]WinMinimizeAll[/i][/color][/url][color=#FF0000]()[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/ToolTip.htm][color=#000090][i]ToolTip[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"تم تصغير كافة النوافذ، سيتم إعادتها بعد 3 ثوان"[/color][color=#FF0000],[/color] [url=http://www.autoitscript.com/autoit3/docs/macros.htm#@desktopwidth][color=#FF33FF]@DesktopWidth[/color][/url][color=#FF0000]/[/color][color=#AC00A9][i]2[/i][/color][color=#FF0000],[/color] [url=http://www.autoitscript.com/autoit3/docs/macros.htm#@desktopheight][color=#FF33FF]@DesktopHeight[/color][/url][color=#FF0000]/[/color][color=#AC00A9][i]2[/i][/color][color=#FF0000],[/color] [color=#9999CC]"yones7x - ZYZOOM.ORG"[/color][color=#FF0000],[/color] [color=#AC00A9][i]2[/i][/color][color=#FF0000],[/color] [color=#AC00A9][i]2[/i][/color][color=#FF0000]+[/color][color=#AC00A9][i]1[/i][/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm][color=#000090][i]Sleep[/i][/color][/url][color=#FF0000]([/color][color=#AC00A9][i]3000[/i][/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/WinMinimizeAllUndo.htm][color=#000090][i]WinMinimizeAllUndo[/i][/color][/url][color=#FF0000]()[/color]


أتمنى أن يكون الدرس خفيفًا وممتعًا


مع تحياتي لكم
 
[7] التغيير في النوافذ

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

[7] التغيير في النوافذ

الدالة WinSetOnTop:

هذه الدالة تقوم بإجبار النافذة أن تكون فوق الجميع (نفس خاصية إدارة المهام Task Manager)

الصورة العامة:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinSetOnTop.htm][color=#000090][i]WinSetOnTop[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color][color=#FF0000],[/color] [color=#9999CC]"text"[/color][color=#FF0000],[/color] flag [color=#FF0000])[/color]


المدخلات:

title : عنوان النافذة أو الـ Class الخاص بها

text : أي نص في النافذة

flag : القيمة 1 تعني جعل النافذة فوق الجميع دائما

القيمة 0 تعطيل خاصية فوق الجميع


المخرجات:

تخرج القيمة 1 إذا نجحت الدالة

تخرج القيمة 0 إذا كانت الدالة غير موجودة


مثال:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/Run.htm][color=#000090][i]Run[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"Notepad.exe"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWait.htm][color=#000090][i]WinWait[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/WinSetOnTop.htm][color=#000090][i]WinSetOnTop[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#AC00A9][i]1[/i][/color][color=#FF0000])[/color]


الدالة WinSetTitle:

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

الصورة العامة:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinSetTitle.htm][color=#000090][i]WinSetTitle[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color][color=#FF0000],[/color] [color=#9999CC]"text"[/color][color=#FF0000],[/color] [color=#9999CC]"newtitle"[/color] [color=#FF0000])[/color]

المدخلات:

title : عنوان النافذة أو الـ Class الخاص بها

text : أي نص في النافذة

newtitle : العنوان الجديد (ملاحظة: لا يمكن تغيير الـ Class فهو دائم)


المخرجات:

نفس الدالة السابقة (WinSetOnTop)


مثال:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/Run.htm][color=#000090][i]Run[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"Notepad.exe"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWait.htm][color=#000090][i]WinWait[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/WinSetTitle.htm][color=#000090][i]WinSetTitle[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"yones7x - ZYZOOM.ORG"[/color][color=#FF0000])[/color]


الدالة WinSetTrans:

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

الصورة العامة:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/WinSetTrans.htm][color=#000090][i]WinSetTrans[/i][/color][/url] [color=#FF0000]([/color] [color=#9999CC]"title"[/color][color=#FF0000],[/color] [color=#9999CC]"text"[/color][color=#FF0000],[/color] transparency [color=#FF0000])[/color]


المدخلات:

title : عنوان النافذة أو الـ Class الخاص بها

text : أي نص بالنافذة

transparency : تدرج الشفافية من الصفر (غير ظاهر، مخفي) إلى 255 (غير شفاف)


المخرجات:

النجاح = أي قيمة غير الصفر (عادة تكون 1)

الفشل أو عدم وجود نافذة = الصفر (0)


مثال:

كود:
[url=http://www.autoitscript.com/autoit3/docs/functions/Run.htm][color=#000090][i]Run[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"Notepad.exe"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/WinWait.htm][color=#000090][i]WinWait[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/WinSetTrans.htm][color=#000090][i]WinSetTrans[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"[CLASS:Notepad]"[/color][color=#FF0000],[/color] [color=#9999CC]""[/color][color=#FF0000],[/color] [color=#9999CC]"170"[/color][color=#FF0000])[/color]
[url=http://www.autoitscript.com/autoit3/docs/functions/Send.htm][color=#000090][i]Send[/i][/color][/url][color=#FF0000]([/color][color=#9999CC]"النافذة شفافة، أليس كذلك؟"[/color][color=#FF0000])[/color]


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

ويسرني أن أعلن انتهاء دروس دوال Win

وسننتقل إلى دوال أخرى بإذن الله

مع تحياتي لكم :ok:
 
إضافات: فك الملفات المضغوطة بأنواعها باستخدام autoit

بسم الله الرحمن الرحيم


متطلبات الدرس:

1- ملف rar.exe الخاص بالبرنامج WinRar
لتحميله من هنا: Rar.exe
أو إذا كنت مثبت برنامج WinRar، فاذهب إلى المجلد الخاص به
وانسخ الملف rar.exe منه إلى جانب ملف au3 (سكربت اوتوات)
ملاحظة: لا تعد تسمية الملف إلى اسم آخر

2- برنامج Autoit
حمله من الدورة (تجده في الفهرس)


في البداية نبدأ بتشغيل الدوس لقراءة تعليمات ملف rar.exe

اضغط ابدأ | Start > تشغيل | Run أو بحث | Search > ثم اكتب:

كود:
cmd.exe

بعد تشغيل الدوس

شغل الملف rar.exe عن طريق وضع مساره كاملا في الدوس

ستظهر لك هذه الصورة:

6386ac4d91c05c530abdb8e854d3baa8.png



طبعا تلاحظون أن هذا الملف الصغير يحتوي على أوامر كثيرة

ومستحيل أن اشرحها كاملة << استخدموا العم جوجل + اسألوا عنها في دورة الـ Dos


طبعا كما لاحظتم أيضا فإن الصيغة العامة للأمر في الدوس هو:

كود:
rar <command> -<switch 1> -<switch N> <archive> <files...> <@listfiles...> <path_to_extract\>

command = الامر

-switch = اللواحق وهي تمثل إعدادات الامر مثل الموافقة والاستبدال ووضع كلمة سر...الخ، ويجب أن تبدأ بـ (-)

achive = الملف المضغوط

files = الملفات (في حالة ضغط على الملفات في ملف مضغوط)

@listfiles = قائمة الملفات

path_to_extract = مجلد الاستخراج


والصيغة العامة له في الاوتوات هي نفسها عدا إنه يجب وضعه داخل أمر Run لتشغيل ملفات exe



في هذا الدرس ساشرح فقط الاستخراج (الأمر: x)

ساستخدم أمر Run لتفعيل أمر الاستخراج

وأفضّل أمر RunWait حتى ينتهي الاستخراج ولا تحصل مشاكل في حال اردت عمل شيء بالملف المستخرج

+ إنه لن أقوم بشرح تفصيلات أمر الاستخراج لانها دورة للمبتدئين :kmj-by0000 (72):


الصيغة العامة للدالة النهائية للإستخراج:

كود:
RunWait(rar.exe x -o+ -y <rarfile> <folderpath>)

rar.exe = اسم الملف وكما نلاحظ إنه بجانب الأداة

x = أمر الاستخراج

o = لاحقة الأمر x (الاستخراج)، فائدتها هي تشغيل خاصية الاستبدال (مهم للإستخراج الصامت)
حيث: +، تعني استبدال الملف إن وجد بالجديد | -، تعني عدم الاستبدال

y = لاحقة الموافقة على كل الأسئلة التي تطرح للاستخراج
ومنها سؤال الاستبدال أعلاه (تفيد التأكيد) :d: (مهم للإستخراج الصامت)

rarfile = مسار الملف المضغوط (rar، zip... الخ)

folderpath = مسار مجلد الذي سيتم الاستخراج إليه


مثال نموذجي (انصح باستخدامه):

كود:
[URL="http://www.autoitscript.com/autoit3/docs/functions/FileInstall.htm"][COLOR=#000090][I]FileInstall[/I][/COLOR][/URL][COLOR=#ff0000]([/COLOR][COLOR=#9999cc]"rar.exe"[/COLOR][COLOR=#ff0000],[/COLOR] [URL="http://www.autoitscript.com/autoit3/docs/macros.htm#@tempdir"][COLOR=#ff33ff]@TempDir[/COLOR][/URL][COLOR=#ff0000]&[/COLOR][COLOR=#9999cc]"\rar.exe"[/COLOR][COLOR=#ff0000],[/COLOR] [COLOR=#ac00a9][I]1[/I][/COLOR][COLOR=#ff0000])[/COLOR] [COLOR=#009933][I];أمر دمج الملف المساعد بالبرنامج الخاص بك واستخراجه إلي المجلد المؤقت[/I][/COLOR]
[COLOR=#aa0000]$ArchivePath[/COLOR] [COLOR=#ff0000]=[/COLOR] [URL="http://www.autoitscript.com/autoit3/docs/macros.htm#@desktopdir"][COLOR=#ff33ff]@DesktopDir[/COLOR][/URL][COLOR=#ff0000]&[/COLOR][COLOR=#9999cc]"\example.rar"[/COLOR] [COLOR=#009933][I];مسار الملف المضغوط، بإمكانك تغييره للمسار الذي تريده[/I][/COLOR]
[COLOR=#aa0000]$FolderPath[/COLOR] [COLOR=#ff0000]=[/COLOR] [URL="http://www.autoitscript.com/autoit3/docs/macros.htm#@desktopdir"][COLOR=#ff33ff]@DesktopDir[/COLOR][/URL] [COLOR=#009933][I];مسار مجلد الاستخراج، بإمكانك تغيير للمسار الذي تريده[/I][/COLOR]
[URL="http://www.autoitscript.com/autoit3/docs/functions/RunWait.htm"][COLOR=#000090][I]RunWait[/I][/COLOR][/URL][COLOR=#ff0000]([/COLOR][URL="http://www.autoitscript.com/autoit3/docs/macros.htm#@tempdir"][COLOR=#ff33ff]@TempDir[/COLOR][/URL][COLOR=#ff0000]&[/COLOR][COLOR=#9999cc]"\rar.exe x -o+ -y "[/COLOR][COLOR=#ff0000]&[/COLOR][COLOR=#aa0000]$ArchivePath[/COLOR][COLOR=#ff0000]&[/COLOR][COLOR=#9999cc]" "[/COLOR][COLOR=#ff0000]&[/COLOR][COLOR=#aa0000]$FolderPath[/COLOR][COLOR=#ff0000])[/COLOR]
[URL="http://www.autoitscript.com/autoit3/docs/functions/FileDelete.htm"][COLOR=#000090][I]FileDelete[/I][/COLOR][/URL][COLOR=#ff0000]([/COLOR][URL="http://www.autoitscript.com/autoit3/docs/macros.htm#@tempdir"][COLOR=#ff33ff]@TempDir[/COLOR][/URL][COLOR=#ff0000]&[/COLOR][COLOR=#9999cc]"\rar.exe"[/COLOR][COLOR=#ff0000])[/COLOR] [COLOR=#009933][I];حذف الملف المساعد من الملف المؤقت[/I][/COLOR]


بإمكانكم التعديل على المثال للإستفادة منه


مع تحياتي لكم :ok:
 
  • Like
التفاعلات: ocab
FileOpenDialog | دالة فتح مستعرض الملفات

9b34310786deab9020455c72f7ea8ec3.png


.: الصيغة الاساسية للدالة :.

PHP:
FileOpenDialog ( "title", "init dir", "filter" [, options [, "default name" [, hwnd]]] )
هناك ثلاث وسيطات اجبارية وثلاث اخرى اختيارية

الاجبارية

title = عنوان النافذة
int dir = اول مجلد يظهر في نافذة فتح الملفات
filter = صيغ الملفات المراد فتحها

الاختيارية

option = خيارات اضافية وهي 4 خيارات ( 1 , 2 ,4 ,8 ) >> شرح الخيارات في الاسفل
default name = اسم الملف الافتراضي .. يكون مكتوب في خانة اسم الملف >> القيمة الافتراضية لهذه الوسيطة = "" >> فراغ
hwnd = متغير يشير الى النافذة الرئيسية لبرنامجك .. >> سيتم توضيحه في الاسفل
=====

الاجبارية

title = عنوان النافذة

راجع رقم 1 في الصورة أول المشاركة

PHP:
FileOpenDialog ( "File Open", @DesktopDir, "Text Files(*.txt)" )
ركز على خانة الـ title والباقي بعد شوي
النتيجة

b2548ff4857bd9a6012555a260dc2864.png


==

int dir = اول مجلد يظهر في نافذة فتح الملفات

راجع رقم 2 في الصورة أول المشاركة

مثال لجعل اول مجلد هو سطح المكتب

PHP:
FileOpenDialog ( "File Open", @DesktopDir, "Text Files(*.txt)" )
ركز على خانة الـ int dir والباقي بعد شوي
اذا جربت الكود راح تلاحظ ان اول مجلد ظهر لك هو سطح المكتب

==

filter = صيغ الملفات المراد فتحها

راجع رقم 3 في الصورة أول المشاركة

هذه الوسيطة تقوم باختيار صيغة معينة للملفات المراد فتحها او اختيارها
مثل .txt للملفات النصية | أو.exe للملفات الدفعية ( التطبيقات ) أو *.* لجميع الملفات أو .. الخ
طريقة الكتابة هي كالتالي

PHP:
"Text File(*.txt)"
تكتب اولا توضيح لصيغة الملفات .. وهي هنا Text Files
ثم تكتب الصيغة بين () وبعد * .. وهي هنا (*.txt)
وطبعا لاتنسى ان كل هالصيغة تكتب بين ""

مثال

PHP:
FileOpenDialog ( "File Open", @DesktopDir, "Text Files(*.txt)" )
طيب لو اردنا ان نضيف اكثر من صيغة مثلا .jpg و .png و و و .. الخ
نكتب نفس الصيغة ونفصل بين كل واحد منهما بعلامة ;

مثال

PHP:
FileOpenDialog ( "File Open", @DesktopDir, "Images(*.jpg;*.png;*.gif;*.bmp)" )
طيب لو اردنا ان نكتبها في قائمة منسدلة كهذه

393aad98474e59155f2af76c9e31ec81.png


نقوم بتكرار الصيغة مرة اخرى ونفصل بينها بـعلامة |
مثال

PHP:
FileOpenDialog ( "File Open", @DesktopDir, "Images(*.jpg;*.png;*.gif;*.bmp) | Sounds(*.mp3;*.wav)" )
وايضا لو اردنا :d: ان نقوم بـعرض جميع الصيغ فسنحتاج لهذه الصيغة *.*
مثال

PHP:
FileOpenDialog ( "File Open", @DesktopDir, "All Files(*.*)" )
==

الاختيارية

option = خيارات اضافية وهي 4 خيارات ( 1 , 2 ,4 ,8 ) >> شرح الخيارات في الاسفل

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

b950188406a738bea5b4712f90e75429.png


_________

2

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

_________

4

تمكنك من تحديد أكثر من ملف في نفس الوقت

b066e6b8d498cba81b5972ba9c332b82.png


_________

8

لو كتب المستخدم مسار خاطئ في خانة < اسم الملف > سيتم التجاهل الا اذا كنت حددت خيار 1 او 2 او 8

في 1 او 2 ستظهر رسالة خطا
اما في 8 فستظهر هذه الرسالةة

df4e33f522d892889dd653a87d305080.png


==

default name = اسم الملف الافتراضي .. يكون مكتوب في خانة اسم الملف >> القيمة الافتراضية لهذه الوسيطة "" >> فراغ

راجع رقم 5 في الصورة أول المشاركة

مثال لو كتبنا هذا الاسم في خانة الـ default name

PHP:
FileOpenDialog ( "File Open", @DesktopDir, "All Files(*.*)" ,4,"Ali.txt")
النتيجة
لو شغلت الكود راح تلاحظ انه كتب Ali.txt تلقائيا في خانة اسم الملف

c748b75e618dfb1348f873665531e957.png


==
قبل ان ابدا بالمقبض hwnd
لا انسى ان اشكر الاستاذ عبد الله waget فتقريبا شرح المقبض من شرحه :b:
-----
hwnd = هو .. متغير يشير الى النافذة الرئيسية لبرنامجك ..
وفائدته ..
1- يقوم بدمج عملية نافذة برنامجك الرئيسية بعملية نافذة OpenFileDialog في شريط التاسك بار ( شريط المهام )
قبل اضافة المقبض

1f334410ba353b5f3e82ffcf29bc6ed6.png



ولو اضفنا المقبض ( hwnd ) .. سيكون الناتج هكذا

4f06efabd36491e9be43c938ca0d2e15.png



2- يمنع مستخدم برنامجك من التنقل بين نافذة برنامجك الرئيسية ونافذة OpenFileDialog .. بحيث يمنعه من الوصول لنافذة برنامجك الرئيسية حتى يتم اغلاق نافذة الـ OpenFileDialog
قبل اضافة المقبض​

e3d5c9734eb3d840c57632a78923aa75.png





لاحظ كيف نقلت الواجهة الرئيسية فوق واجهة OpenFileDialog
أما لو اضفت المقبض ( hwnd ) فلن استطيع ذلك لانها الان كعملية واحدة وليست كعمليتين
اذا اردت انت تجرب بنفسك .. تفضل
قم بفتح سيكربت جديد وادخل هذا الكود

كود:
[CENTER]#include <GUIConstantsEx.au3>
$Form = GUICreate("Test",400,200)
GUISetState(@SW_SHOW)
MsgBox(0,"","قبل اضافة المقبض OpenFileDialog ستظهر الآن نافذة الـ ")
FileOpenDialog("OpenFile",@DesktopDir,"All(*.*)",4,"")
MsgBox(0,"","بعد اضافة المقبض OpenFileDialog ستظهر الآن نافذة الـ ")
FileOpenDialog("OpenFile",@DesktopDir,"All(*.*)",4,"",$Form)
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg    
            Case $GUI_EVENT_CLOSE
            Exit
        EndSwitch
    WEnd[/CENTER]
اتمنى وضحت فكرة المقبض ( hwnd ) .. وبقي طريقة صياغته


قم بوضع متغير الواجهة الرئيسية مكان خانة hwnd ( الأخيرة )


PHP:
FileOpenDialog("OpenFile",@DesktopDir,"All(*.*)",4,"",$Form)
لاحظ خانة hwnd ( الأخيرة ) ستلاحظ اني وضعت المتغير المرتبط بالواجهة الرئيسية لبرنامجنا
والمتغير في مثالنا هو $Form


وفي الاخير .. حبيت اقولكم ان المقبض ( hwnd ) ليس محصورا على FileOpenDialog
فهو موجود على الـ MsgBox و الـ InputBox >> تقريبا جميع الدوال التي تتعامل مع الواجهات :king:
==


طيب الان عرفنا تقريبا كل مدخلات الدالة وبقي المخرجات
مخرجات الدالة
في حالة النجاح .. ستخرج بمسار الملف
في حالة الفشل ستخرج بـ "" >> نص فارغ
وفي حين اننا اختبرنا الحالة بالماكرو
PHP:
@error
ستخرج لنا الدالة في حالة النجاح 0
وفي حالة الفشل
1 اذا لم يتم تحديد ملف
و2 اذا كان الملف خاطئ او تالف
..
واذا اردنا ان نخرج مسار الملف المحدد من المستخدم
سنقوم بالتالي

PHP:
$path = FileOpenDialog("File Open",@DesktopDir,"Text Files(*.txt)")
الان ستخزن المخرجات في المتغير $path
يعني ان $path سيخرج لنا مسار الملف المحدد >> عند النجاح


أمثلةة

كود:
$path = FileOpenDialog("File Open",@DesktopDir,"Text Files(*.txt)")
[CENTER][CENTER][CENTER]if @error Then
    MsgBox(16,"Error","خطأ")
    Else
    MsgBox(0,"Success","مسار الملف المحدد = " & $path)
EndIf[/CENTER]
[/CENTER]
[/CENTER]
مثال اخر اعمق :q:


كود:
$path = FileOpenDialog("File Open",@DesktopDir,"Text Files(*.txt)")
[CENTER]if @error Then
    If @error = 1 Then
        MsgBox(16,"Error","ل يتم اختيار اي ملف")
    ElseIf @error = 0 Then
        MsgBox(16,"Error","الملف تالف")
    Else
    MsgBox(0,"Success","مسار الملف المحدد = " & $path)
EndIf[/CENTER]
==

وفي ختام هذا الدرس اتمنى ان يكون واضح ومفهوم :q:
دعوآاتكم :b:
 
توقيع : .: Mr.Ali :.
FileSaveDialog | دالة فتح مستعرض الملفات لحفظ ملف

623eeddbafce9da8737e7cbbab76b313.png


.: الصيغة الاساسية للدالة :.

PHP:
FileSaveDialog ( "title", "init dir", "filter" [, options [, "default name" [, hwnd]]] )
طريقة صياغتها اذا كانت ليست مطابقة لـ FileOpenDialog فهي مشابهه جدددا
حتى ان هذا الدرس .. نسخ ولص من درس FileOpenDialog فقط ققمت بتغيير الاكواد والصور :kmj-by0000 (72):
==

هناك ثلاث وسيطات اجبارية وثلاث اخرى اختيارية

الاجبارية

title = عنوان النافذة
int dir = اول مجلد يظهر في نافذة فتح الملفات
filter = صيغ الملفات المراد فتحها

الاختيارية

option = خيارات اضافية وهي خيارين ( 2 , 16 ) >> شرح الخيارات في الاسفل
default name = اسم الملف الافتراضي .. يكون مكتوب في خانة اسم الملف >> القيمة الافتراضية لهذه الوسيطة = "" >> فراغ
hwnd = متغير يشير الى النافذة الرئيسية لبرنامجك .. >> سيتم توضيحه في الاسفل
=====

الاجبارية

title = عنوان النافذة

راجع رقم 1 في الصورة أول المشاركة


PHP:
FileSaveDialog ( "File Save", @DesktopDir, "Text Files(*.txt)")
ركز على خانة الـ title والباقي بعد شوي
النتيجة

cd3efe850de123bb8dd9c517becb8c6d.png


==

int dir = اول مجلد يظهر في نافذة فتح الملفات

راجع رقم 2 في الصورة أول المشاركة

مثال لجعل اول مجلد هو سطح المكتب

PHP:
FileSaveDialog ( "File Save", @DesktopDir, "Text Files(*.txt)")
ركز على خانة الـ int dir والباقي بعد شوي
اذا جربت الكود راح تلاحظ ان اول مجلد ظهر لك هو سطح المكتب

==

filter = صيغ الملفات المراد فتحها

راجع رقم 3 في الصورة أول المشاركة

هذه الوسيطة تقوم باختيار صيغة معينة للملفات المراد فتحها او اختيارها
مثل .txt للملفات النصية | أو.exe للملفات الدفعية ( التطبيقات ) أو *.* لجميع الملفات
طريقة الكتابة هي كالتالي :-

PHP:
"Text File(*.txt)"
تكتب اولا توضيح لصيغة الملفات .. وهي هنا Text Files
ثم تكتب الصيغة بين () وبعد * .. وهي هنا (*.txt)
وطبعا لاتنسى ان كل هالصيغة تكتب بين ""
مثال

PHP:
FileSaveDialog ( "File Save", @DesktopDir, "Text Files(*.txt)")
طيب لو اردنا ان نضيف اكثر من صيغة مثلا .jpg و .png و و و .. الخ
نكتب نفس الصيغة ونفصل بين كل واحد منهما بعلامة ;
مثال

PHP:
FileSaveDialog ( "File Save", @DesktopDir, "Images(*.jpg;*.png;*.gif;*.bmp)")
طيب لو اردنا ان نكتبها في قائمة منسدلة كهذه

b48d546ec538eaea35ad6992ca80765d.png


نقوم بتكرار الصيغة مرة اخرى ونفصل بينها بـعلامة |
مثال
PHP:
FileSaveDialog ( "File Save", @DesktopDir, "Images(*.jpg;*.png;*.gif;*.bmp) | Sounds(*.mp3;*.wav)")
وايضا لو اردنا ان نقوم بـعرض جميع الصيغ فسنحتاج لهذه الصيغة *.*
مثال

PHP:
FileSaveDialog ( "File Save", @DesktopDir, "All Files(*.*)")
==

الاختيارية

option = خيارات اضافية وهي خيارين ( 2 , 16 ) >> شرح الخيارات في الاسفل

2

اظهار رسالة خطا اذا كان المسار غير موجود
_________

16

اظهار هذه رسالة اذا كان الاسم موجود

571b048e7536b624ef3f0b1c8017c004.png


==

default name = اسم الملف الافتراضي .. يكون مكتوب في خانة اسم الملف
القيمة الافتراضية لهذه الوسيطة "" >> فراغ

راجع رقم 5 في الصورة أول المشاركة

مثال لو كتبنا هذا الاسم في خانة الـ default name

PHP:
FileSaveDialog ( "File Save", @DesktopDir, "All Files(*.*)",16,    "Ali.txt" )
النتيجة
لو شغلت الكود راح تلاحظ انه كتب Ali.txt تلقائيا في خانة اسم الملف
8756589978b0b6d8fb08d710a9c98d52.png


==
بالنسبة للمقبض فهو نفس مقبض FileOpenDialog لا يختلف ابدا .. فقط اعادة شرح

قبل ان ابدا بالمقبض hwnd
لا انسى ان اشكر الاستاذ عبد الله waget فتقريبا شرح المقبض من شرحه :b:
-----
hwnd = هو .. متغير يشير الى النافذة الرئيسية لبرنامجك ..
وفائدته ..
1- يقوم بدمج عملية نافذة برنامجك الرئيسية بعملية نافذة FileSaveDialog في شريط التاسك بار ( شريط المهام )
قبل اضافة المقبض


1f334410ba353b5f3e82ffcf29bc6ed6.png



ولو اضفنا المقبض ( hwnd ) .. سيكون الناتج هكذا


4f06efabd36491e9be43c938ca0d2e15.png


2- يمنع مستخدم برنامجك من التنقل بين نافذة برنامجك الرئيسية ونافذة FileSaveDialog .. بحيث يمنعه من الوصول لنافذة برنامجك الرئيسية حتى يتم اغلاق نافذة الـ FileSaveDialog
قبل اضافة المقبض​
e3d5c9734eb3d840c57632a78923aa75.png




لاحظ كيف نقلت الواجهة الرئيسية فوق واجهة FileSaveDialog
أما لو اضفت المقبض ( hwnd ) فلن استطيع ذلك لانها الان كعملية واحدة وليست كعمليتين
اذا اردت انت تجرب بنفسك .. تفضل
قم بفتح سيكربت جديد وادخل هذا الكود ولاحظ الفروقات​

كود:
#include <GUIConstantsEx.au3>
$Form = GUICreate("Test",400,200)
GUISetState(@SW_SHOW)
MsgBox(0,"","قبل اضافة المقبض FileSaveDialog ستظهر الآن نافذة الـ ")
FileSaveDialog("File Save",@DesktopDir,"All(*.*)",16,"")
MsgBox(0,"","بعد اضافة المقبض FileSaveDialog ستظهر الآن نافذة الـ ")
FileSaveDialog("File Save",@DesktopDir,"All(*.*)",16,"",$Form)
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
            Case $GUI_EVENT_CLOSE
            Exit
        EndSwitch
    WEnd
اتمنى وضحت فكرة المقبض ( hwnd ) .. وبقي طريقة صياغته
قم بوضع متغير الواجهة الرئيسية مكان خانة hwnd ( الأخيرة )

PHP:
FileSaveDialog("File Save",@DesktopDir,"All(*.*)",16,"",$Form)
لاحظ خانة hwnd ( الأخيرة ) ستلاحظ اني وضعت المتغير المرتبط بالواجهة الرئيسية لبرنامجنا
والمتغير في مثالنا هو $Form

وفي الاخير .. حبيت اقولكم ان المقبض ( hwnd ) ليس محصورا على FileSaveDialog​
فهو موجود على الـ MsgBox و الـ InputBox >> تقريبا جميع الدوال التي تتعامل مع الواجهات :king:
==


طيب الان عرفنا تقريبا كل مدخلات الدالة وبقي المخرجات
مخرجات الدالة
في حالة النجاح .. ستخرج بمسار الملف
في حالة الفشل ستخرج بـ "" >> نص فارغ
وفي حين اننا اختبرنا الحالة بالماكرو
PHP:
@error
ستخرج لنا الدالة في حالة النجاح 0
وفي حالة الفشل
1 اذا لم يتم تحديد ملف
و2 اذا كان الملف خاطئ او تالف
..
واذا اردنا ان نخرج مسار الملف المحدد من المستخدم
سنقوم بالتالي

PHP:
$path = FileSaveDialog("File Save",@DesktopDir,"Text Files(*.txt)")
الان ستخزن المخرجات في المتغير $path
يعني ان $path سيخرج لنا مسار الملف المحدد >> عند النجاح


أمثلةة

كود:
$path = FileSaveDialog("File Save",@DesktopDir,"Text Files(*.txt)")
[CENTER][CENTER][CENTER]if @error Then
    MsgBox(16,"Error","خطأ")
    Else
    MsgBox(0,"Success","مسار الملف المحدد = " & $path)
EndIf[/CENTER]
[/CENTER]
[/CENTER]
مثال اخر اعمق :q:


كود:
$path = FileSaveDialog("File Save",@DesktopDir,"Text Files(*.txt)")
[CENTER]if @error Then
    If @error = 1 Then
        MsgBox(16,"Error","ل يتم اختيار اي ملف")
    ElseIf @error = 0 Then
        MsgBox(16,"Error","الملف تالف")
    Else
    MsgBox(0,"Success","مسار الملف المحدد = " & $path)
EndIf[/CENTER]
==

وفي ختام هذا الدرس اتمنى ان يكون واضح وفهوم :q:
دعوآاتكم لي ولوالدي بالتوفيق :b:​
 
توقيع : .: Mr.Ali :.
  • Like
التفاعلات: ocab

FileSelectFolder | دالة فتح مستعرض المجلدات


a1bf492abf82e173a9eda674fa658967.png




.: الصيغة الاساسية للدالة :.


PHP:
FileSelectFolder ( "dialog text", "root dir" [, flag [, "initial dir" [, hwnd]]] )
هناك وسيطتان اجباريتان وثلاث اختيارية

الاجبارية

dialog text = نص يظهر على الواجهةة .. راجع الصورة الأولى أول الصفحة [ رقم 1 ] root dir = جذر الملفات [ بداية التفرع للمجلدات ] >> ساحاول اوضحها اكثر في الاسفل

الاختيارية

flag = خيارات اضافية وهي 3 خيارات ( 1 , 2 , 3 ) >> شرح الخيارات في الاسفل
initial dir = للدخول أو التحديد على مجلد
hwnd = متغير يشير الى النافذة الرئيسية لبرنامجك .. >> سيتم توضيحه في الاسفل
=====

الاجبارية



dialog text = نص يظهر على الواجهةة .. راجع الصورة الأولى أول الصفحة [ رقم 1 ]
مثال

PHP:
FileSelectFolder("قم بتحديد مجلد | Select Folder","",1,@DesktopDir)
النتيجة ( راجع الصورة في أول الصفحة رقم 1 )


=====
root dir = جذر الملفات [ بداية التفرع للمجلدات ]
بتوضيح أكثر
هو نقطة بداية للدخول للمجلدات
يعني لو انشأنا مجلد فااارغ باسم A وضعناه على سطح المكتب
ثم جعلناه هو الجذر .. ستكون النتيجة


4000b589e9e84a01d5f96ab22a66b882.png



لاحظنا انه لم يعرض الا المجلد ; لانه فارغ
فلذلك من الافضل انك تتضع مجلد متفرع كـ c:\ مثلا أو سطح المكتب >> سطح المكتب تقريبا كامل المجلدات سيعرضها
راجع الصورة الأولى أول الصفحة [ رقم 2 ] كنت مختار سطح المكتب كـ نقطة تفرع
مثال


PHP:
FileSelectFolder("قم بتحديد مجلد | Select Folder",@ProgramFilesDir)
^ ستكون نقطة البداية .. مجلد البرامج


مثال اخر


PHP:
FileSelectFolder("قم بتحديد مجلد | Select Folder",@DesktopDir)
^ ستكون نقطة البداية .. سطح المكتب


PHP:
FileSelectFolder("قم بتحديد مجلد | Select Folder","")
^ ستكون نقطة البداية .. سطح المكتب أيضا
لانك لو وضعت علامتي "" في هذه الوسيطة .. سيتم اعتبارها سطح المكتب :king:


=====

الاختيارية


flag = خيارات اضافية وهي 3 خيارات ( 1 , 2 , 3 )

_____

1


سيتم اظهار زر ( انشاء مجلد جديد ) .. >> راجع الصورة أول المشاركة ( رقم 4 )


_____


2


استخدام النمط والستايل الجديد .. من IE5.0 فما فوق :smile:
_____


3


اظهار مربع نص .. لادخال مسار مجلد >> راجع الصورة أول المشاركة ( رقم 3 )


_____


=====


initial dir = للدخول أو التحديد على مجلد
فمثلا لو وضعنا هذا المثال


PHP:
FileSelectFolder("قم بتحديد مجلد | Select Folder",@ProgramFilesDir,1,@ProgramFilesDir & "\Kaspersky Lab")
وضعنا نقطة التفرع في مجلد البرامج .. والتحديد على مجلد Kaspersky Lab


=====

قبل ان ابدا بالمقبض hwnd
لا انسى ان اشكر الاستاذ عبد الله waget فتقريبا شرح المقبض من شرحه :b:
-----
hwnd = هو .. متغير يشير الى النافذة الرئيسية لبرنامجك ..
وفائدته ..
1- يقوم بدمج عملية نافذة برنامجك الرئيسية بعملية نافذة
FileSelectFolder في شريط التاسك بار ( شريط المهام )
قبل اضافة المقبض

5928ec4731da9550d6bac21560d005a7.png


ولو اضفنا المقبض ( hwnd ) .. سيكون الناتج هكذا

54834c3c3f876246c09448297dffc006.png


2- يمنع مستخدم برنامجك من التنقل بين نافذة برنامجك الرئيسية ونافذة FileSelectFolder .. بحيث يمنعه من الوصول لنافذة برنامجك الرئيسية حتى يتم اغلاق نافذة الـ FileSelectFolder​

اذا اردت انت تجرب بنفسك .. تفضل
قم بفتح سيكربت جديد وادخل هذا الكود


كود:
[CENTER]#include <GUIConstantsEx.au3>
$Form = GUICreate("Test",400,200)
GUISetState(@SW_SHOW)
FileSelectFolder("قم بتحديد مجلد | Select Folder",@ProgramFilesDir,1,@ProgramFilesDir & "\Kaspersky Lab",$Form)
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd[/CENTER]
اتمنى وضحت فكرة المقبض ( hwnd ) .. وبقي طريقة صياغته

قم بوضع متغير الواجهة الرئيسية مكان خانة hwnd ( الأخيرة )


PHP:
FileSelectFolder("قم بتحديد مجلد | Select Folder",@ProgramFilesDir,1,@ProgramFilesDir & "\Kaspersky Lab",$Form)
لاحظ خانة hwnd ( الأخيرة ) ستلاحظ اني وضعت المتغير المرتبط بالواجهة الرئيسية لبرنامجنا
والمتغير في مثالنا هو $Form

وفي الاخير .. حبيت اقولكم ان المقبض ( hwnd ) ليس محصورا على
FileSelectFolder
فهو موجود على الـ MsgBox و الـ InputBox >> تقريبا جميع الدوال التي تتعامل مع الواجهات :king:
==

طيب الان عرفنا تقريبا كل مدخلات الدالة وبقي المخرجات
مخرجات الدالة


في حالة النجاح .. ستخرج بمسار المجلد
في حالة الفشل ستخرج بـ "" >> نص فارغ
وفي حين اننا اختبرنا الحالة بالماكرو

PHP:
@error
ستخرج لنا الدالة في حالة النجاح 0
وفي حالة الفشل
1 اذا أغلق المستخدم نافذة FileSelectFolder من دون ان يحدد مجلد >> لا يوجد احتمال خطأ غيره
:king:
--
واذا اردنا ان نخرج مسار المجلد المحدد من المستخدم
سنقوم بالتالي


PHP:
$path = FileSelectFolder("قم بتحديد مجلد | Select Folder",@ProgramFilesDir,1,@ProgramFilesDir & "\Kaspersky Lab",$Form)
كما تلاحظون قمنا بوضع مخرجات الدالة في متغير
الان ستخزن المخرجات في المتغير $path
يعني ان $path سيخرج لنا مسار المجلد المحدد >> عند النجاح

أمثلةة


كود:
[CENTER]if @error Then
    MsgBox(16,"","لم تقم بتحدبد مجلد")
Else
    MsgBox(0,"","مسار المجلد المحدد = " & $path)
EndIf[/CENTER]
قمت في المثال السابق بوضع شرط اذا وجد خطأ ستظهر رسالة تنبه المستخدم بعدم تحديد مجلد
طبعا لايوجد احتمال خطأ غيره :ok:


واذا لم يكن هناك خطأ ستاتي رسالةة فيها مسار المجلد المحدد


==
وفي ختام هذا الدرس اتمنى ان يكون واضح ومفهوم :q:
دعوآاتكم لي ولوالدي بالتوفيق .. ولجدي عبد الله بالرحمة والمغفرة
:er:​

 
توقيع : .: Mr.Ali :.
  • Like
التفاعلات: ocab
الحالة
مغلق و غير مفتوح للمزيد من الردود.
عودة
أعلى