Q&A

  • 델파이에서 실행파일을 호출 후 자동실행하고 난 다음 자동종료하기..
안녕하세요~~

c:cmsccc.exe 파일이 있는데 이 실행파일은

FTP로 text 파일을 서버로 올리는 프로그램입니다.

탐색기에서 ccc.exe 를 더블클릭하면 text 파일을 FTP 서버에

올립니다..

(실행되면 윈도우 작업줄에 나타났다가 ftp 서버로 text파일이 다 올라가면

윈도우 작업줄에서 자동 종료됨..)

이 실행 프로그램을 delphi로 호출하여 실행하려 하니 잘 안돼네요!!

처음에는 winexec 함수를 사용했는데 이함수는 프로그램을 호출은 했는데

text 파일이 올라 가지가 않더라구요..

그래서 고민 고민 하다가 아래 방법으로 시도했는데 역시 잘안돼네요

프로그램은 실행되었는데 역시 text 파일이 올라 가지 않습니다..

<>; 도와주세용..

  //RunProcess :longint;
  // 함수 호출
  RunProcess := ExecNewProcess('c:cmsccc.exe');

  if RunProcess <> 0 then
    WaitForSingleObject(RunProcess,0);

   ===실행함수 ===

function TFMipgoinp.ExecNewProcess(ProgramName: String): Longint;
  var
   StartInfo  : TStartupInfo;
   ProcInfo   : TProcessInformation;
   CreateOK   : Boolean;
begin
  FillChar(StartInfo, SizeOf(TStartupInfo),#0);
  FillChar(ProcInfo,  SizeOf(TProcessInformation),#0);
  StartInfo.cb := SizeOf(TStartupInfo);

  if CreateProcess(PChar(ProgramName),nil, nil, nil,False,
        CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS, nil, nil, StartInfo,
        ProcInfo)
  then
    Result := ProcInfo.hProcess
  else
    Result := 0;
end;
2  COMMENTS
  • Profile
    이경문 2002.01.29 20:45
    정확한 원인인지는 모르겠지만 ccc.exe의 current directory가 어떻게 되는지 확인해 보십시오.
    즉 탐색기에서 더블클릭했을 때와 전용실행프로그램에서 ccc.exe를 실행했을 때 current directory가 다를 수도 있을 것 같습니다.
    ccc.exe 프로그램에서 test file의 경로를 full path로 잡아 주는 것아 안전할 것 같은데요.
    정확한 것은 아닙니다. 걍 추측이에여 ^^

  • Profile
    이기석 2002.01.29 21:52
    죄송합니다.. 님의 말씀을 잘 이해가 되지 않습니다..

    정리하자면 ..

    1. ccc.exe 를 호출하는 부모 플그램의 경로
    : C:program filesmagic부모.exe
    2. ccc.exe 의 경로는
    : C:cmsccc.exe
    입니다..

    ** 문제는 ccc.exe 호출은 되는데 ccc.exe의 고유 기능인
      text 파일을 ftp 서버로 upload 를 못하는 것입니다.

    ccc.exe를 호출하는 부분의 아래의 소스입니다..

    ==  호출 소스
    RunProcess := ExecNewProcess('c:cmsccc.exe');

    if RunProcess <> 0 then
       WaitForSingleObject(RunProcess,0);// 3.0에서는 -1 이었음 !

    ==== 호출되는 함수 ===

    function TFMAutocmsupinp.ExecNewProcess(ProgramName: String): Longint;
    var
      StartInfo  : TStartupInfo;
      ProcInfo   : TProcessInformation;
      CreateOK   : Boolean;
    begin
    FillChar(StartInfo, SizeOf(TStartupInfo),#0);
    FillChar(ProcInfo,  SizeOf(TProcessInformation),#0);
    StartInfo.cb := SizeOf(TStartupInfo);

    if CreateProcess(PChar(ProgramName),nil, nil, nil,False,
           //CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS, nil, nil, StartInfo,
           CREATE_NEW_PROCESS_GROUP+REALTIME_PRIORITY_CLASS, nil, nil, StartInfo,
           ProcInfo)
    then
       Result := ProcInfo.hProcess
    else
       Result := 0;
    end;


    • 최수림
    • 2002.01.30 02:14
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김양훈
    • 2002.01.30 02:03
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 유진
    • 2002.01.30 01:14
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 빙고
    • 2002.01.30 00:48
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.01.30 01:40
      안녕하세요. 최용일입니다. 자료실에 보시면 GraphicEx란 그래픽관련 패키지가 있습니다. 그걸 설치하시...
    • 빙고
      2002.01.30 18:09
      정말 감사합니다. 막막했었는데.. 지금 당장 업체가서 해봐야겠네여.. 다시 한번 감사드립니다..
    • 정민주
    • 2002.01.30 00:32
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 오진욱
    • 2002.01.30 00:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 배건환
      2002.01.30 03:10
      procedure TForm1.ListBox1Click(Sender: TObject); begin   Edit1.Text := ListBox1.item...
    • 버섯
      2002.01.30 00:29
      showMessage(Listbox1.items[Listbox1.itemIndex]); 하시믄 됩니다...
    • 조성필
    • 2002.01.29 23:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 조성필
      2002.01.29 23:46
      자문자답..ㅡ.ㅡ;; 방금 올리고 제가 바로 답글을 달다니...ㅡ.ㅡ;;;; sqlclientdataset.recno+1; 요렇...
    • 최은규
      2002.02.04 19:45
      uid int(11) not null auto_increment primary key default 1 이라고 디폴트값을 지정해주셔도 됩니다... ...
    • 김재환
    • 2002.01.29 23:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 윤창준
      2002.01.29 23:52
      안녕하세요. 검색해 보시면 답이 있을 텐데. 답변을 기다리지 않아도 되고요 ^^; a := 0.12345678; t...
    • 이미진
      2002.02.04 23:44
      BatchMove Component를 사용해 보세여... 스키마파일을 만들어 사용하면 간단히 해결됩니다.
    • 송영석
      2002.02.03 12:58
      위의 질문에 답변의 다른 답변이 있으므로 할 필요는 없겠구여.. 만약 대량의 텍스트 파일의 테이블에 ...
    • 버섯
      2002.01.30 00:25
      아래처럼 하십시오.. sqltxt := 'Update tablename set field01=:field01,field02=:field02 ....  ...
    • 보들레르
      2002.01.29 23:21
      그런곳은 본적이 없구요.. 이곳 한델이나 델마당 델코등에 강의실과 팁란을 두루두루 살펴보시며 공...
    • BlueSea
    • 2002.01.29 21:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 보들레르
      2002.01.29 23:20
      FTP 서버에서 anonymous 계정을 지원하면 가능하겠지요.. 그렇지 않다면 매일 변경되는 비밀번호를 확인...
    • 김재환
    • 2002.01.29 21:48
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 보들레르
      2002.01.29 23:18
      var   Sg : Single; begin   Sg := 123.12345;   ShowMessage(FormatFl...
    • 김재환
      2002.01.29 22:21
      floattostr...인것 같아요!!   ^^! 행복하세요..
    • BlueSea
    • 2002.01.29 21:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • BlueSea
      2002.01.29 21:49
      여러사이트를 뒤지다가 발견했습니다. 파일이름만 추출하는 함수가 있더군요. ExtractFileName(FileList...
    • 박일용
    • 2002.01.29 21:01
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 5782_Click
      2002.01.29 21:16
      쿼리 컴포에 RequestLive란 넘이 있슴당... 그넘을 True로 해주시믄 변경된값만 디비에 저장이 댑니당....
    • 용이...
      2002.01.29 21:44
      먼전 답변에 감사 드립니다. 그런데...그게 아니라... 변경된 레코드들만 알 수 있나가 궁금한데... ...
    • 보들레르
      2002.01.29 23:25
      질문이 조금 모호하게 생각되네요..^_^; 변경을 어떻게 가하셨다는 말씀인가요? DBGrid 에서 직접 수...
    • 서진현
    • 2002.01.29 20:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 5782_Click
      2002.01.29 21:18
      델파이에두 insert가 있슴당.... objects.insert(5);
    • 문상준
    • 2002.01.29 20:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 우정민
      2002.01.29 20:37
      저같으면 인스톨시가 아니고... 프로그램을 최초실행시에 해당 db가 있는지 검사해서 db를 생성한다...
    • 최용일
      2002.01.29 20:12
      안녕하세요. 최용일입니다. OnCellClick이벤트에서 Column.Title이나 Column.FieldName등을 체크하면 ...
    • 김인수
      2002.01.29 21:28
      고수님 답변 감사합니다 근대 저는 컬럼의 셀을 더블클릭했을때 윈도우창이 뜨게 하고 싶은데..... 어떻...
    • 최용일
      2002.01.29 22:22
      안녕하세요. 최용일입니다. 현재 선택된 필드하고(SelectedField) 원하는 컬럼의 필드하고 비교해보시면...
    • 김인수
      2002.01.29 23:59
      아~~ 그렇군요 이렇게 하닌깐 정말 잘되는군요 가르침주셔서 너무너무 감사합니다 그럼 건강하시구요 안...
    • 이기석
    • 2002.01.29 19:13
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이경문
      2002.01.29 20:45
      정확한 원인인지는 모르겠지만 ccc.exe의 current directory가 어떻게 되는지 확인해 보십시오. 즉 탐색기...
    • 이기석
      2002.01.29 21:52
      죄송합니다.. 님의 말씀을 잘 이해가 되지 않습니다.. 정리하자면 .. 1. ccc.exe 를 호출하는 부모 ...
    • 윤도상
    • 2002.01.29 19:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Mr. Ziker
      2002.01.31 11:06
      엑티브 엑스는 CAB형태로 배포되는게 일반적입니다. 그러니까 간단히 정리 하자면, 델파이에서 프로젝트...