crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Пару вопросов по QProcess
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
evCo Дата 13.7.2008, 11:57
 
Цитата(ViGOur @ 12.7.2008, 22:36) *
1. Как я понял в Qt пока этого нет, по крайней мере я этого тоже не нашел, думаю стоит самому написать это, как для винды это сделать ты уже знаешь, нужно только написать для *nix и если нужно то и для mac.

Да тут наверно пока и для *nix не нужно. Под винду у меня уже есть версия програмы написанная на визуалке. Только она написана криво. А счас вот недельку помучал Qt, понравилось очень :) Вот и решил переписать все на Qt, там и функционал расшрять проше.
Цитата(ViGOur @ 12.7.2008, 22:36) *
2. По поводу хуков WinApi можно почитать книжку Джеффри Рихтера Windows для профессионалов, кажется 22 глава.
Угу, 22 :) Спасибо за помощь.
ViGOur Дата 12.7.2008, 22:36
  1. Как я понял в Qt пока этого нет, по крайней мере я этого тоже не нашел, думаю стоит самому написать это, как для винды это сделать ты уже знаешь, нужно только написать для *nix и если нужно то и для mac.

2. По поводу хуков WinApi можно почитать книжку Джеффри Рихтера Windows для профессионалов, кажется 22 глава.
evCo Дата 12.7.2008, 18:38
  Недавно начал пользоваться Qt. И вот появилось пару вопросов по процессам.

1. Можно узнать "чистое" время выполнения процеса? Тоесть сколько времени выполнялся процесс с точностью до сотых секунды. Вариант

QTime timer;
timer.start();
QProcess pi;
pi.start("c:\\1.exe");
pi.waitForFinished();
qDebug("Process time: %d\n", timer.elapsed());

не подходит тк при низкой загруженности выходит в среднем: 1610 мсек. А если загрузить ЦП на 10-15% уже 1719 мсек. А в моем случае результаты могу отличиться МАХ на 40-50 мсек. Когда-то в визуалке я делал подобное так:

    FILETIME KernelTime, UserTime;
    union {
        LONGLONG li;
        FILETIME ft;
    } CreateTime, ExitTime, ElapsedTime;
    SYSTEMTIME ElTiSys, UsTiSys, KeTiSys;
...
    if(GetProcessTimes(pi.hProcess, &CreateTime.ft, &ExitTime.ft, &KernelTime, &UserTime)) {
        FileTimeToSystemTime(&UserTime,       &UsTiSys);
        f_execute_time  = UsTiSys.wSecond + ((float)(UsTiSys.wMilliseconds) / 1000);
    }

2. И еще момент, можно ограничить функционал выполняемой программы? То есть запретить ей некоторые действия, запись в файл использование портов и тд... Перехват WinAPI подойдёт но я так и не нашел нормального примера или статьи по перехвату.

Пишу в QDevelop, Qt 4.3.3 под winxp
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 17:07