Re: Передать хэндл в другой процесс
От: McQwerty Россия  
Дата: 17.02.11 07:53
Оценка:
А>Каким образом можно передать хэндл из одного процесса в другой?
А>Просто средствами IPC передать числовое значение — это нормально?

Есть DuplicateHandle.
BOOL WINAPI DuplicateHandle(
  __in   HANDLE hSourceProcessHandle,
  __in   HANDLE hSourceHandle,
  __in   HANDLE hTargetProcessHandle,
  __out  LPHANDLE lpTargetHandle,
  __in   DWORD dwDesiredAccess,
  __in   BOOL bInheritHandle,
  __in   DWORD dwOptions
);

Параметрами hSourceProcessHandle/hTargetProcessHandle можно заказать и искомое.
Но хендл должен быть не любой, а из списка: access token, change notification, communications device, console input, console screen buffer, desktop, event, file, file mapping, job, mailslot, mutex, pipe, process, registry key, semaphore, thread, timer, transaction, window station. А если хендл от окна (HWND), то его и так можно передавать (в пределах одной window station, если мой склероз меня не обманывает).

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