Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 263
Благодарности: 52

Профиль | Отправить PM | Цитировать


Есть другой способ, который работает без правки реестра. Случайно нашёл статью HOW TO: Script Compatibility Layers in Windows XP и там обнаружил, что можно выставить готовый слой совместимости, используя специальную переменную __COMPAT_LAYER. Проверил на Windows 7, присвоив переменной значение RUNASINVOKER, - также работает.

Вот пример bat файла для запуска программы с включенным исправлением RUNASINVOKER
Код: Выделить весь код
set __COMPAT_LAYER=RUNASINVOKER
start "" myprogram.exe
Также переправил свой первый вариант контекстного меню Force Run As Invoker (UAC) с использованием переменной, вместо правки реестра.
Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]
@="Force Run As Invoker (UAC)"

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]
@="cmd /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""

-------
Microsoft Windows - Because you have no choice ;-)

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:08, 16-01-2011 | #21