Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Где найти информацию о перегрузках Windows из своей программы
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию Где найти информацию о перегрузках Windows из своей программы - 19.12.2002, 13:15

(Builder)
Подскажите как или где можно почитать про перегрузку виндов из своей проги.
Заранее благодарен.
Ответить с цитированием
  (#2 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 19.12.2002, 16:47

В MSDN, вестимо.

ExitWindowsEx
The ExitWindowsEx function either logs off the current user, shuts down the system, or shuts down and restarts the system. It sends the WM_QUERYENDSESSION message to all applications to determine if they can be terminated.
Ответить с цитированием
  (#3 (permalink)) Старый
AssAsin AssAsin вне форума
Member
 
Сообщений: 383
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 02.11.2002
По умолчанию 21.12.2002, 01:08

Смежный вопрос - для настоящих профессионалов: как [гарантированно] под 95/98/ME вызвать синий экран смерти? Все равно какой, но лучше, конечно, "system unstable".
Ответить с цитированием
  (#4 (permalink)) Старый
SH@DOW SH@DOW вне форума
Member
 
Сообщений: 2,085
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.09.2002
По умолчанию 23.12.2002, 11:56

Под 2000 невопрос а вот под предыдущие вопрос времени!!!

"Операция выполнила недопустимую ошибку и бу закрыта"
Ответить с цитированием
  (#5 (permalink)) Старый
AssAsin AssAsin вне форума
Member
 
Сообщений: 383
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 02.11.2002
По умолчанию 24.12.2002, 23:45

Ответ хороший, но не на мой вопрос! Названная мессага появляется в GUI окне и не рушит Windows. А мне ломаааать охота!!!
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
The cxx: uragana The cxx: uragana вне форума
Member
 
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 22.05.2003
По умолчанию 22.05.2003, 01:45

а просто "повесить" не пойдет?
Код:
asm{
  cli
  jmp $-2
}
но не работает на NT (2000, XP)
Ответить с цитированием
  (#7 (permalink)) Старый
imported_Руся imported_Руся вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.02.2005
По умолчанию Re: перегрузка Windows - 02.02.2005, 13:11

Цитата:
Originally posted by kensay
[b](Builder)
Подскажите как или где можно почитать про перегрузку виндов из своей проги.
Заранее благодарен.

Да... значит чтобы ExitWindowsEx по ХРюшу вырубил комп, нужно знать волшебное слово (а именно привилегию).


Код:
HANDLE hToken; 
TOKEN_PRIVILEGES tkp; 
if (!OpenProcessToken(GetCurrentProcess(), 
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
error("OpenProcessToken");  
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, 
&tkp.Privileges[0].Luid); 
tkp.PrivilegeCount = 1; // one privilege to set 
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, 
(PTOKEN_PRIVILEGES)NULL, 0); 
if (GetLastError() != ERROR_SUCCESS) 
error("AdjustTokenPrivileges"); 
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) 
error("ExitWindowsEx");
EWX_SHUTDOWN - выключение
EWX_REBOOT - перезагрузка
EWX_LOGOFF - заревшение сеанса

Чтобы комп не страдал, ждя завершения процессов добавить EWX_FORCE, как показано в примере
Ответить с цитированием
  (#8 (permalink)) Старый
imported_Руся imported_Руся вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.02.2005
По умолчанию Re: перегрузка Windows - 02.02.2005, 13:11

Цитата:
Originally posted by kensay
[b](Builder)
Подскажите как или где можно почитать про перегрузку виндов из своей проги.
Заранее благодарен.

Да... значит чтобы ExitWindowsEx по ХРюшу вырубил комп, нужно знать волшебное слово (а именно привилегию).


Код:
HANDLE hToken; 
TOKEN_PRIVILEGES tkp; 
if (!OpenProcessToken(GetCurrentProcess(), 
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
error("OpenProcessToken");  
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, 
&tkp.Privileges[0].Luid); 
tkp.PrivilegeCount = 1; // one privilege to set 
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, 
(PTOKEN_PRIVILEGES)NULL, 0); 
if (GetLastError() != ERROR_SUCCESS) 
error("AdjustTokenPrivileges"); 
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) 
error("ExitWindowsEx");
EWX_SHUTDOWN - выключение
EWX_REBOOT - перезагрузка
EWX_LOGOFF - заревшение сеанса

Чтобы комп не страдал, ждя завершения процессов добавить EWX_FORCE, как показано в примере
Ответить с цитированием
  (#9 (permalink)) Старый
imported_Руся imported_Руся вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.02.2005
По умолчанию Re: перегрузка Windows - 02.02.2005, 13:11

Цитата:
Originally posted by kensay
[b](Builder)
Подскажите как или где можно почитать про перегрузку виндов из своей проги.
Заранее благодарен.

Да... значит чтобы ExitWindowsEx по ХРюшу вырубил комп, нужно знать волшебное слово (а именно привилегию).


Код:
HANDLE hToken; 
TOKEN_PRIVILEGES tkp; 
if (!OpenProcessToken(GetCurrentProcess(), 
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
error("OpenProcessToken");  
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, 
&tkp.Privileges[0].Luid); 
tkp.PrivilegeCount = 1; // one privilege to set 
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, 
(PTOKEN_PRIVILEGES)NULL, 0); 
if (GetLastError() != ERROR_SUCCESS) 
error("AdjustTokenPrivileges"); 
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) 
error("ExitWindowsEx");
EWX_SHUTDOWN - выключение
EWX_REBOOT - перезагрузка
EWX_LOGOFF - заревшение сеанса

Чтобы комп не страдал, ждя завершения процессов добавить EWX_FORCE, как показано в примере
Ответить с цитированием
  (#10 (permalink)) Старый
imported_Руся imported_Руся вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.02.2005
По умолчанию Re: перегрузка Windows - 02.02.2005, 13:11

Цитата:
Originally posted by kensay
[b](Builder)
Подскажите как или где можно почитать про перегрузку виндов из своей проги.
Заранее благодарен.

Да... значит чтобы ExitWindowsEx по ХРюшу вырубил комп, нужно знать волшебное слово (а именно привилегию).


Код:
HANDLE hToken; 
TOKEN_PRIVILEGES tkp; 
if (!OpenProcessToken(GetCurrentProcess(), 
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
error("OpenProcessToken");  
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, 
&tkp.Privileges[0].Luid); 
tkp.PrivilegeCount = 1; // one privilege to set 
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, 
(PTOKEN_PRIVILEGES)NULL, 0); 
if (GetLastError() != ERROR_SUCCESS) 
error("AdjustTokenPrivileges"); 
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) 
error("ExitWindowsEx");
EWX_SHUTDOWN - выключение
EWX_REBOOT - перезагрузка
EWX_LOGOFF - заревшение сеанса

Чтобы комп не страдал, ждя завершения процессов добавить EWX_FORCE, как показано в примере
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить коментарии для своей программы AndrealinA C++ Builder 3 17.05.2009 15:27
Управление другой программой из своей программы Sergey512 C++ Builder 3 12.08.2006 03:54
Как организовать плагинное строение своей программы Slaia Visual C++ 29 21.06.2006 12:37
Создание инсталятора для своей программы vain Visual C++ 5 06.06.2006 15:57
Как перетаскивать файл из своей программы Dian WinAPI 0 06.03.2006 11:36
Как в VC создается справочная система для своей программы LeM2003 Visual C++ 1 14.07.2004 14:41
Регистрация своей программы PeroManiak Мысли вслух 2 13.07.2004 05:45
Как передать изображение в Microsoft Excel из файла или своей программы sem2001 C++ Builder 1 23.02.2004 11:38
Как показать BMP файл в окне своей программы Alecx Visual C++ 6 25.08.2003 11:52
Как показать PDF файл в окне своей программы imported_Andre Visual C++ 1 29.06.2003 03:05
Как сделать чтобы при закрытия своей программы не закрывался word Sysdba C++ Builder 0 22.05.2003 02:03
Как написать модификацию своей резидентной программы для клавиатуры Anonymous Assembler 1 12.02.2003 17:26



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов