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

RusFAQ.ru: Win API


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

RusFAQ.ru: Win API

Выпуск № 092
от 26.09.2004, 19:20

Администратор:
Имя: Калашников О. А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 261
Отправлено ответов: 335
Активность: 128.3 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]

ВНИМАНИЕ!
9 октября 2004 года в 17:00 (суббота) состоится встреча экспертов и подписчиков из Москвы и Области.
С собой иметь некоторое количество денежных знаков в разумных пределах для рюмочно-закусочного заведения.
Всем желающим принять участие в данном мероприятии просьба писать администратору по адресу: adm@rusfaq.ru или сбросить СМС-сообщение на номер +7-926-535-23-31, где сообщить Ваше имя и намерение присутствовать на встрече.
Место встречи будет сообщено дополнительно в начале октября персонально каждому, кто решит принять участие в тусоffке (по почте или СМС-кой соответственно).
Приглашаются все желающие!



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

Student
Статус: Опытный
Общий рейтинг: 128.36
[Подробней >>]
PavPS
Статус: Доверительный
Общий рейтинг: 112.5
[Подробней >>]
Александр Чуранов
Статус: Доверительный
Общий рейтинг: 126.66
[Подробней >>]


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

Вопрос № 256. Как запустить процесс, вычислить точно его время выполнения(с точностью до 50мс), завершать его из м... (ответов: 2)
Вопрос № 257. Здраствуйте эксперты!!! Помогите разобраться, как всё же организовать прямой доступ к CD диску под W... (ответов: 1)

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


 Вопрос № 256

Как запустить процесс, вычислить точно его время выполнения(с точностью до 50мс), завершать его из моей програмы (хоть консольной). Важно полностью завершать этот процесс, так как запускаться будут десятки програм подряд. Пишу проверялку олимпиадных програм.



Вопрос отправлен: 21.09.2004, 17:34
Отправитель: Valera

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

Отвечает Student

Доброе время суток, Valera!
The CreateProcess function creates a new process and its primary thread. The new process executes the specified executable file.
BOOL CreateProcess(
LPCTSTR lpApplicationName, // pointer to name of executable module
LPTSTR lpCommandLine, // pointer to command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes, // pointer to process security attributes
LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes
BOOL bInheritHandles, // handle inheritance flag
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // pointer to new environment block
LPCTSTR lpCurrentDirectory, // pointer to current directory name
LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION
);
///////////////////////////////////////////////////// //////
The ExitProcess function ends a process and all its threads.
VOID ExitProcess(
UINT uExitCode // exit code for all threads
);


Ответ отправлен: 21.09.2004, 21:40
Отправитель: Student


Отвечает PavPS

Добрый день, Valera!
1) - неточный.
Через CreateProcess создавай процесс (запускай EXE), причём с флагом CREATE_SUSPENDED.
Создавай таймер, тоже приостановленным.
Запускай таймер, и делай ResumeThread(нить созданного процесса).
Вызывай WaitForSingleObject(хэндл процесса)
После, когда дождешься (процесс сам завершиться), останавливай таймер и СЧИТАЙ СКОКА НАТИКАЛО.
Этот метод неточный ввиду того, что планировшик может прервать непрерывную посл-ть синхро-комманд.
2) - точнее.
Через CreateProcess создавай процесс не приостанавливай.
WaitForSingleObject(хэндл процесса)
GetProcessTimes...
А)Суммируй KernekTime&UserTime, если прога взаимодействует с ядром сама.
Б1)Бери тока UserTime, если это DOS прога, т.к. VDM ужсно медленная и сама сильно взаимодействует с ядром, а флуктуации скорости этих(не наших) действий в ядре будут только мешать.
Б2)Бери тока UserTime если любая другая, не обращ к ядру.
Фраза &qu ot;завершать его из моей програмы" неясна, т.к. Тебе надо знать когда программа доделает свои действия, и только потом завершить. Т.О. ВСЁ вышеописанное для программ, которые сами завершат свою работу.

Ответ отправлен: 21.09.2004, 20:28
Отправитель: PavPS


 Вопрос № 257

Здраствуйте эксперты!!!
Помогите разобраться, как всё же организовать прямой доступ
к CD диску под Win32!!!



Вопрос отправлен: 22.09.2004, 19:13
Отправитель: axus (axus@mail.nnov.ru)

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

Отвечает Александр Чуранов

Доброе время суток, axus!
Вообще, винда не должна Вам такого позволить. А если хочется попробовать, то можно сделать CreateFile("\.R:", ...), затем ReadFile(...) и CloseHandle(...). Где R - буква целевого компакт-диска.


Ответ отправлен: 26.09.2004, 11:01
Отправитель: Александр Чуранов



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

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

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

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (23)
C / C++ (17)
Perl (7)
Builder / Delphi (13)
Pascal (20)
Basic / VBA (6)
Java / JavaScript (6)
PHP (16)
Криптография (6)
WinAPI (12)
Радиоэлектроника (13)
Пользователю
Windows 95/98/Me (49)
Windows NT/2000/XP (67)
"Железо" (43)
Поиск информации (22)
Администратору
Windows NT/2000/XP (47)
Linux / Unix (19)
Юристу
Гражданское право (7)
Семейное право (4)
Трудовое право (6)
КоАП (4)

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




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


Яндекс цитирования
© 2001-2004 Россия, Москва. Идея, дизайн, программирование: Калашников О.А. ICQ: 68951340
При перепечатке материалов ссылка на данный сайт обязательна!

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.winapifaq
Отписаться

В избранное