![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
dinamyc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 3.5.2006 Репутация: нет Всего: нет |
вот код
Проблема в том что комманды выполняются но не все, например ren file.name file1.name и все зависание по полной(т.е. выполняются те которые что-то выводят[netstat,ping,dir...]). В чем проблема не подскажите! |
|||
|
||||
dinamyc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 3.5.2006 Репутация: нет Всего: нет |
Может че то с ReadFile и каналом. Ну кто с етим работал подскажите. Или мож условие не правильное
Apprunning=WAIT_OBJECT_0. A? |
|||
|
||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Проверять твой код не буду, лениво тест писать, но вот что скажу, ориентируясь на приведенные тобой симптомы болезни:
Если внимательно почитать справку то можно заметить что ReadFile вообщето немножко синхронная функция если ты не используешь пятый параметр. Что это означает - это означает, что пока ты не получишь данные, она тормозит вызвавший ее поток. Теперь взглянем откуда мы читаем? Читаем из трубы (PIPE) (не важно именованной или нет). В справке сказано буквально следующее:
Т.е. если ты хочешь считать с нее (к примеру) 12 гигабайт, она тебя не отпустит пока не передаст тебе нужный обьем или не произойдет ошибка. Будем считать что первый пункт с окончанием записи у тебя выполняется. В твоем примере ты запрашиваешь 2400. Соответственно вопрос. А кто такое кол-во байт туда положит? |
|||
|
||||
dinamyc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 3.5.2006 Репутация: нет Всего: нет |
А че же делать, если к примеру комманда assoc выводит туеву хучу байт, а ren ничего?
Вернее еси написать writeln(buffer); то команда ren выведет С:\Docume~\.....\ и вот ета строчка подряд выводится n раз пока не закроешь окно. Ведь заранее узнать сколько выведет команда низя. Я че то не догоняю. Ну ладно щас буду експериментировать. |
|||
|
||||
Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
обрати внимание на PeekNamedPipe
|
|||
|
||||
dinamyc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 3.5.2006 Репутация: нет Всего: нет |
Именно она мне и нужна спасибо
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |