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

كود التحكم في إبقاف أو إعادة تشغيل الكمبيوتر...

مغلق
بدأه blacksol في 31 أغسطس 2006 · 3 رد · 1,046 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

[

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

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

أولا :إفتح project جديد ثم تأكد من وجود الوحدة windows في بلوك unit وإذا لم تكن موجودة أضفها ...

ثانيا:ضع 5 أزرار في الفورم وغير خاصية caption لكل منها على الترتيب كما يلي:

الأولى:shutdown

الثانية:reboot

الثالثة:log off

الرابعة:force

الخامسة:power off

ثالثا:أكتب داخل الوحدة الكود التالي:

procedure getshutdownprivilege;//this procedure is used to get the shutdown or reboot or poweroff privilege 
var
 hdlProcessHandle:cardinal;
  hdlTokenHandle:cardinal;
   tmpLuid:LUID_AND_ATTRIBUTES;
	 tkp:TOKEN_PRIVILEGES;
	   tkpNewButIgnored:TOKEN_PRIVILEGES;
		  lBufferNeeded:cardinal;
begin
  tmpluid.Attributes:=SE_PRIVILEGE_ENABLED;
   hdlProcessHandle:= GetCurrentProcess;
	OpenProcessToken(hdlProcessHandle,(TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY),hdlTokenHandle);
	  LookupPrivilegeValue('','SeShutdownPrivilege',tmpluid.Luid);
		tkp.PrivilegeCount:=1;
		  tkp.Privileges[0]:=tmpluid;
			AdjustTokenPrivileges(hdlTokenHandle,False,tkp,16,tkpNewButIgnored,lBufferNeeded);
end;

الشرح:

هذا الكود في الواقع هو ليس لإيقاف أو إعادة تشغيل الكمبيوتر أو ... ولكنه كود ضروري استعماله خاصة مع windows2000 أو windowsXp

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

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

أكتب الكود التالي داخل unit مباشرة:

procedure TForm1.Button1Click(Sender: TObject);
begin
	 if not (exitwindowsex(ewx_shutdown,0)) then begin   //Shutdown computer
		 getshutdownprivilege;
		 exitwindowsex(ewx_shutdown,0);
		 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin

	 if not (exitwindowsex(ewx_reboot,0)) then begin   //Restaring computer
		 getshutdownprivilege;
		 exitwindowsex(ewx_reboot,0);
		 end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
	 if not (exitwindowsex(ewx_poweroff,0)) then begin   //Power off computer
		 getshutdownprivilege;
		 exitwindowsex(ewx_poweroff,0);
		 end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if not (exitwindowsex(ewx_logoff,0)) then   //Log off computer
	 exitwindowsex(ewx_logoff,0);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
exitwindowsex(ewx_force,0);
end;

شرح الكود:

الدالة المستعملة لإيقاف أو إعادة تشغيل الكمبيوتر أو ... هي الدالة Exitwindowsex و نجد فيها الخيارات التالية:

Ewx_shutdown:لإيقاف تشغيل الكمبيوتر.. لتحقيق ذلك لابد من الحصول على الإمتياز

Ewx_Reboot:لإعادة تشغيل الكمبيوتر.. لتحقيق ذلك لابد من الحصول على الإمتياز

Ewx_poweroff:لإيقاف تشغيل الكمبيوتر مباشرة أي دون إظهار الرسالة ... لتحقيق ذلك لابد من الحصول على الإمتياز و لابد أن يكون جهازك يدعم إيقاف

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

Ewx_force:لإغلاق جميع التطبيقات العاملة حاليا ... وهو خيار غير آمن

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

الآن و عند تشغيل البرنامج تلاخظ أنه سيحدث عند النقر على:

الزر الأول:إيقاف التشغيل

الزر الثاني:إعادة التشغيل

الزر الثالث:قطع الإتصال مع الشبكة

الزر الرابع:غلق جميع التطبيقات

الزر الخامس:إيقاف التشغيل المباشر

و لأي استفسار الرجاء

الإتصال بي

و لتحميل المثال

إضغط هنا
#2

ممتااااز ألف شكر :|

#3

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

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

مشكوووووووووووووووووور أخى الكريم على المعلومات المفيدة هذه .. حيث أن المنتدى كثر السؤال عنها

تحياتى الك :unsure:

Comming Soon

#4

مـــــــــــــــاشاء الله كلهاذا عشان تعمل هل الاشياء في عندي كود اقل من هيك بكتير وعلى ما أذكر من الديلفى نفسه

بجيبه إن شاء الله لانه ما يحضرني حالياً

When You Started With Delphi ...You Could Not Stop!

delphiteam2.jpg

alharmoodiGropu.com

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…