Показать сообщение отдельно
Старый 02.06.2016, 10:53    | »»» |  #818
drTr0jan
Пользователь
 
Аватар для drTr0jan
 
Хабаровский аэропорт
Регистрация: 08.11.2013
Сообщений: 135
drTr0jan is on a distinguished road
Отправить сообщение для drTr0jan с помощью ICQ Отправить сообщение для drTr0jan с помощью Skype™
По умолчанию

Igor', я так понял, от вас помощи ждать бессмысленно, придётся всё делать самому.

Устанавливаем процессу автографа уровень привилегий в asInvoker (для этого админские права не нужны) и о чудо, АвтоГРАФ начинает нормально обновляться без всяких окон UAC.
Идём дальше, открываем редактором ресурсов AutoUpdater.exe, смотрим манифест и ох... удивляемся:

собственно манифест
Код:
<?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">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC Manifest Options
            If you want to change the Windows User Account Control level replace the 
            requestedExecutionLevel node with one of the following.
        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
            Specifying requestedExecutionLevel node will disable file and registry virtualization.
            If you want to utilize File and Registry Virtualization for backward 
            compatibility then delete the requestedExecutionLevel node.
        -->
<!--        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />-->
      </requestedPrivileges>
    </security>
  </trustInfo>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!-- If your application is designed to work with Windows Vista, uncomment the following supportedOS node-->
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
      <!-- If your application is designed to work with Windows 7, uncomment the following supportedOS node-->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
      <!-- If your application is designed to work with Windows 8, uncomment the following supportedOS node-->
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>
      <!-- If your application is designed to work with Windows 8.1, uncomment the following supportedOS node-->
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
    </application>
  </compatibility>
  <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
  <!-- <dependency>
    <dependentAssembly>
      <assemblyIdentity
          type="win32"
          name="Microsoft.Windows.Common-Controls"
          version="6.0.0.0"
          processorArchitecture="*"
          publicKeyToken="6595b64144ccf1df"
          language="*"
        />
    </dependentAssembly>
  </dependency>-->
</asmv1:assembly>

А это как так?

Ставим:
Код:
<requestedExecutionLevel  level="asInvoker" uiAccess="false" />
Сохраняем exeшник. Запускаем Автограф, и... он опять обновляется.
Это опять Microsoft виноват? Описал API UAC, которое программистам Технокома стало влом читать?
Ну ё-моё, это же основы программирования под Windows Vista/7/8/10.
Почему пользователи сами должны за вас писать программу?
Шах и мат! Некрасиво как-то получается.

И после этого народ удивляется, как же это для нас АГ5 является убыточным. На решение проблемы ушло достаточно времени, которое можно было потратить на прямое исполнение своих обязанностей.
drTr0jan вне форума   Ответить с цитированием
2 - сказали «Я - ЗА»:
ilya (03.06.2016), sapphire (03.06.2016)