Q&A

  • 소스 어디가 틀린거죠? 레지스트리 값 삭제 안돼요.
체크박스에 체크되어 있으면 레지스트리에 등록하고, 아니면 삭제 할려고 그러는데

삭제가 안돼요.. 소스 어디가 틀린거지요?



procedure Tdirect.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

var

MyReg:TRegistry;

begin

if CheckBox.Checked then

begin

MyReg:= TRegistry.Create;

MyReg.RootKey := HKEY_LOCAL_MACHINE;

if MyReg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionrun',true) then

MyReg.WriteString('main.exe',Application.ExeName);

MyReg.CloseKey;

MyReg.Free

end

else

begin

MyReg:= TRegistry.Create;

MyReg.RootKey := HKEY_LOCAL_MACHINE;

if MyReg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionrun',true) then

MyReg.DeleteKey('main.exe');

MyReg.CloseKey;

MyReg.Free

end;

end;

2  COMMENTS
  • Profile
    병부잡이 2000.10.05 06:00
    보니깐 값인거 같은데요

    DeleteKey는 키를 지우는 겁니다(레지스트리 열어보면 왼쪽에 폴더로 있는거 있죠

    그게 키고 오른쪽 에 나오는게 값입니다)

    값을 지우실땐 DeleteValue를 사용해야 할겁니다..





    파이걸 wrote:

    > 체크박스에 체크되어 있으면 레지스트리에 등록하고, 아니면 삭제 할려고 그러는데

    > 삭제가 안돼요.. 소스 어디가 틀린거지요?

    >

    > procedure Tdirect.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    > var

    > MyReg:TRegistry;

    > begin

    > if CheckBox.Checked then

    > begin

    > MyReg:= TRegistry.Create;

    > MyReg.RootKey := HKEY_LOCAL_MACHINE;

    > if MyReg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionrun',true) then

    > MyReg.WriteString('main.exe',Application.ExeName);

    > MyReg.CloseKey;

    > MyReg.Free

    > end

    > else

    > begin

    > MyReg:= TRegistry.Create;

    > MyReg.RootKey := HKEY_LOCAL_MACHINE;

    > if MyReg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionrun',true) then

    > MyReg.DeleteKey('main.exe');

    > MyReg.CloseKey;

    > MyReg.Free

    > end;

    > end;

  • Profile
    파이걸 2000.10.05 06:33
    고마워요~~ ^O^

    안그래도 자문자답하러 들어온건데...

    네.. 아직 레지스트리에 대해서 몰랐어요..

    전 그게 키값인줄 알고.. 음.. 맞아여..

    DeleteValue라구 하니깐 삭제되더라구..그 기분 날아갈 것 같십니당..

    대답아무두 안해주셨으면 섭했을텐데..

    전 언제쯤 여기 게시판에 답변을 올릴까요?

    아유~ 앞이 껌껌하당..



    병부잡이 wrote:

    > 보니깐 값인거 같은데요

    > DeleteKey는 키를 지우는 겁니다(레지스트리 열어보면 왼쪽에 폴더로 있는거 있죠

    > 그게 키고 오른쪽 에 나오는게 값입니다)

    > 값을 지우실땐 DeleteValue를 사용해야 할겁니다..

    >

    >

    > 파이걸 wrote:

    > > 체크박스에 체크되어 있으면 레지스트리에 등록하고, 아니면 삭제 할려고 그러는데

    > > 삭제가 안돼요.. 소스 어디가 틀린거지요?

    > >

    > > procedure Tdirect.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    > > var

    > > MyReg:TRegistry;

    > > begin

    > > if CheckBox.Checked then

    > > begin

    > > MyReg:= TRegistry.Create;

    > > MyReg.RootKey := HKEY_LOCAL_MACHINE;

    > > if MyReg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionrun',true) then

    > > MyReg.WriteString('main.exe',Application.ExeName);

    > > MyReg.CloseKey;

    > > MyReg.Free

    > > end

    > > else

    > > begin

    > > MyReg:= TRegistry.Create;

    > > MyReg.RootKey := HKEY_LOCAL_MACHINE;

    > > if MyReg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionrun',true) then

    > > MyReg.DeleteKey('main.exe');

    > > MyReg.CloseKey;

    > > MyReg.Free

    > > end;

    > > end;