![]() |
![]() ![]() ![]() ![]() |
|
Синхронизация завершения работы WindowsDelphi , ОС и Железо , WindowsСинхронизация завершения работы Windows
Оформил: DeeCo
{
Diese Methode funktioniert nur auf Windows NT/2000/XP
}
{
Works only on Windows NT/2000/XP systems
}
function TimedShutDown(Computer: string; Msg: string; Time: Word; Force: Boolean; Reboot: Boolean): Boolean;
var
rl: Cardinal;
hToken: Cardinal;
tkp: TOKEN_PRIVILEGES;
begin
//get user privileges to shutdown the machine, we are talking about win nt and 2k here
if not OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
ShowMessage('Cannot open process token.')
else
begin
if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid) then
begin
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
tkp.PrivilegeCount := 1;
AdjustTokenPrivileges(hToken, False, tkp, 0, nil, rl);
if GetLastError <> ERROR_SUCCESS then
ShowMessage('Error adjusting process privileges.');
end
else
ShowMessage('Cannot find privilege value.');
end;
Result := InitiateSystemShutdown(PChar(Computer), PChar(Msg), Time, Force, Reboot)
end;
//Start shut down
procedure TForm1.Button1Click(Sender: TObject);
begin
if not TimedShutDown('\\computername', 'you have to shutdown', 30, true, true) then
ShowMessage('function failed...');
end;
//Abort shut down
procedure TForm1.Button2Click(Sender: TObject);
begin
AbortSystemShutdown('\\computername');
end;
Программа Delphi, позволяющая удаленно отключать или перезапускать систему Windows NT, 2000 или XP. Программа использует функции Вот разбивка кода: Функция Эта функция принимает пять параметров:
Функция сначала пытается открыть токен процесса с необходимыми правами для отключения системы. Если это не удается, она отображает сообщение об ошибке и возвращает Если токен успешно открыт, функция ищет привилегию Затем функция вызывает Обработчик события Эта процедура вызывается при клике кнопки "Отключить". Она вызывает функцию Обработчик события Эта процедура вызывается при клике кнопки "Отменить отключение". Она вызывает функцию Замечания и ограничения
В целом, это полезная утилита для удаленного управления системами Windows. Однако, пожалуйста, учитывайте, что она работает только на старых версиях Windows и требует административных прав для функционирования. В статье описывается метод синхронизации завершения работы Windows, который позволяет программно инициировать перезагрузку или остановку компьютера с заданным временем ожидания. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||