hoi,
sorry ich hab absolut keine ahnung von
asm
Ich weis nich wie es mit dem Registry verhalten von windows ist aber wenn mit die Dacl's mit dateien verwendest musst du aufpassen ob du in einer domain bist oder nicht ... das is alles ein wenig undurchsichtig bzw ungeschickt.
wenn du es so garnich hinbekommst mach es doch auf die, zugegeben unschoene, art dass du einfach versuchst etwas zu aendern, sollte das nicht klappen wirds wohl an den zugriffsrechten liegen. wenns klappt dann machste es wieder rueckgaenig.
ich hab z.b. ueber die Dacl's versucht rauszufinden ob ich schreibrechte auf ne datei hab. kannste total erden. Ich hab keinen besseren weg als umbennen und bei bedarf wieder zurueck umbennen gefunden.
cYa
[edit]
probier mal Software anstatt SOFTWARE
[/edit]
[edit2]
ich mach das in C so: ( wie gesagt is mit dateien, is aber eigentlich gleich)
Code:
DWORD dwSizeNeeded=0;
AnsiString filePath=Edit1->Text;
BYTE* pSecDescriptorBuf;
pSecDescriptorBuf = new BYTE[1];
bool bSuccess = GetFileSecurity((filePath.c_str()),DACL_SECURITY_INFORMATION,pSecDescriptorBuf,1,&dwSizeNeeded);
delete pSecDescriptorBuf;
pSecDescriptorBuf = new BYTE[dwSizeNeeded];
bSuccess = GetFileSecurity((const_cast<char*>filePath.c_str()),DACL_SECURITY_INFORMATION,pSecDescriptorBuf,dwSizeNeeded,&dwSizeNeeded);
also erstmal anfragen und schauen wie gross der buffer sein muss und dann nochmal mit der richtigen groesse. vielleciht liegts bei dir da auch dran?