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

Вниз

Как перезагрузть компьютер?   Найти похожие ветки 

 
I am   (2006-03-05 20:27) [0]

Здравствуйте. Собственно, сабж. Заранее спасибо.


 
Desdechado ©   (2006-03-05 20:29) [1]

press reset to reboot


 
I am   (2006-03-05 20:36) [2]

[1] вариант, но, учитывая тематику форума, вопрос следует понимать как
"Каким образом реализовать вызов процедуры перезагрузки компьютера средствами программного продукта Borland Delphi?"


 
begin...end ©   (2006-03-05 21:31) [3]

ExitWindowsEx


 
I am   (2006-03-06 16:14) [4]

Ситуация: Были внесены изменения в реестр, причем для вступления этих изменений в силу требуется перезагрузка. Также, если ввести неверный параметр в реестре, то ошибка выдастся на черном экране (ОС WinXP)
Вытекающий вопрос: считается ли LogOut равносильным перезагрузке компьютера?


 
Dmitrij_K   (2006-03-06 16:54) [5]


> Вытекающий вопрос: считается ли LogOut равносильным перезагрузке
> компьютера?

Зависит от того в какой раздел реестра пишешь.


 
I am   (2006-03-06 18:01) [6]

> Зависит от того в какой раздел реестра пишешь.
HKEY_LOCAL_MACHINE тогда, по идее, требуется полноценная перезагрузка. А вот как ее реализовать?


 
Dmitrij_K   (2006-03-06 18:45) [7]

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 or EWX_FORCE);
end;

// Example to reboot Windows:

procedure TForm1.Button1Click(Sender: TObject);
begin
 MyExitWindows(EWX_REBOOT or EWX_FORCE);
end;


-----------------------
www.DRKB.ru


 
I am   (2006-03-06 19:26) [8]

Большое спасибо. Сам нашел схожий пример. Возник вопрос: что за тип EWX?
В хелпах я упоминания о нем не заметил (впрочем, как и о функции ExitWindowsEx)...


 
Dmitrij_K   (2006-03-06 19:36) [9]


> В хелпах я упоминания о нем не заметил

Плохо искал!
Delphi Menu : Help -> Windows SDK


 
umbra ©   (2006-03-06 19:38) [10]

EWX_ля-ля - это константы, они объявлены в windows.pas. Функция ExitWindowsEx описана в SDK


 
I am   (2006-03-07 11:06) [11]

Еще раз большое спасибо.



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

Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.037 c
2-1141668489
vital538
2006-03-06 21:08
2006.03.26
FireBird


2-1141894440
anubis
2006-03-09 11:54
2006.03.26
Сохранени Таблицы в .txt


2-1142069234
bogdan
2006-03-11 12:27
2006.03.26
не закрывается форма


1-1140468635
Blitz
2006-02-20 23:50
2006.03.26
Delphi & Assembler


2-1141676889
mrAndersen
2006-03-06 23:28
2006.03.26
text





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский