• بادئ الموضوع بادئ الموضوع LINEZERO
  • تاريخ البدء تاريخ البدء
  • المشاهدات 113,357
الحالة
مغلق و غير مفتوح للمزيد من الردود.
أخي أنا وضعته هكذا وأعرف أنه لا يعمل
لكن هذه فكره التى أريد وما قدرة أنفذه
يعني
أن لم يكون نظام مستخدم الاكسبي
تنفذ التى بعده
وهي هذه​

كود:
Case Else
كود:
[CENTER]run("msconfig.exe")[/CENTER]
]


رامى بيسأل



هل مربع النص ممكن يسجل مايكتبه المستخدم




فعند الوقوف بالفأره تظهر اخر ماكتبه المستخدم





مثل امر run الخاص بالويندوز ومحرك بحث جوجل





وغيره ....


ليس في ضبط​


اريد يكون مربع النص ومكتوب فيه الاوامر من قبل​

يعني جاهزه
في الاداة وليس له علاقة في run بتعت نظام
regedit.exe​

msconfig.exe​

secpol.msc​

mmc.exe​

cmd.exe​

gpedit.msc​




الخ.......​


يعني تكون الاوامر مكتوبه في الاداة​

يختار مستخدم ما يشاء​


de3cd0915588c4cfe7531c55c550e18b.jpg
 

توقيع : ramay
أخي أنا وضعته هكذا وأعرف أنه لا يعمل
لكن هذه فكره التى أريد وما قدرة أنفذه
يعني
أن لم يكون نظام مستخدم الاكسبي
تنفذ التى بعده
وهي هذه​

كود:
Case Else
كود:
[CENTER]run("msconfig.exe")[/CENTER]
]





ليس في ضبط​


اريد يكون مربع النص ومكتوب فيه الاوامر من قبل​

يعني جاهزه
في الاداة وليس له علاقة في run بتعت نظام
regedit.exe​

msconfig.exe​

secpol.msc​

mmc.exe​

cmd.exe​

gpedit.msc​




الخ.......​


يعني تكون الاوامر مكتوبه في الاداة​

يختار مستخدم ما يشاء​


de3cd0915588c4cfe7531c55c550e18b.jpg

حمل الملف هذا وجربه ... إذا نفس فكرتك .. فهذي عملتها بgui

يجب عليك تسجيل الدخول او تسجيل لمشاهدة الرابط المخفي


جربته على xp و 7 ..

بالنسبه لإستخدامك لswitch تقدر تستخدمها متداخله بس أكتبها صح .. :d:

كود:
$Text = "1- msconfig " &@CRLF
$Text &= "2- ipconfig"&@CRLF
$Text &= "3- gpedit"&@CRLF
$Text &= "4- regedit"
switch inputbox("Run",$Text)
    case ""
        exit
    case "1"
        switch @OSVersion
            case "WIN_XP"
                Run(@WindowsDir & "\pchealth\helpctr\binaries\msconfig.exe")
            case "WIN_7"
                run (@SystemDir & "\msconfig.exe")
        endswitch
    case "2"
        Run(@ComSpec &" /K " &"ipconfig")
    case "3"
        Run("mmc.exe gpedit.msc")
    case "4"
        Run("regedit.exe")
    case else
        MsgBox(0,"","not found")
EndSwitch

إستخدمت OSVersion أفضل من FileExists

:king:
 
توقيع : waget
طيب يا عبد الله

هل ممكن نجعل المستخدم يكتب مثلا regedit
وفى المره المقبله عندما يكتب شئ اخر بتظهر له
الكلمات التى كتبها ؟
 
توقيع : himoScript
طيب يا عبد الله

هل ممكن نجعل المستخدم يكتب مثلا regedit
وفى المره المقبله عندما يكتب شئ اخر بتظهر له
الكلمات التى كتبها ؟
في طريقة ..

أعتمد على ملف خارجي textاوini

وفي كل مره أيضيف قيمة تحفظ فيه وتضاف في القائمة ..

وإذا شغلت السيكريبت أول يقرأ الملف ويضيف في القائمة حسب الي فية ..


^_^
 
توقيع : waget
نفس دماغى ياعبد الله
بس ياترى دى نفس فكره عمل محرك البحث run
ولا محرك البحث
بيضيفها فى الرجسترى ؟


 
توقيع : himoScript
نفس دماغى ياعبد الله
بس ياترى دى نفس فكره عمل محرك البحث run
ولا محرك البحث
بيضيفها فى الرجسترى ؟



أعتقد لأن الملف إذا كان exe ماعاد تقدر تعدل علية ..

لكن الملفات المؤقته tmp أو ini أو text تتعامل معها بحرية ..

بشأن هل هي في الريجستري بصراحه ماعندي علم بها
 
توقيع : waget
عبد الله مبروك الاشراف والله ماانتبهت الا الحين :d:
شباب اعذروني لعدم التطبيق
بسبب الامتحانات الجامعيه
ان شاء الله حين انتهي منها راح ارجع اطبق كل الي فاتني
وان شاء الله موفقين في تطبيقاتكم
اخوكم\حاتم

 
توقيع : format
[2]عبارة الشرط Switch

العبارة Switch...Case...EndSwitch الجزء الثاني ..

أولاً وضع أكثر من حالة أو شرط ..

لوضع أكثر من حالة أو شرط نستخدم الفاصلة السفلية .. وهي نفس عمل or في الشروط

وأيضاً نستطيع إستخدام [
not-or] في Switch

مثال /

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


كود:
[COLOR=Blue]switch [/COLOR][I][COLOR=Navy]InputBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Silver]"هل أنت مشترك بالدورة"[COLOR=Red],[/COLOR]"ضع إسمك للتأكد"[COLOR=Red],[/COLOR]"هنا..."[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]case [/COLOR][COLOR=Silver]"waget" [COLOR=Red],[/COLOR]"format"[COLOR=Red],[/COLOR]"Expertise"[COLOR=Red],[/COLOR]"Bo.SaQeR"[COLOR=Red],[/COLOR]"Corporation"[COLOR=Red],[/COLOR]"ramay"[COLOR=Red],[/COLOR]"himoScript"[COLOR=Red],[/COLOR]"Self"[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"(مجرد انسان)","موريادي"[/COLOR]
        [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR],[COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"أنت مشترك"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]case [/COLOR][COLOR=Silver]""[/COLOR],[COLOR=Silver]"هنا..."[/COLOR]
         [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"لم تدخل شيء"[/COLOR][COLOR=Red])[/COLOR]
     [COLOR=Blue]Case else[/COLOR]
        [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"أنت غير مشترك"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]EndSwitch[/COLOR]
ثانياً ) إستخدام الكلمة المحجوزة To

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

مثال:

كود:
[COLOR=Blue]switch [/COLOR][COLOR=Navy][I]inputbox [/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Silver]"أدخل"[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"أدخل درجتك هنا"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]case [/COLOR][COLOR=Silver]""[/COLOR]
        [COLOR=Navy][I]msgbox[/I][/COLOR](0[COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"لم تدخل شيء "[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]Case [/COLOR][COLOR=Navy]90 [/COLOR][COLOR=Blue]to[/COLOR] [COLOR=Navy]100[/COLOR]
        [COLOR=Navy][I]msgbox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"A"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]Case [/COLOR][COLOR=Navy]80 [/COLOR][COLOR=Blue]to[/COLOR] [COLOR=Navy]89[/COLOR]
        [I][COLOR=Navy]msgbox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"B"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]Case [/COLOR][COLOR=Navy]70[/COLOR][COLOR=Blue]to[/COLOR] [COLOR=Navy]79[/COLOR]
        [I][COLOR=Navy]msgbox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"C"[/COLOR][COLOR=Red])[/COLOR]
[COLOR=Blue]    Case else[/COLOR]
        [I][COLOR=Navy]msgbox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"F"[/COLOR][COLOR=Red])[/COLOR]
[COLOR=Blue]endswitch[/COLOR]
نأخذ الحالة الالى والبقية نقيس عليها ..

كود:
[COLOR=Blue]Case [/COLOR][COLOR=Indigo]90 [/COLOR][COLOR=Blue]to[/COLOR] [COLOR=Indigo]100[/COLOR]
        [COLOR=Navy][I]msgbox[/I][/COLOR][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"A"[/COLOR][COLOR=Red])[/COLOR]
هنا إذا كان العدد المدخل من المستخدم مابين ال90 وال100 فعندها تتحقق الحالة ..


:d::d:
 
توقيع : waget
عبد الله مبروك الاشراف والله ماانتبهت الا الحين :d:
شباب اعذروني لعدم التطبيق
بسبب الامتحانات الجامعيه
ان شاء الله حين انتهي منها راح ارجع اطبق كل الي فاتني
وان شاء الله موفقين في تطبيقاتكم
اخوكم\حاتم


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

ويوفقك في إمتحاناتك..

:king:
 
توقيع : waget

تطبيق درس FileInstall


كود:
$var = FileInstall("1.bat",@MyDocumentsDir& "\1.txt",1)



If $var = 1 Then

MsgBox(0,"... Done","Succes")
Else
MsgBox(0,"... Error","Wrong")
EndIf


تحويل الملف الدفعي الى TXT ..


cac30252ef9682598e471a9e47098bb6.gif



تطبيق درس Switch-1

كود:
Switch InputBox("أجب","مانسبة ماتعلمته من دورة الاتوات الى الان ؟")

Case 100 To 90

MsgBox (0,"Msg","...العب غيرها")
Case 89 To 80
MsgBox (0,"Msg","لا تستعبط")
Case 79 To 70
MsgBox (0,"Msg","...الله يزيدك يارب")
Case 69 To 60
MsgBox (0,"Msg","التناحة واضحة")
Case 59 To 50
MsgBox (0,"Msg","مالك داعي بالدورة")
Case Else
MsgBox (0,"MSG","اختار رقم يابني آدم")
EndSwitch



ملاحظة : الكود لايعمل اي رقم اضعه يذهب مباشرة إلى Case Else ... ؟


cac30252ef9682598e471a9e47098bb6.gif



تطبيق درس Run

كود:
 [CENTER]If Run("cmd.exe","",@SW_MINIMIZE) = 0 Then


MsgBox(0,"","Error Open Dos") 

Else
MsgBox(0,"","Succses Open Dos")
EndIf[/CENTER]



تشغيل نافذة الدوس :q:


cac30252ef9682598e471a9e47098bb6.gif


تطبيق درس التعامل مع اوامر الدوس في الاتوات و تشغيل كمسؤول ومنع ايقاف السكربت

كود:
 [CENTER]#RequireAdmin



#NoTrayIcon 

Break(0)
#include <Process.au3>
_RunDOS ("echo Hello My Freind I'M Moriadi > %USERPROFILE%\desktop\zyzooom.txt")
Break(1)
If FileExists (@DesktopDir& "\zyzoom.txt") Then
MsgBox(0,"Msg","You Have a message in the desktop")
Else
MsgBox(0,"Msg","Not receive a message until now")
EndIf[/CENTER]


انشاء ملف TXT في سطح المكتب وكتابة رسالة فيه والتأكد من وجود الملف مع تشغيله كمسؤول وبدون ايقونة وايقاف السكربت من البداية واتاحة ايقاف السكربت بعد امر ما ...


cac30252ef9682598e471a9e47098bb6.gif



بانتظار افادتكم :king:
 
توقيع : موريادي

تطبيق درس FileInstall


كود:
$var = FileInstall("1.bat",@MyDocumentsDir& "\1.txt",1)



If $var = 1 Then

MsgBox(0,"... Done","Succes")
Else
MsgBox(0,"... Error","Wrong")
EndIf
تحويل الملف الدفعي الى TXT ..


cac30252ef9682598e471a9e47098bb6.gif



تطبيق درس Switch-1

كود:
Switch InputBox("أجب","مانسبة ماتعلمته من دورة الاتوات الى الان ؟")

Case 100 To 90

MsgBox (0,"Msg","...العب غيرها")
Case 89 To 80
MsgBox (0,"Msg","لا تستعبط")
Case 79 To 70
MsgBox (0,"Msg","...الله يزيدك يارب")
Case 69 To 60
MsgBox (0,"Msg","التناحة واضحة")
Case 59 To 50
MsgBox (0,"Msg","مالك داعي بالدورة")
Case Else
MsgBox (0,"MSG","اختار رقم يابني آدم")
EndSwitch

ملاحظة : الكود لايعمل اي رقم اضعه يذهب مباشرة إلى Case Else ... ؟


إبدأ من الصغير للكبير :d:

cac30252ef9682598e471a9e47098bb6.gif



تطبيق درس Run
كود:
 [CENTER]If Run("cmd.exe","",@SW_MINIMIZE) = 0 Then


MsgBox(0,"","Error Open Dos") 

Else
MsgBox(0,"","Succses Open Dos")
EndIf[/CENTER]



تشغيل نافذة الدوس :q:


cac30252ef9682598e471a9e47098bb6.gif


تطبيق درس التعامل مع اوامر الدوس في الاتوات و تشغيل كمسؤول ومنع ايقاف السكربت

كود:
 [CENTER]#RequireAdmin



#NoTrayIcon 

Break(0)
#include <Process.au3>
_RunDOS ("echo Hello My Freind I'M Moriadi > %USERPROFILE%\desktop\zyzooom.txt")
Break(1)
If FileExists (@DesktopDir& "\zyzoom.txt") Then
MsgBox(0,"Msg","You Have a message in the desktop")
Else
MsgBox(0,"Msg","Not receive a message until now")
EndIf[/CENTER]


انشاء ملف TXT في سطح المكتب وكتابة رسالة فيه والتأكد من وجود الملف مع تشغيله كمسؤول وبدون ايقونة وايقاف السكربت من البداية واتاحة ايقاف السكربت بعد امر ما ...


cac30252ef9682598e471a9e47098bb6.gif



بانتظار افادتكم :king:

في التطبيق الاخير ..

إنتبه للنصوص .. جربه في باتش وبعدين حطه في الدالة ...

كود:
#RequireAdmin
#NoTrayIcon
#include <Process.au3>
Break(0)
_RunDOS ('echo Hello My Freind I,M Moriadi > "%USERPROFILE%\Desktop\zyzooom.txt" ')
Break(1)
If FileExists (@DesktopDir& "\zyzooom.txt") Then
MsgBox(0,"Msg","You Have a message in the desktop")
Else
MsgBox(0,"Msg","Not receive a message until now")
EndIf
 
توقيع : waget
تعديل تطبيق درس Switch

كود:
Switch InputBox("أجب","مانسبة ماتعلمته من دورة الاتوات الى الان ؟")
Case 90 To 100
MsgBox (0,"Msg","...العب غيرها")
Case 80 To 89
MsgBox (0,"Msg","لا تستعبط")
Case 70 To 79
MsgBox (0,"Msg","...الله يزيدك يارب")
Case 60 To 69
MsgBox (0,"Msg","التناحة واضحة")
Case 50 To 59
MsgBox (0,"Msg","مالك داعي بالدورة")
Case Else
MsgBox (0,"MSG","اختار رقم يابني آدم")
EndSwitch

بس ليه الفرق من ناحية الكبير والصغير خخ

...

فهمت قصدك بالتطبيق الاخير ... "" عشان لا نترك ثغرة لو كان الملف به مسافة أو المسار صح ..
 
توقيع : موريادي
تعديل تطبيق درس Switch

كود:
Switch InputBox("أجب","مانسبة ماتعلمته من دورة الاتوات الى الان ؟")
Case 90 To 100
MsgBox (0,"Msg","...العب غيرها")
Case 80 To 89
MsgBox (0,"Msg","لا تستعبط")
Case 70 To 79
MsgBox (0,"Msg","...الله يزيدك يارب")
Case 60 To 69
MsgBox (0,"Msg","التناحة واضحة")
Case 50 To 59
MsgBox (0,"Msg","مالك داعي بالدورة")
Case Else
MsgBox (0,"MSG","اختار رقم يابني آدم")
EndSwitch
بس ليه الفرق من ناحية الكبير والصغير خخ

...
to إلى ,, يعني تبدأ من عدد إلى عدد ..

هذي مافيها ريوس ..علشان ترجع للخلف :hh:

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

:d:
 
توقيع : waget
عبارة الشرط Select

عبارة الشرط Select


الصيغة العامة ...
كود:
[COLOR=Blue]select [/COLOR][COLOR=YellowGreen];بداية العبارة[/COLOR]
    [COLOR=Blue]Case[/COLOR][COLOR=YellowGreen];الشرط1[/COLOR]
    
    [COLOR=YellowGreen];نفذ هنا إذا تحقق الشرط 1[/COLOR]
[COLOR=Red][[/COLOR][COLOR=Blue]Case [/COLOR][COLOR=YellowGreen];الشرط 2[/COLOR]
[COLOR=YellowGreen]     ;نفذ هنا إذا تحقق الشرط 2[/COLOR]
    [COLOR=Red]][/COLOR]
[COLOR=Red][[/COLOR][COLOR=Blue]Case else[/COLOR]
    [COLOR=YellowGreen]; إذا لم يتحقق أي من الشروط نفذ هنا[/COLOR]
   [COLOR=Red] ][/COLOR]
[COLOR=Blue]endselect[/COLOR][COLOR=YellowGreen];نهاية العبارة[/COLOR]
أولا ً هذي العبارة شبية في الشكل بswitch لكن في العمل تكون أقرب إلى if << راح نأخذ الفروقات

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

هنا راح تكون الحالات عبارة عن شروط . ولايمكن وضع قيم لإختبارها إلا بشرط ..

تبدا بالكلمة المحجوزة Select وتنتهي ب EndSelect . يجب أن تحتوي على شرط

واحد على الاقل ..Case else كالعادة إختيارية ...


مثال/

كود:
[COLOR=DarkRed]$OS_Version[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Magenta]@OSVersion[/COLOR]
[COLOR=Blue]Select[/COLOR]
    [COLOR=Blue]Case [/COLOR][COLOR=DarkRed]$OS_Version[/COLOR]  [COLOR=Red]=[/COLOR] [COLOR=Silver]"WIN_7"[/COLOR]
        [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"Windows 7"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]Case [/COLOR][COLOR=DarkRed]$OS_Version[/COLOR]  [COLOR=Red]=[/COLOR][COLOR=Silver] "WIN_XP"[/COLOR]
        [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"Windows Xp"[/COLOR][COLOR=Red])[/COLOR]
    [COLOR=Blue]case[/COLOR][COLOR=DarkRed] $OS_Version [/COLOR][COLOR=Red]=[/COLOR] [COLOR=Silver]"WIN_VISTA"[/COLOR]
        [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"Windows Vista"[/COLOR][COLOR=Red])[/COLOR]
[COLOR=Blue]EndSelect[/COLOR]
نلاحظ هنا أننا كتبناها على هيئة شروط ليس مثل switch .نضع القيمة مباشرة .. لاحظ هنا أنا بالامكان

أيضا في switchأن تضعها على هيئة شروط :wink:

لكن في Select يجب أن تكون شروط .. ويمكن وضع شرطين أو أكثر بإستخدام .[or-and]

ويمكن إستخدام not أيضاً ..

وهذا مثال فية شوية عبط :hh:..

كود:
[COLOR=DarkRed]$OS_Version[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Magenta]@OSVersion[/COLOR]
[COLOR=Blue]Select[/COLOR]
    [COLOR=Blue]Case not [/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$OS_Version[/COLOR]  [COLOR=Red]=[/COLOR] [COLOR=Silver]"WIN_VISTA"[/COLOR][COLOR=Red])[/COLOR] [COLOR=Blue]And not [/COLOR][COLOR=Red]([/COLOR][COLOR=DarkRed]$OS_Version[/COLOR] [COLOR=Red]=[/COLOR] [COLOR=Silver]"WIN_7"[/COLOR][COLOR=Red])[/COLOR]
        [I][COLOR=Navy]MsgBox[/COLOR][/I][COLOR=Red]([/COLOR][COLOR=Indigo]0[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]""[/COLOR][COLOR=Red],[/COLOR][COLOR=Silver]"Windows Xp"[/COLOR][COLOR=Red])[/COLOR]
[COLOR=Blue]EndSelect[/COLOR]
ملاحظة : الهدف من المثال توضيح فكرة إستخدام or أو and في select وإمكانية إستخدام not


صحيح .في الغالب إذا لم يكن النظام 7 أو فيستا فراح يكون xp

ولكن الافضل دائماُ قرأه قيمة
@OSVersion مباشرة ..

كود:
[COLOR=Blue]Case [/COLOR][COLOR=DarkRed]$OS_Version[/COLOR]  [COLOR=Red]=[/COLOR][COLOR=Silver] "WIN_XP"[/COLOR]
:d:

:king::king:
 
توقيع : waget
حمل الملف هذا وجربه ... إذا نفس فكرتك .. فهذي عملتها بgui

يجب عليك تسجيل الدخول او تسجيل لمشاهدة الرابط المخفي


جربته على xp و 7 ..

الله ينور عليك يا عبد الله نعم هذه هي فكره:ok:
:king:
بالنسبه لإستخدامك لswitch تقدر تستخدمها متداخله بس أكتبها صح .. :d:

كود:
$Text = "1- msconfig " &@CRLF
$Text &= "2- ipconfig"&@CRLF
$Text &= "3- gpedit"&@CRLF
$Text &= "4- regedit"
switch inputbox("Run",$Text)
    case ""
        exit
    case "1"
        switch @OSVersion
            case "WIN_XP"
                Run(@WindowsDir & "\pchealth\helpctr\binaries\msconfig.exe")
            case "WIN_7"
                run (@SystemDir & "\msconfig.exe")
        endswitch
    case "2"
        Run(@ComSpec &" /K " &"ipconfig")
    case "3"
        Run("mmc.exe gpedit.msc")
    case "4"
        Run("regedit.exe")
    case else
        MsgBox(0,"","not found")
EndSwitch

إستخدمت OSVersion أفضل من FileExists

:king:
طيب يا الغالي ممكن نستخدم الشرطSwitch مع الدالة نسخ أو غيره لكن بدون قيمه راجعه صح​
 
توقيع : ramay
طيب يا الغالي ممكن نستخدم الشرطSwitch مع الدالة نسخ أو غيره لكن بدون قيمه راجعه صح​


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

لايمكن ذلك .. في switch .. لكن select نعم :d:

كود:
Select
    Case filecopy("1.txt",@HomeDrive & "\1.txt",1)
        MsgBox(0,"","Success")
    case else
        MsgBox(0,"","Error")
    EndSelect
وبهذا الشكل يكون أفضل صحيح حفظنا القيمة الراجعه لكن لم نتأكد ماهيه هذه القيمة...

كود:
$copy =  filecopy("1.txt",@HomeDrive & "\1.txt",1)
Select
    Case $copy
        MsgBox(0,"","Success")
    case else
        MsgBox(0,"","Error")
    EndSelect
علشان لاتلخبط بين select و Switch

select / تستخدم الشروط فقط ...

Switch / تستخدم الشروط و التحقق من القيم مباشرة .. << وهذا ألي يخليها لاتقبل .. هذي الطريقة


:king:
 
توقيع : waget
لماذا هذا كود لا يعمل

PHP:
$0 = FileExists(@HomeDrive&"\ramay.exe")
$1  = FileCopy(@DesktopDir&"\run.exe",@HomeDrive&"\run.exe")
Switch
 Case $0 And $1
  MsgBox(0,"","don")
 Case Else
  MsgBox(0,""," erorr")
  EndSwitch
 
توقيع : ramay
لماذا هذا كود لا يعمل

PHP:
$0 = FileExists(@HomeDrive&"\ramay.exe")
$1  = FileCopy(@DesktopDir&"\run.exe",@HomeDrive&"\run.exe")
Switch
 Case $0 And $1
  MsgBox(0,"","don")
 Case Else
  MsgBox(0,""," erorr")
  EndSwitch


أولاً switch لا تدعم ... تعدد الشروط .. لأكثر من قيمة ..

تدعم تعدد الشروط والحالات لقيمة واحدة وواحدة فقط..

على العكس select و if ..

نفس مثالك مع if
كود:
$0 = FileExists(@HomeDrive&"\ramay.exe")
$1  = FileCopy(@DesktopDir&"\run.exe",@HomeDrive&"\run.exe",1)
if $0 And $1 then
  MsgBox(0,"","don")
 Else
  MsgBox(0,""," erorr")
  endif
مع select

كود:
$0 = FileExists(@HomeDrive&"\ramay.exe")
$1  = FileCopy(@DesktopDir&"\run.exe",@HomeDrive&"\run.exe",1)
select
 Case $0 And $1
  MsgBox(0,"","don")
 Case Else
  MsgBox(0,""," erorr")
  EndSelect
السبب ألي يخلي switch ماتدعم هذا الشي .. هو إنك عند بدء العبارة...

تضع الدالة أو القيمة ألي تبي تختبرها .. على العكس في if و select ...

كود:
Switch <هنا نضع الدالة أو القيمة ألي نبي نختبرها ..>

راجع درس switch :d:

:d:
 
توقيع : waget
طيب يا الغالي ممكن بعض الامثلة لي switch
مع (and-or-not)
الذي فهمت من درس أنه تأخذ قيم راجعه مباشر لوحده يعني ليس هناك داعي لوضع قيمة راجعه لكل الدالة
وعلى ذلك ممكن نضع
هذا فقط
كود:
 MsgBox(0,"","عملية صحيح")


حساس عندي خطأ في فهم هذا درس لكن مش عارف أين
 
توقيع : ramay
تطبيقات لمعرفة الفروقات بين عبارات الشرط ..

تطبيقات لمعرفة الفروقات بين عبارات الشرط ..


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

ألي طبق بشكل جيد ..وأكثر من مره أعتقد إنه إستنتج هذه الفروق :d:..

راح نأتي بالمثال ونعمله بالثلاث عبارات ..

أولاُ : إختبار ..الدالة أو القيمة بالشروط :

بما إنها كلها عبارات شرط فأكيد كلها تدعم هذا الشيء.

::IF::

كود:
$os = @OSArch
if $os ="X86" Then
    MsgBox(0,"","operating system : 32 - bit ")
elseif $os =  "IA64" then
    MsgBox(0,"","operating system : IA64 - bit ")
Elseif $os = "X64" then
    MsgBox(0,"","operating system : 64 - bit ")
endif
:d::d::d:

::SELECT::
كود:
$os = @OSArch
SELECT
CASE $os ="X86"
    MsgBox(0,"","operating system : 32 - bit ")
CASE $os =  "IA64"
    MsgBox(0,"","operating system : IA64 - bit ")
CASE $os = "X64"
    MsgBox(0,"","operating system : 64 - bit ")
ENDSELECT
::Switch::

ركز هنا في فارق في طريقة الكتابة

كود:
$os = @OSArch
Switch $os
CASE $os ="X86"
    MsgBox(0,"","operating system : 32 - bit ")
CASE $os =  "IA64"
    MsgBox(0,"","operating system : IA64 - bit ")
CASE $os = "X64"
    MsgBox(0,"","operating system : 64 - bit ")
ENDSwitch
ثانياُ :إختبار أكثر من دالة .. بعبارة شرط واحدة..

هنا نستخدم select و if

الطريقة هذي لاأحبذها لأنك تختبر قيمتين وإذا تحققت واحه منهم يخرج ..

بمعني إذا تحققت الاولى راحي يخرج ولايختبر الثانية ..

إلا إذا إختبرت القيمتين في شرط واحد ..وذلك بإستخدام or &and

::if::

(1
كود:
$PAHT =    @HomeDrive & "\File.exe"
$PAHT2 =    @HomeDrive & "\File2.exe"
$Exists = FileExists($PAHT)
$Exists2 = FileExists($PAHT)
if $Exists = 1 then 
    MsgBox(0,"","File1  Exists")
    
elseif $Exists2 = 1 Then
    
    MsgBox(0,"","File2  Exists")
Else
    
    MsgBox(0,"","does not  Exists")
    
    endif
ليه أنا ما أحب هذي الطريقة لأنه لو الملف الاول موجود راح يظهر المسج ..

ويخرج من العبارة لية ؟؟ أترك الاجابة لك .

(2

إختبارها بشرط واحد بإستخدام and

كود:
$PAHT =    @HomeDrive & "\File.exe"
$PAHT2 =    @HomeDrive & "\File2.exe"
$Exists = FileExists($PAHT)
$Exists2 = FileExists($PAHT)
if $Exists = 1 and $Exists2 = 1 Then
    MsgBox(0,"","File  Exists")
Else
    MsgBox(0,"","does not  Exists")
    endif
بهذي الطريقة تحققنا من وجود الملفين بشرط واحد :d:.

::Select::

(1
كود:
$PAHT = @HomeDrive & "\File.exe"
$PAHT2 = @HomeDrive & "\File2.exe"
$Exists = FileExists($PAHT)
$Exists2 = FileExists($PAHT)
Select

    case $Exists = 1 
        
    MsgBox(0,"","File1  Exists")
    
    case $Exists2 = 1 
    
    MsgBox(0,"","File2  Exists")
    
    case else
    
    MsgBox(0,"","does not  Exists")
    
EndSelect
(2

إستخدام and & or

كود:
$PAHT = @HomeDrive & "\File.exe"
$PAHT2 = @HomeDrive & "\File2.exe"
$Exists = FileExists($PAHT)
$Exists2 = FileExists($PAHT)
Select

    case $Exists = 1  and  $Exists2 = 1

    MsgBox(0,"","Files  Exists")

    case else

    MsgBox(0,"","does not  Exists")

EndSelect
ثالثاً :التأكد من إرجاع الدالة لقيمة صحيحة أو خاطئة ..

هنا أيضاً لانستخدم سوى if & Select

::IF::

كود:
$PAHT =    @HomeDrive & "\File.exe"
if FileExists($PAHT) Then
    MsgBox(0,"","File  Exists")
Else
    MsgBox(0,"","does not  Exists")
endif
::Select::

كود:
$PAHT =    @HomeDrive & "\File.exe"

Select

    case FileExists($PAHT)

    MsgBox(0,"","File  Exists")

case else

    MsgBox(0,"","does not  Exists")

EndSelect

ألي عنده تسأل عن كيفية التعامل مع الدوال هكذا يراجع هذا الدرس[
يجب عليك تسجيل الدخول او تسجيل لمشاهدة الرابط المخفي
]

رابعاُ :التحقق من القيمة الراجعه للدالة أو المتغير بدون الشروط

وهذي تخص Switch فقط.

1)

بوضع الدالة مباشرة في العبارة
كود:
$PAHT =    @HomeDrive & "\File.exe"

 Switch FileExists($PAHT)

    case 1

        MsgBox(0,"","File  Exists")

    case Else

        MsgBox(0,"","does not  Exists")

EndSwitch
(2

بحفظ القيمة الراجعه بمتغير ..

كود:
$PAHT =    @HomeDrive & "\File.exe"
$Exists = FileExists($PAHT)

 Switch $Exists
 
    case 1

        MsgBox(0,"","File  Exists")

    case Else

        MsgBox(0,"","does not  Exists")

EndSwitch
هذا ألي يميز switch عن البقية

وهذا ألي يجعلها لاتقبل الجزيئة الثانية والثالثة ..

:king:
 
توقيع : waget
الحالة
مغلق و غير مفتوح للمزيد من الردود.
عودة
أعلى