Учитывая соответствующий манифест, который устанавливает uiAccess = "true", если программа win32 (которая отлично работает на других системах Windows7) сможет получить верный дескриптор из SetWindowsHookEx при работе на Windows7 (32 бит) на Mac Mini с помощью Parallels?Должен ли SetWindowsHookEx работать в Windows 7 на Mac Mini (parallels)
Это линия Delphi кода xe4, который вызывает API
HookHandle := SetWindowsHookEx(WH_JOURNALPLAYBACK, @Playback, hInstance, 0);
Я получаю «доступ запрещен», как возвращается ошибка системы в HookHandle.
Я пробовал много вариантов синтаксиса моего манифеста и серьезно задаюсь вопросом, является ли это лишь некоторым ограничением среды Mac Mini/Parallels. Пользователь, вызывающий программу, является администратором. UAC включен. Я попробовал «Запуск от имени администратора»; нет разницы.
Ниже приведен файл манифеста.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="FFHotKeys" version="1.1.0.0 processorArchitecture="*"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="true"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</assembly>
Я попытался stting уровень для каждого из этих
level="asInvoker"
level="requireAdministrator"
level="highestAvailable"
и не решить «отказано в доступе» проблему.
Примечание: Я в том числе мой манифест через .rc файл, содержащий
1 24 "FFHotKeys.exe.manifest"
, а не с помощью функции пользовательского Manifest в рамках проекта> Параметры. У меня есть «Enable Runtime Themes» и пустой пользовательский манифест. Я пробовал это по-другому, но с немного другим.
Примечание: когда я проверяю ресурсы с помощью XN_Resource_Editor, есть ресурс манифеста XP, содержащий точно ожидаемый XML. Также есть 2 ресурса VCLSTYLE. Спасибо.
Windows 7 - это Windows 7, поэтому я не понимаю, почему эмулятор должен быть фактором. –
Вы понимаете, что этот крюк является глобальным крюком? Что с этим связано «uiAccess»? –
@DavidHeffernan: Я получил идею uiAccess из http://stackoverflow.com/questions/9165666/setwindowshookex-for-wh-journalrecord-fails-under-vista-windows-7 и http: //www.autohotkey.com/board/topic/46502-sendplay-and-windows-7-doesnt-work-together/где говорится: «Чтобы установить крючок журнала, приложение должно быть подписано, проявлено для uiAccess и запущено из безопасного места (обычно Program Files). " Я переместил exe в c: \ Program Files \, и я подписал его под кодовым названием. – user424855