Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
71 / 59 / 14
Регистрация: 20.12.2013
Сообщений: 732

Что такое desctop?

11.02.2018, 01:02. Показов 701. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Интересует в плане возможности функции SetWindowsHookEx общаться с другими процессами.
SetWindowsHookEx function

Installs an application-defined hook procedure into a hook chain. You would install a hook procedure to monitor the system for certain types of events. These events are associated either with a specific thread or with all threads in the same desktop as the calling thread.
Добавлено через 29 минут
Ну и в догонку - что такое система?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2018, 01:02
Ответы с готовыми решениями:

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель?
Что такое хэндлер файла? Что такое файловый указатель?

8
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
11.02.2018, 19:59
Цитата Сообщение от AndrSlav Посмотреть сообщение
Интересует в плане возможности функции SetWindowsHookEx общаться с другими процессами
сложно понять что нужно, когда идёт беспорядочный набор слов...
функция SetWindowsHookEx общается с другими процессами по средствам передаче ей идентификатора процесса (прототип хоть посмотрите на msdn)
C++
1
2
3
4
5
6
HHOOK WINAPI SetWindowsHookEx(
  _In_ int       idHook,
  _In_ HOOKPROC  lpfn,
  _In_ HINSTANCE hMod,
  _In_ DWORD     dwThreadId
);
последний параметр имеет аннотацию _In_ которая говорит о том, что в функцию нужно передать идентификатор процесса.

Цитата Сообщение от AndrSlav Посмотреть сообщение
Ну и в догонку - что такое система?
без понятий о какой системе идёт речь...
0
71 / 59 / 14
Регистрация: 20.12.2013
Сообщений: 732
11.02.2018, 20:12  [ТС]
Цитата Сообщение от _lunar_ Посмотреть сообщение
нужно передать идентификатор процесса
Судя по приведенной мной цитате как раз из msdn, передать не нужно, а можно, и идентификатор потока, а не процесса. А вопрос по словам из цитаты "desktop" и "system".
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
11.02.2018, 20:22
Цитата Сообщение от AndrSlav Посмотреть сообщение
Судя по приведенной мной цитате
по приведенной вами цитате ни слова нет о можно или нужно.

Цитата Сообщение от AndrSlav Посмотреть сообщение
передать не нужно, а можно
в таких случаях ставится аннотация _In_opt_

Не по теме:

Цитата Сообщение от AndrSlav Посмотреть сообщение
и идентификатор потока, а не процесса
ошибся, бывает.



For desktop apps, if this parameter is zero, the hook procedure is associated with all existing threads running in the same desktop as the calling thread.
а вот в этой цитате как раз и говорится о случаях, когда идентификатор потока будет равен нулю.

Цитата Сообщение от AndrSlav Посмотреть сообщение
А вопрос по словам из цитаты "desktop" и "system".
desktop - рабочий стол (в контексте подразумевается Win32 приложения, а не магазинные из store).
system - наверное операционная система.
0
71 / 59 / 14
Регистрация: 20.12.2013
Сообщений: 732
11.02.2018, 20:34  [ТС]
Цитата Сообщение от _lunar_ Посмотреть сообщение
по приведенной вами цитате ни слова нет о можно или нужно.
Ну да, далее в msdn
dwThreadId [in]

Type: DWORD

The identifier of the thread with which the hook procedure is to be associated. For desktop apps, if this parameter is zero, the hook procedure is associated with all existing threads running in the same desktop as the calling thread. For Windows Store apps, see the Remarks section.
Цитата Сообщение от _lunar_ Посмотреть сообщение
desktop - рабочий стол
Вот как раз здесь хотелось бы поподробнее понять. Вот есть у меня программы-процессы на PC, а какие потоки не будут реагировать на событие, если применю ловушку с последним параметром равным нулю?
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
11.02.2018, 20:44
Цитата Сообщение от AndrSlav Посмотреть сообщение
а какие потоки не будут реагировать на событие, если применю ловушку с последним параметром равным нулю?
наоборот. Если 0, то hook связан со всеми существующими потоками, запущенными на рабочем столе, что и вызывающей SetWindowsHookEx поток.

запущена у вас игра, нужно что-то в ней перехватить, значит указывайте идентификатор главного потока этой игры.
в противном случае SetWindowsHookEx будет собирать инфу о всех запущенных потоках.
0
71 / 59 / 14
Регистрация: 20.12.2013
Сообщений: 732
11.02.2018, 20:53  [ТС]
Цитата Сообщение от _lunar_ Посмотреть сообщение
будет собирать инфу о всех запущенных потоках
Так о всех запущенных потоках РАБОЧЕГО СТОЛА. Вот как раз хочу понять какие потоки относятся к конкретному рабочему столу.
Нашел ссылку, пока пытаюсь осознать написанное
https://msdn.microsoft.com/en-... s.85).aspx
0
232 / 135 / 19
Регистрация: 10.11.2015
Сообщений: 305
14.02.2018, 18:35
AndrSlav, Desktop - это некая сущность имеющая логическую поверхность дисплея и содержащая окна, меню, хуки и т.д. Суть в том, что не нужно устанавливать разрешения доступа для каждого объекта (окна, меню и т.д.), за место этого устанавливаются разрешения на весь десктоп. Каждый поток связан с определенным десктопом, но, при желании, может переключится на другой. Один из десктопов является активным (тот который видимый для пользователя и принимает ввод).

Цитата Сообщение от AndrSlav Посмотреть сообщение
Вот как раз хочу понять какие потоки относятся к конкретному рабочему столу.
GetThreadDesktop + GetUserObjectInformation (с индексом UOI_NAME).
2
2 / 2 / 2
Регистрация: 05.01.2018
Сообщений: 125
14.02.2018, 20:42
Система (операционная система) по простому - куча программ, которые взаимодействуют между собой, загружают при запуске компьютера какой-то интерфейс (типа кучу ярлыков и меню), который помогает взаимодействовать Вам с компом и помогают запускать другие программы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.02.2018, 20:42
Помогаю со студенческими работами здесь

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них пожалуйста.

Что такое IIS и что такое PWS? Почему одно без другого не работает?
вот уже второй день пытаюсь немного разобраться в АСП. накидал небольшую тестовую страничку. но с серверами я ничего не понимаю! что...

Что такое напряжение и что такое сила тока с позиции заряженных частиц
Объясните пожалуйста, что такое напряжение и что такое сила тока с позиции заряженных частиц. Например, имеется проводник в цепи, чем...

Что такое монитор и что такое мьютекс? Это же разные вещи?
Здравствуйте. В разных айти-статьях по-разному используют эти термины, причём часто их путают друг с другом. Хотелось бы, чтобы кто-нибудь...

Что такое токен? Что такое сессия? Отличия от куки
Что такое токен и сессии ? в чем отличия от куков ? Безопасно ли использовать куки? можно ли ручками в браузере изменить содержимое...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru