Vista/7 UAC i manifest

0

Cześć, mam następujący problem. Utworzyłem usługę. Usługa została wyposażona w plik manifestu, tzn. utworzyłem plik manifestu, zrobiłem z tego zasób i włączyłem do execa. Wszystko poszło ok, bo podglądając execa w hex edytorze widzę na końcu pliku mój manifest.

Teraz tak. Jest druga aplikacja - updater. Scenariusz jest taki: usługa uruchamia updater, updater zatrzymuje usługę i dokonuje aktualizacji systemu. Na XP wszystko działa, na Viście i 7 tylko wtedy, gdy mechanizm UAC jest wyłączony pomimo pliku manifestu.

Po prostu Updater(też wyposażony a analogiczny manifest) nie jest uruchamiany. Może jakoś trzeba inaczej ten plik napisać, może trzeba zrobić coś jeszcze. Nie wiem. Ktoś może w tym pomóc? Mój plik manifestu wygląda następująco:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0"
   name="BioRCPService"
   type="win32"/>
  <description>Usługa systemu BioRCP</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
  <security>
   <requestedPrivileges>
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
   </requestedPrivileges>
  </security>
  </trustInfo>
 </assembly>
0

a używasz CreateProcess? Może spróbuj ShellExecuteEx

0

Używam CreateProcess, ponieważ muszę updatera uruchamiać z uprawnieniami administratora(w necie można znaleźć kod RunAsAdmin).

0

Tego manifestu nie zastosujesz w Windows7. Możesz sobie to sprawdzić na bezpośrednim pliku EXE uruchamianym pod UAC.

Otrzymasz coś w stylu

Nie można uruchomić aplikacji ponieważ jej konfiguracja równoczesna jest niewłaściwa. [...]

1 użytkowników online, w tym zalogowanych: 0, gości: 1