Как использовать SetWindowsHookEx в Vista и подключить приложения администратора к UAC?
Я пытаюсь выяснить, есть ли способ использовать SetWindowsHookEx и иметь возможность влиять на приложения, которые запускаются с правами администратора в Vista, с включенным UAC. Это приложение, которое должно будет добавить небольшую кнопку на панель заголовков других окон, чтобы включить некоторую обработку с поддержкой нескольких мониторов. Я бы подумал, что это невозможно, но я видел одно приложение, которое, кажется, делает это. Насколько я могу судить, эти другие приложения не запускаются с правами администратора, но могут влиять на все приложения в системе, включая приложения с правами администратора.
Казалось бы, есть способ сделать это, но я не знаю, как это сделать. Мое приложение должно только иметь возможность рисовать на заголовках окон и иметь возможность влиять на их движение и размер. Мне не нужно больше ничего делать.
1 ответ
Вы не можете этого сделать, поскольку административные процессы изолированы от неадминистративных процессов, работающих на одном рабочем столе пользователя. Вы даже не можете перетаскивать между процессами администратора и не-администратора.
Это углубленный анализ: http://technet.microsoft.com/en-us/magazine/2007.06.uac.aspx
Что касается приложения, на которое вы ссылаетесь, оно, вероятно, использует некоторый административный код, работающий в фоновом режиме (обычно в качестве службы), чтобы оно могло взаимодействовать с административными процессами.