Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

Вырубание компа   Найти похожие ветки 

 
gyry   (2004-04-25 14:41) [0]

Привет МАСТЕРА DEPLHI!!! Трабл маленький. Пишу

 
  ShellExecute(Application.Handle,
  Pchar("Open"),
  Pchar("C:\Windows\System32\Rundll32.exe"),
  Pchar("user,exitwindows"),
  Pchar("C:\Windows\System32"),
  SW_SHOWNORMAL);
 


А в ответ: "Ошибка при загрузке User. Не найден указанный модуль."
Может кто нить знает другие примеры выключения компа.


 
Darmen   (2004-04-25 19:29) [1]

Слюшай сюда.
Данный код должен работать:
Win32Check(ExitWindowsEx(EWX_SHUTDOWN,0));
Если что-то не так, пиши мне на
darmen_tubik@rambler.ru


 
evvcom ©   (2004-04-26 08:15) [2]

Скромный ник...
Вместо Pchar("Open") можно писать просто "Open" и т.д.


 
antip   (2004-04-26 09:52) [3]

выключение компа под NT требует прав администратора...

const
 SE_SHUTDOWN_NAME = "SeShutdownPrivilege";

function NTSetPrivilege(const Privilege: string; bEnabled: Boolean = True): Boolean;
var
 hToken: THandle;
 TokenPriv: TOKEN_PRIVILEGES;
 PrevTokenPriv: TOKEN_PRIVILEGES;
 ReturnLength: Cardinal;
begin
 Result := True;
 // Only for Windows NT/2000/XP and later.
 if not (Win32Platform = VER_PLATFORM_WIN32_NT) then Exit;

 // obtain the processes token
 if OpenProcessToken(GetCurrentProcess(),
   TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
 begin
   try
     // Get the locally unique identifier (LUID) .
     if LookupPrivilegeValue(nil, PChar(Privilege),
       TokenPriv.Privileges[0].Luid) then
     begin
       TokenPriv.PrivilegeCount := 1; // one privilege to set

       case bEnabled of
         True:  TokenPriv.Privileges[0].Attributes  := SE_PRIVILEGE_ENABLED;
         False: TokenPriv.Privileges[0].Attributes := 0;
       end;

       ReturnLength  := 0; // replaces a var parameter
       PrevTokenPriv := TokenPriv;

       // enable or disable the privilege
       AdjustTokenPrivileges(hToken, False, TokenPriv, SizeOf(PrevTokenPriv),
         PrevTokenPriv, ReturnLength);
     end;
   finally
     CloseHandle(hToken);
   end;
 end;
 // test the return value of AdjustTokenPrivileges.
 Result := GetLastError = ERROR_SUCCESS;
 if not Result then
   RaiseLastOSError;
end;

procedure SystemShutdown;
begin
 if Win32Platform = VER_PLATFORM_WIN32_NT then
 begin
   if NTSetPrivilege(SE_SHUTDOWN_NAME) then
     if not ExitWindowsEx(EWX_SHUTDOWN, 0) then
       RaiseLastOSError;
 end else
   ExitWindowsEx(EWX_SHUTDOWN, 0);
end;



Страницы: 1 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.046 c
3-1084249325
Jedu
2004-05-11 08:22
2004.05.30
Сортировка по заданному полю в IBDataSet


3-1083736337
TATIANA
2004-05-05 09:52
2004.05.30
Хранимая процедура - запрос - BLOB - поле


3-1083839947
Alina
2004-05-06 14:39
2004.05.30
Дата???


1-1084662075
Shade_
2004-05-16 03:01
2004.05.30
Хранение дерева данных


3-1084186103
Mishenka
2004-05-10 14:48
2004.05.30
Есть ли стандартные диалоги для поиска в Базах данных?