PDA

View Full Version : درخواست کدی که بشه باهاش سیستم را Restart و Shutdown کرد



ماریا وکیلی
دوشنبه 16 آبان 1384, 17:34 عصر
راستش برنامه ای که ساختم برای اینکه جواب بده احتیاج به بارگذاری سیستم داره

Developer Programmer
دوشنبه 16 آبان 1384, 18:11 عصر
به توابع API نیاز دارید، لذا اگه بعد از جستجو در این سایت نیافتید! به سی دی های MSDN مراجعه کنید

szabeh
دوشنبه 16 آبان 1384, 20:14 عصر
یک سرچ بکن مطالبی تو سایت هست

ماریا وکیلی
دوشنبه 16 آبان 1384, 21:23 عصر
من جستجو کردم ولی اونی که می خواستم را پیدا نکردم

لطف کنید اگر می دانید باید به کجا مراجه کنم لینکش را اینجا بذارین

vcldeveloper
سه شنبه 17 آبان 1384, 02:45 صبح
http://www.chami.com/tips/delphi/120996D.html

szabeh
سه شنبه 17 آبان 1384, 07:53 صبح
ببین این جواب میده یا نه؟



function WindowsExit(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,TToke nPvg,cbtpPrevious,rTTokenPvg,pcbtpPreviousRequired ) ;
end;
end;
Result := ExitWindowsEx(RebootParam, 0) ;
end;


برای استفاده از این کد:



//Shutdown
WindowsExit(EWX_POWEROFF or EWX_FORCE) ;

//Reboot Windows
WindowsExit(EWX_REBOOT or EWX_FORCE) ;

szabeh
پنج شنبه 19 آبان 1384, 00:05 صبح
دوستان دیگر نظری ندارند

محمد میرمصطفی
پنج شنبه 19 آبان 1384, 00:12 صبح
من که بعد از API از shutown -t 0 -s -f همیشه استفاده می‏کنم. رو Local، امکان نداره جواب نده.

ماریا وکیلی
پنج شنبه 19 آبان 1384, 10:04 صبح
دوستان دیگر نظری ندارند

خیلی عالی بود

دست شما درد نکنه