Я пытаюсь выяснить, как решить проблему получения привилегий.
Приложению требуется доступ к рабочему столу, поэтому оно не может быть выполнено как служба Windows: оно должно создать окно для получения отправленного сообщения.другими процессами, использующими SendMessage (он должен использоваться для ожидания подтверждения сообщения).
Приложение должно запускаться при входе пользователя в систему и управлять сеансом пользователя (управлять приложениями, окнами ...).Одновременно можно управлять только одним пользователем.
То, что я спрашиваю, - это лучшее решение для запроса получения привилегий, поскольку это требуется приложению (выполните процесс, который вызывает SetWindowsHook).
- Как можно запустить любой процесс при входе пользователя в систему с (более высокими) привилегиями, возможно, без запроса сообщений UAC?Операции настройки могут быть выполнены на этапе установки ...
- Как можно запустить сервисную службу, запускающую процесс при входе пользователя в систему?Таким образом (установленная) служба может запустить эффективный процесс с любыми привилегиями ...
- Любое другое решение?*
Какие конкретные действия необходимо предпринять для получения полностью совместимого приложения UAC?(Я имею в виду на этапах сборки и развертывания?
Например, я включаю следующий файл манифеста, используя mt.exe (используя VS2005):
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft- com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
security>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
</applicationRequestMinimum>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
Вам это кажется правильным?Нет, потому что это не работает для меня ...
*
На самом деле имеет смысл создать дополнительную учетную запись пользователя (но это также будет работать в доменах Windows) с правами администратора длявыполнить контролируемую среду. Также было бы приемлемо создать рабочий сеанс (новую настольную станцию) без регистрации какого-либо пользователя, но на самом деле я не знаю, возможно ли это.