Проблемы с аппаратным доступом .NET, когда вы не вошли в систему как администратор - PullRequest
4 голосов
/ 01 февраля 2011

Мне пришлось интегрировать нативную библиотеку, которая взаимодействует с веб-камерой, в приложение .NET. Поэтому я написал библиотеку-обертку с вызовами PInvoke и связал ее с основной программой:

driver.dll (c ++) + driver.wrapper.dll (.net 3.5) + Приложение (.net 3.5)

Проблема в том, что это работает только при входе в систему как локальный администратор (как ни странно, он даже не работает при запуске с правами администратора). Я не получаю никаких конкретных сообщений об ошибках, библиотека драйверов просто возвращает 0 вместо 1.

Когда нативная библиотека напрямую связана с приложением, однако

driver.dll (c ++) + Приложение (c ++)

хорошо работает как администратор и как пользователь. Операционная система Windows 7. В чем может быть причина такого поведения и как я могу решить эту проблему?

Редактировать: проблема была вызвана используемой библиотекой. Решено сейчас.

Ответы [ 2 ]

3 голосов
/ 01 февраля 2011

Одним из решений может быть редактирование app.manifest

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">

        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
</security>
  </trustInfo>

Это всегда будет запускать ваше приложение от имени администратора.

1 голос
/ 01 сентября 2011

Проблема была вызвана используемой библиотекой и больше не актуальна.

...