Vous essayez simplement de copier un fichier en utilisant la fonction CopyFile() du répertoire en cours vers C: \ windows \ system32 \ drivers.requestedExecutionLevel dans le fichier manifeste et l'échec de la fonction CopyFile()
J'ai écrit aussi manifestement avec "requestedExecutionLevel level =" highestAvailable "" et j'ai exécuté mt pour l'ajouter à l'exécutable résultant.
Lorsque j'essaie de l'exécuter, la boîte de dialogue Windows 7 UAC ressort, j'appuie sur "Oui", mais CopyFile() renvoie l'erreur "Accès refusé". Qu'est-ce qui ne va pas? Que dois-je vérifier?
Mon fichier manifeste:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3">
<v3:security>
<v3:requestedPrivileges>
<v3:requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</v3:requestedPrivileges>
</v3:security>
</v3:trustInfo>
</assembly>
Mon morceau de code C:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
if (CopyFile ("aaa.sys", "C:\\windows\\system32\\drivers", FALSE)==FALSE)
ErrorExit ("CopyFile");
Etes-vous en train d'essayer d'écraser un fichier MS appartenant à TrustedInstaller? Ou quelque chose qui est utilisé? – Anders
Non, j'écris un fichier qui n'existe pas auparavant –
Puisque vous dites que vous voyez la boîte de dialogue UAC, les réponses indiquant si votre manifeste est correct ou incorrectement attaché sont mal orientées. Vous élevez. –