Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ExitWindowsEx() ??? 
:(
    Опции темы
qaz
Дата 29.3.2002, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 407
Регистрация: 25.3.2002

Репутация: нет
Всего: 4



Чем можно заменить ф-цию ExitWindpwsEx (ShutDown) и ExitWindpwsEx (Reboot) - в 98 сносно работает, но в ХР  только LogOff делает вместо всего этого. Как быть?


--------------------
http://www.tuneart.com

"Software is like sex, it's better when it's free." - Linus Torvalds
PM MAIL   Вверх
Garik
Дата 29.3.2002, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник Клуба
Сообщений: 216
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 4



Скажу сразу, сам не пробовал и не знаю, прокатит ли это в ХР, но есть еще такой вариант:
rundll32 shell32,SHExitWindowsEx 1 - выключение
rundll32 shell32,SHExitWindowsEx 2 - перезагрузка.
Ну, а запускать через ShellExecute например.
--------------------
Программист - это не профессия. Это диагноз...
PM MAIL WWW ICQ   Вверх
Vit
Дата 29.3.2002, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Я тоже подумал об этом способе, но XP что-то не очень хочет так делать.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
qaz
Дата 30.3.2002, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 407
Регистрация: 25.3.2002

Репутация: нет
Всего: 4



Не хотить!
No such entry in shel32 :angry:
Ещё какие нить варианты будут?


--------------------
http://www.tuneart.com

"Software is like sex, it's better when it's free." - Linus Torvalds
PM MAIL   Вверх
Vit
Дата 30.3.2002, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Была такая еще функция, только я не помню где ExitKernel, по моему то-ли в User.EXE то ли в чем то подобном. Поищи по системным файлам в списках экспортируемых функций. Незнаю как в XP а предыдущих виндах закрывала винды мгновенно и без запросов, правда не давала и другим программам что либо закрыть. Кстати, а посылать Explorer сообщение wm_quit не пробовали?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
VitSoft
Дата 30.3.2002, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 24.3.2002

Репутация: нет
Всего: нет



да все работает

ExitWindowsEx:
...
Windows NT/2000/XP: To shut down or restart the system, the calling process must use the AdjustTokenPrivileges function to enable the SE_SHUTDOWN_NAME privilege. For more information about security privileges, see Privileges.

HANDLE hToken;
TOKEN_PRIVILEGES tkp;

// Get a token for this process.

if (!OpenProcessToken(GetCurrentProcess(),
       TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
   error("OpenProcessToken");

// Get the LUID for the shutdown privilege.

LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
       &tkp.Privileges[0].Luid);

tkp.PrivilegeCount = 1;  // one privilege to set    
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

// Get the shutdown privilege for this process.

AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
       (PTOKEN_PRIVILEGES)NULL, 0);

// Cannot test the return value of AdjustTokenPrivileges.

if (GetLastError() != ERROR_SUCCESS)
   error("AdjustTokenPrivileges");

// Shut down the system and force all applications to close.

if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))
   error("ExitWindowsEx");

:sneaky2

Good Luck VitSoft
http://www.development.efficientit.com
PM MAIL   Вверх
qaz
Дата 4.4.2002, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 407
Регистрация: 25.3.2002

Репутация: нет
Всего: 4



Вот это работает. Сенкс.
Только вот ещёё одна проблемма: при запуске функции ExitWindowsEx() в 98 комп сам вырубался без никаких вопросов (типа "теперь питание можно выключить"), а по предложенной схеме ХР умничать начинает - что теперь вам всё дозволено и выключайте комп руками .... Как от этого избавиться можно?


--------------------
http://www.tuneart.com

"Software is like sex, it's better when it's free." - Linus Torvalds
PM MAIL   Вверх
neutrino
Дата 4.4.2002, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 1
Всего: 62



Тут, мне кажется, уже надо писат Биллу.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0898 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.