Chave irrestrita regedit
Olá pessoal , alguém sabe se existe alguma chave no regedit que seja de acesso público, ou seja, pra qualquer usuário ?
Eu gravo algumas informações no registro do windows e quando um usuário comum ( não administrador) vai usar o sistema dá erro pois o usuário não é o proprietário da chave.
Mas se for usuário administrador, não dá problemas.
Obrigado.
Eu gravo algumas informações no registro do windows e quando um usuário comum ( não administrador) vai usar o sistema dá erro pois o usuário não é o proprietário da chave.
Mas se for usuário administrador, não dá problemas.
Obrigado.
Craudio
Curtidas 0
Melhor post
Craudio
16/07/2008
Olá, fui testar e parece estar faltando algumas costantes .
Isso funciona para D6 ?
[Error] UanPatchProtecao.pas(46): Undeclared identifier: ´SECURITY_WORLD_SID_AUTHORITY´
[Warning] UanPatchProtecao.pas(47): Constant 0 converted to NIL
[Error] UanPatchProtecao.pas(53): Undeclared identifier: ´SECURITY_WORLD_RID´
[Error] UanPatchProtecao.pas(55): Undeclared identifier: ´TAccess_Allowed_ACE´
[Error] UanPatchProtecao.pas(59): Undeclared identifier: ´ACL_REVISION´
Abraco.
Isso funciona para D6 ?
[Error] UanPatchProtecao.pas(46): Undeclared identifier: ´SECURITY_WORLD_SID_AUTHORITY´
[Warning] UanPatchProtecao.pas(47): Constant 0 converted to NIL
[Error] UanPatchProtecao.pas(53): Undeclared identifier: ´SECURITY_WORLD_RID´
[Error] UanPatchProtecao.pas(55): Undeclared identifier: ´TAccess_Allowed_ACE´
[Error] UanPatchProtecao.pas(59): Undeclared identifier: ´ACL_REVISION´
Abraco.
GOSTEI 1
Mais Respostas
Comodelphi
15/07/2008
cara, depois de muitos testes, acabei deixando em LOCAL_MACHINE, sendo que no processo de instalação (feita como admin), a chave do registro é permitida a ´Todos´ os usuários, se for isso que ta precisando, posso postar aqui a rotina. que eu peguei aqui no forum e modifiquei.
abcs.
abcs.
GOSTEI 0
Craudio
15/07/2008
Opa, se você puder postar o exemplo fico agradecido.
Obrigado
Obrigado
GOSTEI 0
Comodelphi
15/07/2008
function SetRegistryPerm : Boolean; var eia: TSIDIdentifierAuthority; pEveryoneSID : PSID; sd: Windows.TSecurityDescriptor; pDacl: PACL; dwAclSize: DWORD; aHKey: HKEY; lRetCode: LongInt; begin eia.Value[0] := 0; eia.Value[1] := 0; eia.Value[2] := 0; eia.Value[3] := 0; eia.Value[4] := 0; eia.Value[5] := SECURITY_WORLD_SID_AUTHORITY; pEveryoneSID := 0; pDacl := nil; lRetCode := RegOpenKeyEx(HKEY_LOCAL_MACHINE, ´SOFTWARE\xxxxx\´, 0, WRITE_DAC, aHKey); AllocateAndInitializeSID(eia, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 0, pEveryoneSid); dwAclSize := sizeof(TACL) + 2 * ( sizeof(TAccess_Allowed_ACE) - sizeof(DWORD) ) + GetLengthSid(pEveryoneSid); pDacl := PACL(HeapAlloc(GetProcessHeap(), 0, dwAclSize)); InitializeAcl(pDacl^, dwAclSize,ACL_REVISION); AddAccessAllowedAce(pDacl^, ACL_REVISION, KEY_ALL_ACCESS, pEveryoneSid); InitializeSecurityDescriptor(@sd, SECURITY_DESCRIPTOR_REVISION); SetSecurityDescriptorDacl(@sd, TRUE, pDacl, FALSE); lRetCode := RegSetKeySecurity(aHKey, SECURITY_INFORMATION(DACL_SECURITY_INFORMATION), @sd); if (lRetCode <> ERROR_SUCCESS) then ShowMessage(´Falha ao atribuir permissão a chave de registro!´) else ShowMessage(´Permissão a chave de registro concluida com exito!´); end;
uso essa função em um pequeno patch, que deve ser rodado como administrador...
os tipos usados estão na unit windows, system.
GOSTEI 0
Craudio
15/07/2008
Valeu amigão.
Vou testar e lhe mantenho informado.
Abraco
Vou testar e lhe mantenho informado.
Abraco
GOSTEI 0
Craudio
15/07/2008
Opa, achei o tópico que você falou.
http://forum.devmedia.com.br/viewtopic.php?t=94480&highlight=regedit
Obrigado pela ajuda !
Abraco
http://forum.devmedia.com.br/viewtopic.php?t=94480&highlight=regedit
Obrigado pela ajuda !
Abraco
GOSTEI 0
Jorgeneves338
15/07/2008
Olá, fui testar e parece estar faltando algumas costantes .
Isso funciona para D6 ?
[Error] UanPatchProtecao.pas(46): Undeclared identifier: ´SECURITY_WORLD_SID_AUTHORITY´
[Warning] UanPatchProtecao.pas(47): Constant 0 converted to NIL
[Error] UanPatchProtecao.pas(53): Undeclared identifier: ´SECURITY_WORLD_RID´
[Error] UanPatchProtecao.pas(55): Undeclared identifier: ´TAccess_Allowed_ACE´
[Error] UanPatchProtecao.pas(59): Undeclared identifier: ´ACL_REVISION´
Abraco.
Isso funciona para D6 ?
[Error] UanPatchProtecao.pas(46): Undeclared identifier: ´SECURITY_WORLD_SID_AUTHORITY´
[Warning] UanPatchProtecao.pas(47): Constant 0 converted to NIL
[Error] UanPatchProtecao.pas(53): Undeclared identifier: ´SECURITY_WORLD_RID´
[Error] UanPatchProtecao.pas(55): Undeclared identifier: ´TAccess_Allowed_ACE´
[Error] UanPatchProtecao.pas(59): Undeclared identifier: ´ACL_REVISION´
Abraco.
Boa Tarde,
você consegui sair deste erros sou iniciante e não estou conseguindo concluir o codigo.
GOSTEI 0