Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
 Аватар для Addenri
0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 21

Передача дескриптора текущего процесса

24.11.2019, 00:48. Показов 3390. Ответов 3

Студворк — интернет-сервис помощи студентам
Задание передать дескриптор текущего процесса от приложения-клиента к серверу. Для получения и передачи дескриптор процесса, я так понимаю, необходимо получить через DuplicateHandle, т.к. передавать псевдодескриптор бессмысленно.
C++
1
2
3
4
5
6
HANDLE hProcess = OpenProcess(PROCESS_DUP_HANDLE, FALSE, GetCurrentProcessId());
HANDLE procHANDLE;
DuplicateHandle(hProcess, hProcess, hProcess,
    &procHANDLE,
    NULL,
    FALSE, DUPLICATE_SAME_ACCESS);
Попытка вытащить какую-либо информацию из дескриптора на сервере ни к чему не приводит, например вместо имени .exe-шника остаётся пустая строка:
C++
1
2
GetModuleBaseName(procHANDLE, NULL, path, 256);
MessageBox(hWnd, path, TEXT(""), MB_ICONINFORMATION);
Почему не удаётся получить ничего из этого дескриптора?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.11.2019, 00:48
Ответы с готовыми решениями:

Получение дескриптора экранного буфера консоли дочернего процесса
Здравствуйте. Можно ли и если можно , то как Получить дескриптор экранного буфера консоли дочернего процесса.Процесс создаю следующим...

Получить имя текущего процесса
Приветствую! Возникло затруднение одно. Мне нужно получит имя текущего процесса, чтобы вывести его на консоль. Получить список всех...

Как узнать имя текущего процесса и использованное время процессора?
Как узнать имя текущего процесса и использованное время ЦП? Эта функция возвращает имя текущего процесса или это не так? WCHAR nm; ...

3
фрилансер
 Аватар для Алексей1153
6451 / 5652 / 1129
Регистрация: 11.10.2019
Сообщений: 15,055
24.11.2019, 08:29
Addenri, а клиент и сервер на одной машине?
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
24.11.2019, 10:53
Лучший ответ Сообщение было отмечено Addenri как решение

Решение

Цитата Сообщение от Addenri Посмотреть сообщение
Почему не удаётся получить ничего из этого дескриптора?
В DuplicateHandle третьим параметром нужно передавать процесс, для которого ты делаешь копию, т.е. хэндл процесса-сервера
hTargetProcessHandle
A handle to the process that is to receive the duplicated handle. The handle must have the PROCESS_DUP_HANDLE access right.
Т.е., наверное, тебе нужно будет на клиенте получить от сервера id его процесса, потом
C++
1
2
3
4
5
6
7
HANDLE hProcess = ::GetCurrentProcess();
HANDLE hServerProcess = OpenProcess(PROCESS_DUP_HANDLE, FALSE, dwServerProcessID);
HANDLE procHANDLE;
DuplicateHandle(hProcess, hProcess, hServerProcess,
    &procHANDLE,
    NULL,
    FALSE, DUPLICATE_SAME_ACCESS);
1
 Аватар для Addenri
0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 21
24.11.2019, 13:35  [ТС]
Алексей1153, Да, на одной.
oleg-m1973, спасибо, так действительно работает. Я думал, что третий и четвёртый параметры только для дочерних процессов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2019, 13:35
Помогаю со студенческими работами здесь

Определение PPID для текущего процесса
Ребята Help!!! я должен написать программу для текущего значени ppid,pid для родителей и ребёнка,а сам в с++ ваще не шарю. Буду очень рад...

Передача дескриптора текущего процесса через mailslot
Пытаюсь передать дескриптор текущего процесса и его ID через mailslot. ID проходит норм, сами сообщения "ID процесса" и...

Передача дескриптора окна
Создал приложение в Windows Forms в vs17. Проблема заключается в том, что мне необходимо использовать такие функции, как...

Передача дескриптора COM-порта между методами
Доброго времени суток, уважаемые знатоки. Не судите строго) объявил public static ModbusSerialMaster master; При загрузке формы сделал...

Определение текущего процесса
Сделал в консольном приложении такую программку, для определения, запущен ли процесс: #include <windows.h> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru