Запись в файл журнала из ActiveX - PullRequest
2 голосов
/ 25 октября 2011

Я работаю над ActiveX, который может работать в Windows7 при включенном UAC.

Чтобы обеспечить возможность поддержки клиентов, когда у них возникают проблемы с работой с ActiveX, сегодня яЯ пишу в файл журнала, открытый и управляемый моим кодом.Проблема в том, что когда UAC включен, у меня нет разрешения на создание / изменение файлов.

  1. Есть ли место, куда я могу записать, когда UAC включен (уже пробовал% temp% и% appdata%, но ни один не работал).
  2. Есть ли какой-либо Windows API, который я могу использовать для создания / записи в файлы журналов, проходящих через UAC? ​​
  3. Любые другие идеи?

Большое спасибо.

Ответы [ 2 ]

3 голосов
/ 25 октября 2011

Вы можете использовать SHGetKnownFolderPath , чтобы получить путь для FOLDERID_LocalAppDataLow (обычно это C: \ Users \ Your User \ AppData \ LocalLow), который вы затем можете записать в

.проблема с этим API заключается в том, что он недоступен в Windows XP;поэтому, если вы работаете в XP, вам нужно использовать другой API, который просто выдаст вам папку Local Settings \ Application Data;но вы можете использовать только один или другой API, в зависимости от того, как задана ваша версия Windows.Обходной путь - вручную загрузить библиотеку shell32.dll и выполнить поиск точки входа, а затем вернуться к версии xp, если она не работает.Это то, что я сделал для FireBreath (который я использую для своих плагинов для браузера activex). Пример кода здесь .

Для получения дополнительной информации см. Поиск мест для записи с низкой целостностью

Надеюсь, это поможет

3 голосов
/ 25 октября 2011

try %temp%\low

Windows иногда перенаправляет журналы в эту папку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...