C ++ перехватывает процесс и показывает статус - PullRequest
3 голосов
/ 24 мая 2010

Хорошо, я медленно изучаю C ++. Я знаком со всем консольным синтаксисом и всем, но теперь я перехожу к программированию Windows. Теперь я пытаюсь создать библиотеку DLL, которую я вставляю в процесс, и она подключается. Все, что я хочу от приложения C ++, - это наличие текста, который говорит «подключено», если оно успешно введено, ошибка, если что-то случилось. Или даже если я могу сделать это без DLL, просто откройте исполняемый файл, и когда будет открыт определенный процесс, который я пытаюсь подключить, статус изменится на «Подключен». Кроме того, у меня есть учетная запись safaribooksonline.com, поэтому, если есть какие-либо хорошие чтения, которые вы бы порекомендовали, просто запишите это. спасибо

Ответы [ 3 ]

3 голосов
/ 24 мая 2010

Я думаю, вы можете смотреть на это задом наперед. В C / C ++ приложение «вытягивает» DLL, а не «внедряет» DLL в приложение. Обычно для плагинов / ловушек существует некоторый механизм информирования приложения о доступности DLL (часто только о ее присутствии в определенном каталоге), а файл конфигурации или некоторая другая логика используется для указания приложению явной загрузки библиотеки, извлечения функции или две, и вызвать их.

Для программирования Windows я бы предложил выполнить поиск примеров вызова API LoadLibrary (). Вы, вероятно, найдете учебник или два о том, как это сделать.

1 голос
/ 24 мая 2010

Если под «подключенным» вы подразумеваете «запустить мою DLL в адресном пространстве этих процессов», вам нужно CreateRemoteThread().Это довольно сложный и трудный для отладки, потому что ваши ошибки вызывают сбой другой программы.Кстати, именно так работает множество вредоносных программ.

Если вы имеете в виду «получать уведомления моей DLL о работе в другом процессе», вам нужно SetWindowsHookEx().

0 голосов
/ 25 мая 2010

Похоже, что вы хотите ввести, как только приложение запускается?Вы можете сделать это с помощью Microsoft Detours DetourCreateProcessWithDll().Пример здесь .

...