Error Access to system registry denied al compilar en Visual Foxpro 9

Posted on marzo 14, 2012

0



Este mensaje puede aparecer al final de la compilación, y no se genera el .EXE completo.

Aparece también un wait window en la pantalla con el proceso: Creating Type Library and Registring COM Component

Para solucionarlo, se puede:

– Desactivar UAC de windows, o bien

– Ejecutar VFP en modo administrador, pulsando botón de la derecha sobre el icono de VFP, y seleccionando la opción “Ejecutar como Administrador”

Esta solución la obtuve de http://social.msdn.microsoft.com/Forums/en/visualfoxprogeneral/thread/375a5a4f-e3da-483d-af2f-a2a3c0963d36, de la respuesta del Sr. Olaf:

You will only have this emssage if:

1. You run on Vista or higher OS

2. User Account Control (UAC) is on

3. You don’t run VFP as admin via rightclick->Run As Administrator

4. You have some OLEPUBLIC class in your project.

First of,all, this message doesn’t matter. An EXE or DLL is built with the BUILD button of the project manager. All that’s NOT done is the olepublic classes of the project are not automatically registered with the compilation as is usually done by VFP.

It doesn’t matter because you can register the EXE Or DLL in a seperate step after compilation/build anyway, like you need to do on other target computers than the development computer anyway later.

So actually there is nothing to do and worry about really. If you’re unfamiliar with OLEPUBLIC then take a look into your project, open it in VFP, then open the project info (the menu item has the hotkey CTRL+J for that) In the third Server tab of that project info dialog you find the OLEPUBLIC classes you create by compiling your project. If none of thoes are by yourself, you have have inherited those OLEPUBLIC classes from FFC classes or third party components. FFC clases are involved for example, if you generate your application of forms with the wizards. From the top of my mind I can’t tell any class that would be OLEPUBLIC by default, but you’ll see in project info anyway.

If that really worreis you the easiest thing to do is to start vfp via right click and the item “Run As Administrator”. This is needed, even if you are logged in as a user of the administration group or even if logged in as “Administrator”. This is because since Vista MS has decided to not start new processes (eg VFP9.EXE) with the priviliges of the logged in user, but with “normal” priviliges. So even if you run Windows as admin, the programs you start don’t have admin rights. This way VFP can’t write to the part of the registry needed to register OLEPUBLIC classes, and that’s the whole story behind this message.

The second best thing you can do is to turn off UAC, but that lowers security massively. Every single of the hundresds of processes and threads you start if you simply start Windows then run with admin rights and that has opend many doors for virus programmers in the past.

Posted in: Foxpro