Аватар для Addenri
0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 21

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

24.11.2019, 00:48. Показов 3438. Ответов 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
6477 / 5698 / 1132
Регистрация: 11.10.2019
Сообщений: 15,176
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru