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

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


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


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

Выпуск № 282
от 12.06.2003, 18:10

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


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

Ramzes
Статус: Профессиональный
Общий рейтинг: 126.78
URL: Microsoft homepage
[Подробней >>]
BOLT
Статус: Профессиональный
Общий рейтинг: 171.88
URL: Начинающему программитсу: софт, примеры, документация, Assembler, C/C++.
[Подробней >>]
Yuri Gordienko
Статус: Опытный
Общий рейтинг: 116.15
[Подробней >>]
 
Dzik
Статус: Профессиональный
Общий рейтинг: 112.94
URL: Разработка игрушек
[Подробней >>]
Avl2k
Статус: Опытный
Общий рейтинг: 125.53
[Подробней >>]


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

Вопрос № 844. Привет, уважаемые. У меня вопрос только к тем, кто знает что-то конкретное (может привести пример) и... (ответов: 2)
Вопрос № 845. Скажите где ошибка!!! Всю оптимизацию отключил. Должна выводить: D DD DDD DDDD А выводит: DDD DDD D... (ответов: 3)

Вопросов: 2, ответов: 5


 Вопрос № 844

Привет, уважаемые.
У меня вопрос только к тем, кто знает что-то конкретное (может привести пример) или заинтересован. Материала у меня уже достаточно - не хватает только знаний, поэтому, пожалуйста, не давайте ссылок, где "что-то про это написано" - лучше не отвечайте вообще.
Я хочу написать прогу, которую невозможно было бы закрыть в WinXP. Пока что я сделал два смежных процесса, которые одновременно сидят в памяти и запускают друг друга, когда кого-то из них выгружают. Но в TaskMan'е есть возможность завершить дерево процессов (команда Terminate process tree), что портит всю малину.
Есть идея внедрить свою DLL, скажем, в процесс Explorer'а и заставить ее работать как программу-помощник (см. выше). Тогда это будет отдельный процесс и "Terminate process tree" не сможет все закрыть. Но тут-то и трудности. Если внедрить ее с помощью хуков, то Unhook произойдет автоматически, как только главное приложение закроется (поправьте, если ошибаюсь).
So, надо сделать так, чтобы некая прога приаттачила DLL к explorer'у, и та DLL потом не зависела от работы этой некой проги, а работала бы там сама по себе.
1) Как это сделать? У меня есть чужая библиотека (нашел на http://EliCZ.cjb.net), где есть такая возможность, но исходников этой либы нет, а не хотелось бы таскать ее с моей прогой.
2) Как сделать, чтобы приаттаченная DLL создала таймер и выполняла какие-либо действия при его срабатывании. При DLL_PROCESS_ATTACH я пытаюсь сделать SetTimer с обработкой таймера в процедуре моей DLL. Также пытался создать в DLL диалог (CreateDialog) и ловить сообщение WM_TIMER в нем. Наверное иду не тем путем - ничего не получается.
С надеждой на понимание.
Nex



Вопрос отправлен: 08.06.2003, 15:07
Отправитель: Nex (nex@kor.kes.ru)

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

Отвечает Ramzes

Доброе время суток, Nex!
Выслал исходник , как приаттачить либу к чужому процессу..
В примере есть ДЛЛ-ка. Если ее загрузить в адресное пространство чужого процесса, то при закрытии она выдает сообщение (она перехватывает вызов ExitProcess :)) )


Ответ отправлен: 10.06.2003, 18:06
Отправитель: Ramzes


Отвечает BOLT

Здравствуйте, Nex!
Ну раз у тебя много материала, то ты должен знать как вырубить Task Manager в Windows XP.У меня маловато материала, но я знаю как это сделать.Если заинтересуешься, то пиши, помогу.
Да прибудет с тобой Велика Сила!

Ответ отправлен: 09.06.2003, 13:50
Отправитель: BOLT


 Вопрос № 845

Скажите где ошибка!!!
Всю оптимизацию отключил.
Должна выводить:
D
DD
DDD
DDDD
А выводит:
DDD
DDD
DDD
DDD
или еще хуже (в зависимости от настроек)


Приложение:


Вопрос отправлен: 09.06.2003, 18:08
Отправитель: Quas

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

Отвечает Yuri Gordienko

Приветствую Вас, Quas!
1.для поиска символа используй стандартные функции,
например strchr или strrchr
2.Ты у себя в первом цикле ищешь до _MAX_PATH(кстати ошибка выхода из диапазона, ну да ладно, все равно в корне неправильно), хотя надо перебирать до конца строки, короче смотри п.1.
3.rt[elend] = ''; - неправильно, надо rt[elend]=0;
4.Остальные ошибки идут от этих.
Успехов


Ответ отправлен: 09.06.2003, 19:06
Отправитель: Yuri Gordienko


Отвечает Dzik

Добрый день, Quas!
В путях надо ставить двойные слеши!

Ответ отправлен: 10.06.2003, 05:27
Отправитель: Dzik


Отвечает Avl2k

Доброе время суток, Quas!
Оптимизация тут абсолютно не причем. Ошибок несколько:
> for (short i = 0; i <= _MAX_PATH; i++)
szPath состоит из _MAX_PATH символов - нехорошо обращаться за последний символ (индекс последнего символа _MAX_PATH - 1)
> for (short i2 = elem; szPath[i2] != ' '; i2++)
> rt[elend] = ' ';
Непонятно, причем тут пробел - вообще-то строки заканчиваются нулем (или это RusFaq глючит?). В любом случае, когда ищете что-нибудь в строке, надо бы проверять на конец, а при формировании строки заканчивать ее нулем.
Я так понял, что Вам нужно получить из пути имя файла без расширения - тогда не понятен алгоритм. Сначала Вы ищете точку, а затем копируете все символы после нее до первого пробела (или конца строки). Так Вы в лучшем случае получите расширение :)
Вообще, в stdlib.h есть такая функция _splitpath. Она примерно этим и занимается. Например:
char path_buffer[_MAX_PATH];
char drive[_MAX_DRIVE]; // диск
char dir[_MAX_DIR]; // директория
char fname[_MAX_FNAME]; // имя файла
char ext[_MAX_EXT]; // расширение
strcpy(path_buffer, "D\D\DDDD.DDD");
_splitpath( path_buffer, drive, dir, fname, ext );
С уважением, Avl2k.



Ответ отправлен: 09.06.2003, 18:57
Отправитель: Avl2k



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

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

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

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

В избранное