Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 127
от 22.11.2002, 16:41

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 379
Отправлено ответов: 822
Активность: 216.8 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Gibbel
Статус: Профессиональный
Общий рейтинг: 108.52
URL: Страничка обо мне и моих друзьях
[Подробней >>]
Avl2k
Статус: Доверительный
Общий рейтинг: 125.96
[Подробней >>]
Nick Vishnievski
Статус: Начальный
Общий рейтинг: 108.1
[Подробней >>]
 
Zloy
Статус: Опытный
Общий рейтинг: 107.75
URL: Паскаль, просто Паскаль ...
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.25
[Подробней >>]
PL
Статус: Начальный
Общий рейтинг: 105.45
[Подробней >>]
 
Dzik
Статус: Опытный
Общий рейтинг: 114.09
URL: Разработка игрушек
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 374. Дарова! Я тут опять на счёт выключения перезагрузки/компа. Функция ExitWindowsEx под NT не работает ... (ответов: 4)
Вопрос № 375. Здравстуйте. У меня 2 вопроса: 1) Как можно отправить сообщение на ICQ? 2) Как на WinApi сделать обы... (ответов: 2)
Вопрос № 376. Уважаемые эксперты! Крик души!Создается странное впечатление.На мой вопрос ‘Как очистить список ссыл... (ответов: 4)

Вопросов: 3, ответов: 10


 Вопрос № 374

Дарова!
Я тут опять на счёт выключения перезагрузки/компа. Функция ExitWindowsEx под NT не работает !? Может ещё есть? Вобще, если можно то примерчик напишите....



Вопрос отправлен: 19.11.2002, 05:56
Отправитель: Soldier

[Следующий вопрос >>] [Список вопросов]

Отвечает Gibbel

Добрый день, Soldier!
Надеюсь, тебе это поможет:
Microsoft Knowledge Base Article - 176695 (PRB: ExitWindowsEx API Does Not Reboot Windows NT)
Но, на самом деле, с перезагрузкой может быть еще много проблем, так что, полазь по мелкософтовскому сайту.


Ответ отправлен: 19.11.2002, 09:47
Отправитель: Gibbel


Отвечает Avl2k

Приветствую Вас, Soldier!
Нет, под NT все прекрасно работает, просто там необходимо предварительно вызвать AdjustTokenPrivileges (см. пример из MSDN'а).
С уважением, Avl2k.
P.S. Если пример поместить в приложение, то ответ пропадает :(
Shutting Down
You can use the ExitWindowsEx function to shut down the system. Shutting down flushes file buffers to disk and brings the system to a condition in which it is safe to turn off the computer.
Windows NT/2000 or later: The following example enables the SE_SHUTDOWN_NAME privilege and then shuts down the system.
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");
For more information about setting security privileges, see Privileges.

Приложение:

Ответ отправлен: 19.11.2002, 10:54
Отправитель: Avl2k


Отвечает Nick Vishnievski

Здравствуйте, Soldier!
потому что для выключения компа под NT нужно иметь на то привилегии. предоставляются они функцией AdjustTokenPrivileges (...) - позволить SE_SHUTDOWN_NAME. как это юзать написано в справочной системе.


Ответ отправлен: 19.11.2002, 14:14
Отправитель: Nick Vishnievski


Отвечает Zloy

Доброе время суток, Soldier!
Я же уже написал цитату из хелпа... если не внял:
To shut down or restart the system, the calling process must use the AdjustTokenPrivileges function to enable the SE_SHUTDOWN_NAME privilege



Ответ отправлен: 19.11.2002, 15:17
Отправитель: Zloy


 Вопрос № 375

Здравстуйте.
У меня 2 вопроса:
1) Как можно отправить сообщение на ICQ?
2) Как на WinApi сделать обычное окно программы и поместить туда одну кнопку?


Приложение:


Вопрос отправлен: 19.11.2002, 09:17
Отправитель: BaXI

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Здравствуйте, BaXI!

Отвечу на первый вопрос. Найди в интернете описание протокола ICQ, он есть, просто надо поискать. Дальше реализуешь протокол на сокетах, тоже ничего сложного. Весь текст 2002б посылает в RTF формате, но, я думаю, может обрабатывать и простые текстовые сообщения.
На второй вопрос - просто покапайся в МСДН - там есть примеры на этот счет.

Ответ отправлен: 19.11.2002, 16:51
Отправитель: vitya


Отвечает Gibbel

Здравствуйте, BaXI!
1. С помощью ICQAPI
2. Регистрируем класс окна(RegisterClassEx), создаем окно этого класса(CreateWindow), создаем дочернее окно класса "Button" (CreateWindow).

Ответ отправлен: 19.11.2002, 11:00
Отправитель: Gibbel


 Вопрос № 376

Уважаемые эксперты!
Крик души!Создается странное впечатление.На мой вопрос ‘Как очистить список ссылок IE?’ пришел десяток ответов,все мне подробненько объясняли,что нужно зайти в ... и очистить ... .На мои же предыдущие более сложные вопросы я ответа так и не получил,повторяю их через некоторое время и жду ,ну, очень долго,так как для меня это очень важно,я не могу продвинуться вперед,а спросить больше не у кого.Правда,получил один-единственный ответ,кто-то сказал,что мы уже достали этим вопросом,нам,просто лень полазить в рассылках.Во-первых,мне не лень,а я в рассылках их не нашел,а во-вторых,у меня ограничен Internet.Вывод: на примитивные ответы типа, как вывести на экран строку текста или как пользоваться ф-ей itoa все отвечают хором,а на более или менее сложный вопрос никому не хочется напрягать мозги,а вопросы ведь просто так не задаются,кто-то ждет на них ответа (как соловей лета),мы,ведь, учимся,а,вот,помочь – некому,все только очки зарабатывают.
Сомневаюсь,что теперь тем более кто-нибудь ответит,но все-таки попробую,в последний раз получить ответ хоть на один вопрос:
1. как сделать прогу без окна невидимой в списке задач?
2. как сделать так,чтобы,если она есть в списке задач,но ее пытаются
закрыть при помощи Ctrl+Alt+Del - она не закрывалась?
По второму вопросу я понимаю,что нужно просто включить в прогу
сообщение,типа WM_CLOSE и не обрабатывать его,т.е.,чтобы прога на
него не реагировала,но какое именно сообщение - не
знаю,перепробовал несколько,но не помогает.
3. Как считать инфу из журнала Windows\History?
Пробую как обычно записать имена файлов и каталогов из папки History,а там какие-то непонятные папки типа History.IE5 и MSHist012002111220021113 и файлы
index.dat и desktop.ini.Понятно,что папки типа ‘Сегодня’ и файла в ней типа
www.yahoo.com – это просто такое представление инфы в этом каталоге,а как конкретно считать инфу?
1. Как взять последнее время посещения?Число посещений?Адрес в Internet’e?
Спасибо заранее,если кто-нибудь откликнется.



Вопрос отправлен: 19.11.2002, 11:26
Отправитель: Юрий (g.u_postmaster@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Здравствуйте, Юрий!
В видновс nt/2000 это не возможно. Или это будет обычный процесс или сервис. в первом случае это лекго закрывается из task managera во втором случае стопается и убирается через service manager. В вин98/95 это возможно если ты ставишь стиль окна WS_CHILD (или какой-то другой, просто сейчас не помню), тогда у него не будет task bar item - соответственно исчезнет из task manager a.
ДЛя того чтобы читать history посмотри в IShell и соответствующие интерфейсы, сам никогда не занимался.
Сообщение обрабатывай именно WM_CLOSE и не вызывай parent's OnClose функцию. Но в нт/2000 если закрывается через таск manager то закроется наверняка, уж не сомневайся!
Вот так. Будут вопросы - задавай.

Ответ отправлен: 19.11.2002, 17:00
Отправитель: vitya


Отвечает PL

Доброе время суток, Юрий!
Попробую ответить,
1/ "Невидимыми" программами в "ОС Окна" :-) являются сервисы
2/ Если ты имеешь в виду 98ю Винь где "Снимаются задачи" то там видны только апплекухи, а не сервисы.
На КодеПроджекте есть класные статью - почитай!
http://codeproject.com/system/serviceskeleton.asp
http://codeproject.com/system/cservicehelper.asp
http://codeproject.com/system/windowsservices.asp
3/Если тебе надо знать какие страницы когда посещались то для этого и предназначены сквиды, а вот хистори почистить не чаго не стоит
Надеюсь хоть чемто помог!

Ответ отправлен: 20.11.2002, 07:07
Отправитель: PL


Отвечает Dzik

Приветствую Вас, Юрий!
1)Под вин 98 RegisterProcess
2)Никак, по ctrl-alt-del через 15 сек прога закроется полюбому.


Ответ отправлен: 19.11.2002, 11:54
Отправитель: Dzik


Отвечает Zloy

Приветствую Вас, Юрий!
1.исползуйте RegisterServiceProcess
2.единственное, что прихоит в голову - закрывая окно по тре клавишам Win вначале шлёт окну сообщение WM_CLOSE, так что можно в ответ на это сообщение запускать саму прогу заново, передавая критические параметры через командную строку, а тут которую вин пытается закрыть закрывать самому.

Ответ отправлен: 20.11.2002, 09:41
Отправитель: Zloy



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (42)
C / C++ (29)
Perl (8)
Delphi (14)
Pascal (22)
Basic / VBA (12)
Java / JavaScript (14)
PHP (11)
MySQL / MSSQL (9)
Пользователю
Windows 95/98/Me (32)
Windows NT/2000/XP (22)
"Железо" (27)
Поиск информации (17)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (16)
Юристу
Гражданское право (7)
Семейное право (2)
Трудовое право (3)
КоАП (2)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное