REGISTRO DO WINDOWS - WINDOWS SEVEN

NETOGN 05/08/2010 19:39:18
#349578
Alguem sabe como resolver isto ?

No Windows Seven quando tento acessar o registro do windows ocorre o seguinte erro: Acesso ao Registro solicitado não é permitido.

Se eu executar o programa em modo administrador ele funciona normal..

Segue o código abaixo:
Dim registro As RegistryKey
Dim keyValor As String = [Ô]Software\\SoftSistema\\Caminho\\[Ô]

registro = Registry.LocalMachine.OpenSubKey(keyValor, True)
MsgBox(registro.GetValue([Ô]testeCaminho[Ô]))
PAVILLION 05/08/2010 21:18:36
#349581
NETOGN...

O que acontece no Vista/7 é devido o UAC...Controle de Conta de usuário, que não dá permissão de administrador para o software..
Resolvo esse problema da seguinte forma:

Usando o Microsoft Visual Studio 2010, vou em: Project/Properties/View Windows Settings...E acrescento a seguinte linha no código...

<security>
<requestedPrivileges xmlns=[Ô]urn:schemas-microsoft-com:asm.v3[Ô]>
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.

<requestedExecutionLevel level=[Ô]asInvoker[Ô] uiAccess=[Ô]false[Ô] />
<requestedExecutionLevel level=[Ô]requireAdministrator[Ô] uiAccess=[Ô]false[Ô] />
<requestedExecutionLevel level=[Ô]highestAvailable[Ô] uiAccess=[Ô]false[Ô] />

Specifying requestedExecutionLevel node will disable file and registry virtualization.
If you want to utilize File and Registry Virtualization for backward
compatibility then delete the requestedExecutionLevel node.
-->
<requestedExecutionLevel level=[Ô]requireAdministrator[Ô] uiAccess=[Ô]false[Ô] />
</requestedPrivileges>
</security>

As linhas entre <-- e --> são só comentários....A linha que importa mesmo é a que está em negrito...Edite do jeito que for melhor para você
NETOGN 06/08/2010 11:53:57
#349608
PAVILLION
Uso o vs 2008, e não achei esta opção -> Project/Properties/View Windows Settings

OCELOT
vou mudar aqui para currentuser e testar....


PAVILLION 06/08/2010 23:31:59
#349688
NETOGN....

No Visual Studio 2008 é quase o mesmo caminho...Fica em Project / Properties / View UAC Settings
Só muda o nome mesmo, UAC para Windows...O código que falei no outro post continua valendo...
NETOGN 07/08/2010 13:55:01
#349698
PAVILLION

valeu resolveu meu problema.... so que toda vez que tento acessar o software aparece aquela tela de confirmação para Administrador... tem como não mostrar esta tela?
PAVILLION 07/08/2010 22:05:59
#349711
NETOGN...

Essa realmente não sei, pesquisei um pouco para ver se dava para sumir com aquela mensagem...
Mas não tive nenhum resultado...A única coisa que eu achei interessante, que talvez sirva para você
é que em vez de usar o App.Manifest...Que ao iniciar a aplicação, logo pede a permissão de administrador..
Você colocar no botão que execute a função que requer os previlégios de admin um código que chame
o UAC...Para você entender melhor, dá uma olhada no CodeProject...

Add a UAC shield to a button when elevation is required for admin tasks

Pelo menos dessa forma, o usuário fica sabendo que aquela determinada função requer os privilégios...
Só mais um detalhe, o código do exemplo do CodeProject é em C#, mas é fácil de converter para VB.Net...
Qualquer dúvida, posta ai..
Tópico encerrado , respostas não são mais permitidas