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

ShutDown for windows XP

مغلق
بدأه إبراهيم_دياب5 في 6 يونيو 2002 · 0 رد · 481 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1

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

أعزائى لقد توصلت للكود الذى يمكنه التحكم فى إغلاق الــ WinXP

وهو كالتالى:

function MyExitWindows(RebootParam: Longword): Boolean;

var

TTokenHd: THandle;

TTokenPvg: TTokenPrivileges;

cbtpPrevious: DWORD;

rTTokenPvg: TTokenPrivileges;

pcbtpPreviousRequired: DWORD;

tpResult: Boolean;

const

SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';

begin

if Win32Platform = VER_PLATFORM_WIN32_NT then

begin

tpResult := OpenProcessToken(GetCurrentProcess(),

TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,

TTokenHd);

if tpResult then

begin

tpResult := LookupPrivilegeValue(nil,

SE_SHUTDOWN_NAME,

TTokenPvg.Privileges[0].Luid);

TTokenPvg.PrivilegeCount := 1;

TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

cbtpPrevious := SizeOf(rTTokenPvg);

pcbtpPreviousRequired := 0;

if tpResult then

Windows.AdjustTokenPrivileges(TTokenHd,

False,

TTokenPvg,

cbtpPrevious,

rTTokenPvg,

pcbtpPreviousRequired);

end;

end;

Result := ExitWindowsEx(RebootParam, 0);

end;

// Example to shutdown Windows:

procedure TForm1.Button1Click(Sender: TObject);

begin

MyExitWindows(EWX_POWEROFF);

end;

هذا الكود يعمل 100% ولكن ينقصه بعض التفصيل -- بمعنى -- البرنامج غير مفهوم ، فرجاء ممن يستطيع فهمه بكل تفاصيله القيام بشرحه ،،، مع الشكر. ويا ريت لو هناك شرح للــ API باللغة العربية

مع تحياتى

إبراهيم دياب

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

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

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

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

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

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