Я хочу создать приложение на C или C++, которое должно отслеживать некоторые конкретные процессы. Как я могу сделать это возможным в C?Процессы мониторинга ОС Windows с использованием языка C
ответ
Вы сказали, что у вас есть tomaonitor «некоторые специфические процессы». Если ваше приложение запустило процессы, вы можете извлечь обработчики процессов из структуры PROCESS_INFORMATION (поле hProcess), которое вы передали функции CreateProcess. Если процесс, который вы хотите отслеживать, был запущен каким-то другим способом, вам нужен идентификатор процесса (PID) и использовать его в качестве третьего аргумента OpenProcess для получения дескриптора. Таким образом, вы можете использовать функции WaitForSingleObject или WaitForMultipleObjects, чтобы дождаться завершения процесса. При желании вы можете получить код завершения процесса с помощью функции GetExitCodeProcess. Существуют и другие способы, с помощью которых приложение может запустить новый процесс (например, библиотечной функцией _system()), но я настоятельно рекомендую использовать CreateProcess непосредственно в вашем коде, поскольку вы можете полностью контролировать поведение дочернего процесса (например, вы можно выбрать приоритет, передать дескрипторы stdin/stdout/stderr, определить характеристики окна запуска ...).
Предлагаемый пример: http://msdn.microsoft.com/en-us/library/ms682512%28VS.85%29.aspx
Прежде чем написать свое мнение, посмотрели ли Вы на Process Monitor v2.8?
Process Monitor является усовершенствованным инструментом мониторинга для Windows, который показывает файловой системы в режиме реального времени, реестра и процессов/потоков деятельности. Он сочетает в себе функции два устаревших Sysinternals утилиты, Filemon и Regmon, и добавляет обширный список усовершенствований, включая богатый и неразрушающей фильтрации, свойств всеобъемлющих событий таких сессии идентификаторы и имена пользователей, достоверную информацию процесса, полная резьба стопки со встроенной поддержкой символов для каждой операции, одновременная записьв файл и многое другое.
Вы начинаете процесс в Windows с CreateProcess() function. Он возвращает HANDLE для процесса в PROCESS_INFORMATION.hProcess. Этот дескриптор будет сигнализироваться, когда процесс завершится, что позволит вам отслеживать его срок службы. Для этого используйте WaitForSingleObject() или WaitForMultipleObjects(). Там пример кода доступны here...
, или если кто-то еще начал процесс, вы можете использовать OpenProcess, чтобы превратить PID в РУЧКУ в процесс. Обязательно запросите доступ к SYNCHRONIZE, если вы хотите дождаться его. –
образец для Win32 Platform.
- 1. Процессы мониторинга (дочерние, грандиозные, грандиозные ....) в Windows
- 2. Смена языка ОС (Windows 7)
- 3. Легкая платформа мониторинга нескольких ОС
- 4. UglifyJS с использованием НПМ в ОС Windows
- 5. Как получить язык ОС с использованием C++ API?
- 6. C# с использованием языка tesseract
- 7. Получение языка ОС в java
- 8. VTune с использованием встроенной ОС Windows
- 9. Связаны все процессы ОС с одним ЦП
- 10. Влияние dtrace, процессы мониторинга (OS X)?
- 11. Процессы Windows с приложениями
- 12. Elixir Процессы мониторинга:: EXIT против: DOWN
- 13. Сведения о ОС Windows с C++
- 14. Параллельные процессы с использованием семафоров в C
- 15. C синхронизирует процессы с использованием сигнала
- 16. Требования к ОС Windows для ОС Windows
- 17. Как получить имя языка ОС
- 18. Службы мониторинга экземпляра EC2 Windows с использованием AWS CloudWatch
- 19. разделить строки с использованием языка C
- 20. bluemix vm openstack с использованием языка C++
- 21. Caser Cipher crack с использованием языка C
- 22. Внедрение веб-служб с использованием языка C
- 23. Графика с использованием языка C (компилятор GCC)
- 24. Изменение настроек BIOS с использованием языка C
- 25. играть .wav файл с использованием языка c
- 26. сделать калькулятор с использованием языка C
- 27. Как реализовать CRC с использованием языка C
- 28. Служба распределенного мониторинга с использованием C# .NET 3.5
- 29. Windows и системные процессы
- 30. Панель мониторинга с использованием highcharts.js
Просьба предоставить более подробную информацию. Что конкретно вы хотите контролировать? – SLaks
Уточните, что именно вы подразумеваете под «монитором»? –
У меня есть свои собственные процессы, которые я должен начинать и останавливать в коротком контроле процесса, чтобы он мог передавать информацию о том, какой процесс находится в рабочем состоянии. Извините за мой английский. – Siddiqui