CRIAR CHAVE NO REGISTRO PARA UM USUARIO ESPECIFICO

USUARIO.EXCLUIDOS 19/12/2006 11:03:50
#190834
Amigos,

Estou precisando criar uma entrada no registro do windows dentro da chave HKEY_Users do usuário logado na máquina.
Estou criando um drive ODBC via código para o SQL Server, mas preciso que seja uma fonte de dados do usuário e não do sistema.
Vi no registro e percebi que as entradas de cada usuário começa com S-1-5.... mas não sei como identificar, via código, qual a entrada do usuário logado.
Será que tem como fazer isso???

Att,
Carlos FRança
USUARIO.EXCLUIDOS 19/12/2006 14:51:32
#190930
Só estou conseguindo criar como fonte de dados do sistema, mas preciso que seja do usuário
USUARIO.EXCLUIDOS 20/12/2006 17:35:20
#191280
Será que não tem como resolver isso???
USUARIO.EXCLUIDOS 20/12/2006 19:46:49
#191301
Se for para o usuário atual você poderia criar a chave na HKEY_CURRENT_USER.

CARINHENA 20/12/2006 20:12:35
#191304
Primeiro vc tem que saber qual usuário que esta logado.
Depois basta procurar pela net e saber como funciona a chave HKEY_CURRENT_USER que é a chave referente ao usuário que esta logado...
Só que vc vai ter que criar chaves dentro dela...

USUARIO.EXCLUIDOS 21/12/2006 08:28:06
#191359
Carinha,
Acho que você pode pegar o usuario logado e depois gravar no registro as configurações do odbc dele (ConfOdbc no caso do exemplo). Não importa onde isto se localizará no registro ja que podemos acessar sem ter que saber onde está no registro.

'Declarar isso antes
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long

'Função que pega o usuario logado
Public Function Pega_Nome() as String
Dim sBuffer As String
Dim lSize As Long

sBuffer = Space$(255)
lSize = Len(sBuffer)
Call GetUserName(sBuffer, lSize)
If lSize > 0 Then
Pega_Nome = Left$(sBuffer, lSize)
Else
Pega_Nome = vbNullString
End If
End Function


'Gravar no Registro
'SaveSetting appname, section, key, setting
SaveSetting "PGTeste", "ODBC", Pega_Nome, "ConfOdbc"

'Ler do Registro
'GetSetting(appname, section, key[, default])
ConfOdbc.Text = GetSetting("PGTeste", "ODBC", Pega_Nome, "")

Acho que com isso você deve conseguir.
Abraços.

USUARIO.EXCLUIDOS 21/12/2006 10:17:24
#191412
Spawn e Carinhena,

Eu criei as entradas na chave HKEY_CURRENT_USER,
mas o Administrador de fonte de dados ODBC do windows não a reconheceu. Quando faço sob a chave HKEY_LOCAL_MACHINE o Administrador reconhece, mas não atende o que preciso.

Rocamo,
Valeu pela ajuda, a tentativa de buscar o usuário logado eu já tentei mas se observar no registro sob a chave HKEY_USERS que é onde eu preciso criar as entradas para o drive que estou criando faz a referência aos usuários, inclusive o que está logado, não pelo nome mas por um conjunto de caracteres, por exemplo "S-1-5-21-823518204-1580818891-839522115-1303", e é essa identificação que eu precisaria conseguir, pois fiz a inclusão das entradas informando manualmente essa identificação e funciona numa boa, com o Administrador de fontes de dados ODBC do windows reconhecendo essa fonte que estou incluindo para o usuário como apenas dele.

Tópico encerrado , respostas não são mais permitidas