الموقع العربي الاول للعبة Silkroad Online

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قسم شروحات لغات البرمجة و التطوير (https://silkroad4arab.com/vb/forumdisplay.php?f=407)
-   -   [++C] الاستخدامات المتقدمه للداله system (https://silkroad4arab.com/vb/showthread.php?t=571845)

iMido 19-11-2014 02:48 AM

الاستخدامات المتقدمه للداله system
 
بسم الله الرحمن الرحيم

فى الموضوع ده ان شاء الله هنتعلم بعض الاستخدامات المتقدمه للداله system مثل :
  • وقف البرنامج عن العمل لحد م اليوزر يدوس على اي زرار
  • مسح كل النص الموجود ف نافذه الكونسول
  • التعامل مع ال user accounts
  • تصليح ال task manager و ال registry editor و اعادت تشغيلهم بعد م بعض الفيروسات وقفتهم
  • عرض التاريخ و الوقت للجهاز
  • ايقاف الجهاز عن العمل او او عمل رستارت ليه او لوج اوف او غيره

نبدأ الموضوع ...

قبل اى حاجه لازم تعرف ايه هيا الداله system ...
الداله system هى داله بتسمح للمبرمج بتنفيذ اوامر DOS و Shell فى بيئه c++

ايه فايدتها ؟

فرضا انتا عايز تنفذ امر من اوامر DOS فى برنامجك (بتبرمج فايرس مثلا :idiot:) تعمل ايه ؟ الداله system هيا الحل

parameters الداله :

ال prototype بتاع الداله هو
كود PHP:

int system(const charcommand); 

ف من الواضع انها بتستقبل سلسه نصيه و هى الامر المراد تنفيذه

استخدام الداله :

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

1-

الكود المستخدم للعمليه دى سهل و بسيط و مش محتاج شرح و فى IDEs زى dev c++ بتحطه ف التيمبليت الاساسيه بتاعه الكونسول ابليكيشن بس انا قاصد اتكلم عنه ف الموضوع ده علشان فى بعض من الى اول م بدأو برمجه استخدمو dev c++ فاكرين ان الامر ده بيستخدم فى اخر البرنامج علشان ميقفلش لوحده ..

كود PHP:

system("pause"); 

سهل و بسيط و شارح نفسه .. ندخل ع الى بعده

2-

نفس حال الكود الى فوق ,, الكود ده بسيط برده بس مهم و ده بيمسح كل النص الى موجود فى الكونسول

كود PHP:

system("cls"); 

طبعا ممكن تستخدم الداله clrscr الموجوده ف المكتبه conio.h بدل الكود ده ,, كل الطرق تأدى الى روما
الاتنين بيعملو نفس الوظيفه

3-

من اول هنا بدأ الشغل و الكلام

ف المثال ده هنستخدم الامر NET و بالتحديد ال sub command USER (الامر NET ليه sub commands كتير)

الشكل العام للأمر بيكون كده

كود بلغة HTML:

USER NET [usernam] [password]
كود PHP:

#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
    
system("USER NET %username% 111111");
    return 
0;


طبعا ال command و ال sub command دول ليهم استخدامات تانيه كتير باضافه sub command تانى زى /ADD لاضافه user جديد او /DELETE لحذف user بس اكتفينا بتغير الباسورد هنا ,, انتا كده مسكت طرف الخيط و لو احتجت حاجه تانى الموضوع هيكون سهل انك تدور

4-

بعض الفيروسات دلوقتى بتعطل ال task manager عن العمل علشان المستخدم ميعرفش يوصل لل process بتاعها و يوقفها عن العمل و بتعطل ال registry عن العمل علشان ميعرفش يمسح المفتاح الى بيخلي الفايرس يشتغل اول م الويندوز يشغل ده طبعا بغض النظر عن الفيروسات المتقدمه

اعاده ال registry editor و ال task manager للعمل بتتم باضافه key جديد لل registry و العمليه دى بتتم بالاستعانه ب الداله system

كود PHP:

REG ADD hkcu\Software\Microsoft\Windows\CurrentVersion\policies\system /v DisableTaklMgr /t reg_dword /d 1 

الى فوق ده المفتاح الجديد الى هنضيفه

hkcu\Software\Microsoft\Windows\CurrentVersion\pol icies\system ده المسار الى هنضيف فيه المفتاح
DisableTaklMgr ده اسم المفتاح
reg_dword ده نوع المفتاح
و 1 ده قيمه المفتاح (1 = true و 2 = false )

و ده الكود

كود PHP:

using namespace std;
int main() {
system("REG ADD hkcu\\Software\\Microsoft\\Windows\\CurrentVersion"
    "\\policies\\system /v DisableTaklMgr /t reg_dword /d 1"
);
    
system("PAUSE");
    return 
0;


و بالنسبه لل registry editor نفس الكود بس هنغير اسم المفتاح ل DisableRegistryTools و قيمته ل 0

5-

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

كود PHP:

system("time /t"); 

امسح /t و شوف النتيجه كده D:

طبعا فى طرق كتير لمعرفه التاريج منها ب استخدام الداله time بس احنا بنتكلم النهارده عن الداله system بس

6-

ايقاف الجهاز عن العمل او عمل ريستارت او لوج اوف او اي حاجه تانيه بتتم عن طريق الامر SHUTDOWN بس الى بيختلف ال sub command ,, بيختلف على حسب انتا عايز تعمل ايه

/s لايقاف الجهاز عن العمل
/r لعمل ريستارت
/L لعمل لوج اوف
/h لعمل hibernate للجهاز
/f لايقاف الجهاز عن العمل بدون تحذير المستخدم بشأن البرامج التى تعمل ,, force shutdown

و الكود بيتكتب ب الصيغه دى
كود بلغة HTML:

SHUTDOWN /s /t 00
/s ال sub command /t علشات تحدد الزمن الى الكمبيوتر هيقفل بعده بالثوانى

كود PHP:

system("SHUTDOWN /s /t 00"); 

و بكده بكون اتكلمت شويه عن بعض استخدامات الداله system ,, ممكن تستخدم جوجل للمزيد من الاوامر .. الداله بتنفذ كل اوامر DOS ممكن تجيبها من ع النت و تستفيد منها

شكرا

iMido 19-11-2014 05:00 PM

20 مشاهده و 0 ردود !!
الكلام ده معناه حاجه من 2 ,, يا اما انا شرحى جامد و كله فهم و محدش عنده استفسارات يا اما حوار موت القسم ده سببه الاعضاء مش تقصير من مبرمجى المنتدى ,, و انا عن نفسى برجح الرأى التانى

Midget1337 19-11-2014 06:21 PM

عندي سؤال

أنا قبل كده كنت بستخدم system من غير prototype ..
كده العيب في الـ VC و لا غباء من الآخرين؟ :idiot:

iMido 20-11-2014 01:20 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة Midget1337 (المشاركة 5135625)
عندي سؤال

أنا قبل كده كنت بستخدم system من غير prototype ..
كده العيب في الـ VC و لا غباء من الآخرين؟ :idiot:

العيب مش فى vc ولا غباء من الاخرين ,, ال functions الى ليها prototype دى ال function الى انتا مبرمجها بنفسك علشان تأدى وظيفه معينه مكتبات c++ القياسيه مش بتوفرها بس system داله مش انتا الى مبرمجها ,, دى موجوده اساسا ف بنيه اللغه بس ده ميمنعش انها زى اى داله ليها prototype بس ال prototype بتاعها موجود ف الهيدر فايل بتاعتها الى هيا cstdlib
زى هيدر CLPrint بتاعى الى ف قسم المناقشات
كل الى عليك تستدعى الداله CLPrint بس ,,, الprototype مش هتكون مجبر انك تضيفه فى سورس كود برنامجك لانه موجود اصلا و مش علشان قلت "مش هتكون مجبر تضيفه" ان هيكون فى فرصه اصلا انك تضيفه ,, لو ضيفت prototype للداله المعرفه مسبقا البرنامج مش هيشتغل

وصلت ؟

Midget1337 20-11-2014 12:48 PM

وصلت..شكراً

iMido 20-11-2014 02:27 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة Midget1337 (المشاركة 5135852)
وصلت..شكراً

العفو يا حب

AHMED_BATMAN 20-11-2014 11:17 PM

شكرا علي الشرح الجامد دا

iMido 21-11-2014 02:10 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة AHMED_BATMAN (المشاركة 5136022)
شكرا علي الشرح الجامد دا

العفو ربنا يخليك

mostafahanafi 10-08-2015 08:41 PM

رد: الاستخدامات المتقدمه للداله system
 
شكرا على الشرح :pepsi:موضوعاتك شيقة جدا بصراحة


الساعة الآن 05:19 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.