Q&A

  • interbase 레지스트리키를 완전히 삭제하려면...?
안녕하세요...
델파이 7, Win 2000pro, 로컬 DB로 interbase6.0오픈 소스 버전을 사용중인 초보 프로그래머입니다.
C/S프로그램을 개발중인데요...문제점이 나타나서 질문드립니다.
로컬에 미리 interbase가 설치되어있는지 검사하고 설치되어있으면 프로그램만 설치하고 ,
그렇지 않으면 interbase를 설치하고, 프로그램을 설치하게 만들었습니다.
그래서 레지스트리에 interbase폴더가 존재하는지 유무를 검사하는 로직을 만들었습니다...
그런데 문제는 interbase만 설치된 컴퓨터에서 interbase를 제거를 했는데, 프로그램은 제거되었는데 레지스트리에는 interbase폴더가 존재하는 것입니다.
그러니 프로그램을 설치하니 interbase가 설치된 줄 알고, 프로그램만 설치하는 것입니다.
당연히 interbase는 없으니 실행될리가 없겠죠...^^;
레지스트리에서 interbase폴더를 검사하는게 아니고  키값이 존재하는지로 바꾸어야 될것같은데 어떻게 해야하는지 잘 몰라 질문드립니다...
여러분들의 많은 도움 부탁드립니다.
모두 즐코하시고 행복하세요...
*******************************************************************************************
여기에 제가 했던 소스를 올립니다....
procedure TfmSetUp.btnStartClick(Sender: TObject);
var
  ret: integer;
  regLocalMachine: TRegistry; //레지스트리 클래스
  regCurrentUser: TRegistry;
begin
  regLocalMachine := TRegistry.Create;
  regLocalMachine.RootKey := HKEY_LOCAL_MACHINE;
  regLocalMachine.OpenKey('SOFTWAREBorland', true);

  regCurrentUser := Tregistry.Create;
  regCurrentUser.RootKey := HKEY_CURRENT_USER;
  regCurrentUser.OpenKey('SOFTWAREBorland', true);

  //미리 InterBase가 설치되어있다면
  if (regLocalMachine.KeyExists('InterBase') = True or regCurrentUser.KeyExists('InterBase') = True) then  //==>이부분이 인터베이스 존재 유무를 검사하는 부분입니다................................
    begin
      // testsetup만 실행한다.
      while WinExecAndWait32(PChar(testsetup.exe'), PChar(''), 1) <> 0 do
      Application.ProcessMessages;
      ShowMessage('모든 프로그램의 설치가 완료 되었습니다');
    end
  else
    begin
      ShowMessage('InterBase 설치를 시작합니다. OK를 눌러 설치를 시작하십시오.');

      while WinExecAndWait32(PChar('InterBasesetup.exe'), PChar(''), 1) <> 0 do
      Application.ProcessMessages;
      ShowMessage('다음 단계로 진행하시려면 OK를 눌러 test프로그램을 설치하십시오');

      while WinExecAndWait32(PChar('testsetup.exe'), PChar(''), 1) <> 0 do
      Application.ProcessMessages;
      ShowMessage('모든 프로그램의 설치가 완료 되었습니다');
    end;

    Close;
    Free;
end;
0  COMMENTS
    • ji
    • 2003.01.03 02:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.01.03 03:27
      안녕하세요~ 구창민입니다. 아래처럼 해보세요. procedure TForm1.StringGrid1DrawCell(Sender: TO...
    • 이정은
    • 2003.01.03 01:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.01.03 02:52
      안녕하세요 구창민입니다. DBGrid 를 상속받으셔서 LayoutChanged <- virture 입니다 요넘. 를 ov...
    • 구창민
      2003.01.03 01:49
      NT 계열의 OS 에서 프로그램을 컴파일 해서 만드시구요. 그 Setup 파일을 각 OS 에서 설치해보세요. ...
    • 반프
    • 2003.01.03 01:04
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2003.01.03 01:34
      formatfloat('#,##0',strtofloat('1000000')) 하시면 됩니다
    • 도니
      2003.01.03 01:34
      문자열 "12,548.00"  :=  FormatFloat('#,##0.00', 12548); 자세한 내용은 검색해...
    • JJH
    • 2003.01.03 00:04
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김상수
    • 2003.01.02 23:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 도니
      2003.01.02 23:55
      FormatFloat('00',StrToInt(Is_day) - 1); 검색하면 나오는뎅...ㅎㅎㅎ 검색하면 더 자세히나오니깐 검...
    • 이치영
    • 2003.01.02 23:18
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 나옹이
    • 2003.01.02 21:22
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 미소나눔
      2003.01.02 22:46
      'sdhfjkgl;'lkjhgfd'  -> 'sdhfjkgl;''lkjhgfd' 즐푸~
    • 나옹이
      2003.01.03 02:13
      이게 아니구요.... 프로그램 사용자는 떨렁 일케만 입력 한다는 말입니다. sdhfjkgl;'lkjhgfd ...
    • 성더기
      2003.01.03 03:53
      StringReplace를 사용해 보세요 참고로 ' <- 이넘의 아스키 코드값은 #39입니다 StringReplace(Edit1....
    • 반프
    • 2003.01.02 21:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정성훈
      2003.01.02 22:40
         ShowMessage( IntToStr( Length( StringGrid1.Cells[0,0] ) ) );
    • 가딘
    • 2003.01.02 21:11
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 정성훈
      2003.01.02 22:31
      예전에 비슷한 일이 있어서 적어봅니다. 퀵리포트 버젼을 업글해보세요 그래도 안되면 OS가 98인곳에서 ...
    • 가딘
      2003.01.03 01:07
      이럴수가.... 퀵립에 출력할때 쿼리한 자료가 없으면 좌측상단의 버튼 메뉴의 그림이 잘나타나는데 자료...
    • 정종우
      2003.01.02 22:52
         #01 + 문자열 + #02
    • 홍정기
      2003.01.02 22:02
        if form.MDIChildCount > 0 then   begin   form.ActiveMDIChild....
    • 최은하
    • 2003.01.02 20:37
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.01.03 00:08
      안녕하세요~ 구창민입니다. Indy 데모가 좋은 소스 OR 참고자료라고 생각됩니다. Indy Home : <ht...
    • 최은하
      2003.01.04 00:48
        ㅡ.,ㅡ 아쉽게도 그 사이트에서 제공하는것은 저두 받아서 보왔는데... 저에 지식으로는 힘...
    • 김지엽
      2003.01.06 22:46
      문제가 좀 추상적으로 느껴져서, 답변이 잘 안올라온 것 같네요. 제가 문제를 제대로 추측한 것인지는 ...
    • 김상수
    • 2003.01.02 20:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 미소나눔
      2003.01.02 21:10
          Edit11.Text := FormatDateTime('YY-MM-DD', Now );     Ed...
    • 미소나눔
      2003.01.03 00:37
      함 만들어 봤어여.. procedure TForm1.Button1Click(Sender: TObject); var     ...
    • 정성훈
      2003.01.02 22:53
      // sValue로 구분된 데이타 iCnt번째 만나면 iSel 값이 0 = 전의 데이타, 1 = 전의 모든 데이타. function...
    • 나옹이
    • 2003.01.02 19:45
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 윤종경
      2003.01.02 20:04
      sdhfjkgl;'lkjhgfd 이 문장이 안 들어갈리는 없구요 쿼리 문장을 잘못 작성하신듯 싶네요 ParamByName으...
    • 나옹이
      2003.01.02 20:12
      ADOQuery 이거든요... 여기선 ParamByName 은 없는듯 시픈뎅......? 용?
    • 정성훈
      2003.01.02 23:04
      sdhfjkgl;'lkjhgfd 이 문장이 안 들어갈리는 없구요 중간에 쿼터가 있는데 더블쿼터로 바꿔보세요 " 로. ...
    • 미리내
    • 2003.01.02 03:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정성훈
      2003.01.02 23:13
      상수가 아니라 에러가 나는듯 싶은데 배열을 하실 필요가???? 파람이 strtoint(bun) 으로 들어왓는데 그...
    • 박상윤
      2003.01.08 04:26
      제가 운영하는 사이트가 있습니다. directshow로  멀티미디어를 프로그램하는 사람들을 위한 ...