Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.042 c
14-1084050627
Petr V. Abramov
2004-05-09 01:10
2004.05.30
Про семафоры


1-1084467098
Kreon
2004-05-13 20:51
2004.05.30
OnMouseWheelDown,Up


14-1083909758
stone
2004-05-07 10:02
2004.05.30
Без прав теперь не покататься. Даже на мопеде


14-1083286022
wyny
2004-04-30 04:47
2004.05.30
Windows XP или Windows 2000 Что лучше?


9-1071393737
ProgrammeR_SC
2003-12-14 12:22
2004.05.30
Как работать с Lua?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский