Q&A

  • 파일찾기, 레지스트리 생성하기...
아래 소스는 사실 잘 되는 소스입니다.  A회사에서는요...사양: win98 SE


근데 B회사에서 개발을 하는데.... 아래소스가 안됩니다. 사양: win98 SE

레지스트리 생성도 안되고... 몇일째 이러고 있습니다.
레지스트리 생성 안되는 거야 다른방법을 찾으면 되고요...
fh2 := 0;
fh2 := FileCreate('C:Program FilesJoeuncomTestTest.exe');
//fh2에는 파일이 있으면 양수, 없으면 음수(-1)이 들어간다.
이 부분  여기서는 정말 화가 납니다. 왜  음수만 나올까요?


=================소스갑니다=============================================

procedure TFmDown.BitBtn1Click(Sender: TObject);
var //변수 생략.. 보시기에 불편할까봐..
begin  
  fh1 := 0;
  //회사 서버 경로
  fh1 := FileOpen('V:BoardJOEUNCOMProgramTest.exe', fmOpenRead);
  
  //fh1에는 파일이 있으면 정수가, 없으면 -1이 들어간다.
  if fh1 <> -1 then begin
     fh2 := 0;
     fh2 := FileCreate('C:Program FilesJoeuncomTestTest.exe');
     //fh2에는 파일이 있으면 양수, 없으면 음수(-1)이 들어간다.
    
    ====> 여기 위에서 저경로에 실제 exe파일이 있는데 음수만 나옵니다.
  
     if fh2 <> -1 then begin
        //File DownLoad====여기부터======
        icount := FileRead(fh1,buffer, sizeof(buffer));  
        while icount <> 0 do begin
           Application.ProcessMessages;  
           fileWrite(fh2, buffer, icount);
           icount := FileRead(fh1, buffer,Sizeof(buffer));
        end;
        //File DownLoad====여기까지======        

        //Registry생성
        Reg:= TRegistry.Create;
        try
         //Rook지정
         Reg.RootKey := HKEY_CURRENT_USER;          
         Reg.CreateKey('SOFTWARETest');          
         Reg.OpenKey('softwareTest', false);          
         Reg.WriteString('Testprog',server_date);          
         Reg.CloseKey;
        Finally
         Reg.Free;
        end;
        //showmessage('파일복사 완료');
     end else
     begin
       //showmessage('복사대상이 없네요');
     end;
     FileClose(fh2);
     FileClose(fh1);
  end else
  begin
    //showmessage('서버에 프로그램이 없네요');
  end;  
  //Traffic용 프로그램 실행
  Winexec('C:Program FilesJoeuncomTestTest.exe',SW_SHOWNORMAL);
  //다운로드 프로그램 종료
  FmDown.Close;
end;

무엇이 잘 못 된 것일까요?
2  COMMENTS
  • Profile
    박상기 2003.09.01 23:42


    Const
      fn : string = 'C:Program FilesJoeuncomTestTest.exe';
    procedure TFmDown.BitBtn1Click(Sender: TObject);
    begin
      if FileExists(fn) then //화일이 존재할 경우
      {//File DownLoad====여기부터====== }
      else //화일이 없을 경우
      {............................}

    위와 같이 하시는게 어떨지?  
  • Profile
    한원희 2003.09.01 23:15
    안녕하세요. 한원희입니다.

    실제로 Test.exe라는 파일이 있어서 FileCreate에서 생성이 안되는 것이니까,
    먼저 파일을 삭제하거나 백업을 한 후에, FileCreate를 호출하시던지, 아니면 FileOpen시 읽고/쓰기 모드로 여신 후에, 덮어 쓰면 되지 않을까 싶네요.

    그럼, 즐푸~