ilove.me69
زيزوومى محترف
غير متصل
قم بمتابعة الفيديو أدناه لمعرفة كيفية تثبيت موقعنا كتطبيق ويب على الشاشة الرئيسية.
ملاحظة: قد لا تكون هذه الميزة متاحة في بعض المتصفحات.
وعليكم السلام ...
كيف حالك إن شاء الله طيب .. بحاول أوضحها لك ...
فركز معي :d:
كيفك في حلقه while و عبارة الswitch .. إذا منت فاهمهم راجع الدورة قبل ماتكمل معي ..
مع إن في أكثر من طريقة للتفاعل مع النافذه اللي تعملها لكن عشان أداه koda تولد كود
الwhile و الswitch إفتراضي .. بشرح عليها :d:
بسم الله ...
في البداية إنسخ الكود ذا وشغله
كود:#include <ButtonConstants.au3>
كود:[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] [/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2]#include <GUIConstantsEx.au3>[/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2]#include <WindowsConstants.au3>[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] [/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2]$Form1 = GUICreate("Form1", 251, 93, 192, 124) ; دالة إنشاء النافذة[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2]$Button1 = GUICtrlCreateButton("Click Me", 48, 24, 155, 49) ;دالة إنشاء الزر[/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2]GUISetState(@SW_SHOW) ; دالة تغيير وضع النافذة إلى الظهور[/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] [/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2]While 1[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] $nMsg = GUIGetMsg()[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] Switch $nMsg[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] Case $GUI_EVENT_CLOSE[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] Exit[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] Case $Button1[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] MsgBox(0,"", $nMsg & @crlf & $Button1)[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] EndSwitch[/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2]WEnd[/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2]
بالضغط على الزر تظهر رسالة فيها رقمين متساوية :i:
طيب والهدف ؟
الان الدوال قبل حلقة الwhile كلها دوال لإنشاء النافذة وإنشاء الكنترول واللعب في خصائصم
بعد كذا تجيك حلقة الwhile تلاحظها حلقه لا نهائية وهذا سبب جعل النافذة تبقى ظاهره ..
بعد كذا تجد متغير يحفظ القيمة اللي ترجعها دالة GUIGetMsg هذي الدالة ممكن تتغير قيمتها
في كل لفه .. كيف? .. الدالة هذه لو حصل تأثير او حدث على اي عنصر في النافذة (كنترول) إيش تسوي ؟
ترجع بقيمة الid تبع الكنترول عشان كذا لما سوينا الزر حفظنا القيمة اللي ترجعها دالته في متغير ..
والقيمة اللي ترجعها أي دالة إنشاء كنترول هي الid تبعه وهو عبارة عن رقم .
فحنا داخل الحلقة نعمل عبارة switch العبارة في كل لفه تتحقق من القيمة اللي ترجعها GUIGetMsg
فإذا القيمة ساوت id تبع كنترول معين هنا حنا نقدر نتدخل وننفذ الشيء اللي نرغبه ..
ففي الكود لما تضغط على الزر تطلع مسج وفي المسج هذه أظهرنا القيمة تبع الزر والقيمة اللي ترجعها
الدالة GUIGetMsg وهي في حالتنا أكيد متساوية :d:
إن شاء الله وضحت :i:
الان نجي للصور في الخلفية
في طريقتين وحده سهله ووحده شوي يبغالها فهم في بعض الامور
بشرح السهله أفضل ...
تنشىء كنترول لعرض الصور وتضع الكنترول الثانية فوقه يعني الصورة ورى والازرار فوقه
وتعطل الكنترول تبع الصور
مثال بسيط :d:
كود:[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] [/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2]#include <ButtonConstants.au3>[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2]#include <GUIConstantsEx.au3>[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2]#include <StaticConstants.au3>[/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2]#include <WindowsConstants.au3>[/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] [/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2]$Form1 = GUICreate("Form1", 236, 122, 192, 124)[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2]$Pic1 = GUICtrlCreatePic("mypic.gif", 0, 0, 236, 122) ; دالة إنشاء الصورة[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2]GUICtrlSetState($Pic1, $GUI_DISABLE) ; دالة تعطيل الصورة[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2]$Button1 = GUICtrlCreateButton("Click Me", 88, 95, 75, 25)[/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2]GUISetState(@SW_SHOW)[/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] [/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2]While 1[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] $nMsg = GUIGetMsg()[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] Switch $nMsg[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] Case $GUI_EVENT_CLOSE[/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2] Exit[/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] [/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2] EndSwitch[/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT][/RIGHT] [FONT=Trebuchet MS][SIZE=2]WEnd[/SIZE][/FONT][RIGHT][FONT=Trebuchet MS][SIZE=2][/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] [/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2] [/SIZE][/FONT] [FONT=Trebuchet MS][SIZE=2]
ملاحظة إمتداد الصور يكون إما Gif أو jpg الPNG نعملها بالطريقة الثانية
#include<ButtonConstants.au3>
#include<GUIConstantsEx.au3>
#include<WindowsConstants.au3>
GUICreate ("",670,690,-1,-1)
GUISetState(@SW_SHOW)
While 1
$nMsg=GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
مو شرط اوامر لقراءة مقاسات الشاشة بس ودي لو كان ويندوز سفن يكون فيه أمر يخلي الشاشة بحجم
1366 * 768
وان كان نظام التغشيل فاجعل الشاشة بالمقاس التالي
----
وان كان هذا السكربت صعب فهل يوجد سكربت وظيفته هي
اقرأ واجهة برنامجي واذا كانت الواجهة تساوي سطح المكتب أو أكبر فقم بالخروج ما عدا ذلك نفذ الاوامر للبرنامج
آسف على التأخير
بالنسبة لطلبك الأول اذكر إن في دالة تقوم بالعمل بس نسيتها :hh:
بالنسبة لقراءة الواجهة << هذا يدل إنك مش متابع دروس دورة (Autoit v3) الجديدة:
يجب عليك تسجيل الدخول او تسجيل لمشاهدة الرابط المخفي
يالبى قلبك , الله يعطيك العافيه ما قصرت
بالنسبة للشرح الاول الحمد لله
ضبط:
![]()
لكن الشرح الثاني ادربي دميجتي :d:
ما فهمت وضح اكثر , تعرف توي مبتدئ :b:
الله لا يهينك عطني الدوال المهمة + الاشياء اللي مطلوبة
همسة / ناوي بإذن الله اسوي زي البرنامج اللي عطيتك فيه خلفية
ابي تبسط لي وشلون اسوي مثله
DirCopy( @ScriptDir &"\n\.*" , 1 )
السلام عليكم الله ورحمة الله وبركاته :
ابارك للمنتدى عودة الدورة مجد بس ياليت تطبيق علشان نفهم الشرح مع الشكر
ثانياً استفسار صغير :
عن نسخ مجلد باكمله بمختلف الصيغ
كمثال هذا المجلد المطلوبكود:DirCopy( @ScriptDir &"\n\.*" , 1 )
n
![]()
بمحتوياته ككل وهذا ملفات المجلد
![]()
جربت النجوم بحيث يشمل الصيغ كلهن ما ضبط ينقل الملفات اللي داخل المجلد المطلوب ينقل المجلد ككل
وجزاكم الله خير
هلا بالذيب بخير عساك دوم بخير والله لي اربعة ايام انا وياها شيل وحط تضبط معي أنها تنقل الملفات الفرعية فقط اما المجلد كامل لا مستقعد لي :hh:
فيا ليت تعدلها اتعبتني والله يجزاك كل خير
DirCreate(@scriptdir & "\2\1")
DirCopy(@scriptdir & "\1",@scriptdir & "\2\1",1)
الله يرحم والديك لو تتذكرها او تبحث عنها يكون في ميزان حسناتك ان شاء الله لأنك بتساعد أخوانك المسلمين
وبالنسبة لقراءة الواجهة ما قصدي قراءة النافذة المفتوحة ولكن اقصد قراءة طول وعرض واجهة البرنامج فأن كانت أكبر من شاشة سطح المكتب فيظهر امر الخروج وعدم تنفيذ الاوامر
لجميع مستخدمي AutoIt3 إصدار 3.3.6.1 أو أقل
أنصح بتحديث البرنامج إلى 3.3.8.1 لدعم ويندوز 8
مثلا الماكرو @OSVersion أصبح يخرج قيمة Win_8 عند تشغيل الاوتوات على نظام ويندوز 8
وأنصح أيضا بتحديث الـ Scite المساعد للبرنامج إلى إصدار 2.28
روابط التحميل
AutoIt 3.3.8.1:
يجب عليك تسجيل الدخول او تسجيل لمشاهدة الرابط المخفي
Scite (المساعد لعرض نص الكود):
يجب عليك تسجيل الدخول او تسجيل لمشاهدة الرابط المخفي
مع تحياتي![]()