Q&A

  • 외부 프로그램 종료시키는 명령문은 뭔가요??
외부 프로그램 실행은

ShellExecute(0,'explore','C:\mysql\bin\winmysqladmin.exe',nil,nil,sw_shownormal);

이런 식으로 하잖아요..

실행된 외부 프로그램을 종료하려면 어떻게 해야하죠??
1  COMMENTS
  • Profile
    nilriri™ 2005.05.25 05:13
      
    <!--CodeS-->
    // 변수선언....
                   :
      public
        { Public declarations }
        RunProcess : LongInt ;    // 실행시킨 프로그램 핸들을 가지고 있을 전역변수
                                                // 이 예제는 메인 폼의 public에 선언하고 사용했을 경우입니다.
      end;
                   :

    <!--CodeE-->

    <!--CodeS-->
    // 메인폼 생성...
    // 필요한 부분에서 원하는 프로그램을 실행하도록 수정...
    procedure Tfrorm1.FormCreate(Sender: TObject);
    var
       StartInfo : TStartupInfo ;          // process 시작 정보
       ProcessInfo : TProcessInformation ; // process 정보
    begin


       if CreateProcess( PChar('c:\xxxx.exe'), nil, nil, nil, False,
          CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS, nil, nil, StartInfo,
          lx_ProcessInfo ) then
       begin
          // 외부 프로그램이 정상적으로 실행되었으면.. Process handle을 저장.
          RunProcess := ProcessInfo.hProcess ;

          Screen.Cursor := crHourGlass ;
          Delay( 4000 ) ;  // 잠시대기..^^;
          Screen.Cursor := crDefault;
       end;

    end;
    <!--CodeE-->

    <!--CodeS-->
    // 메인폼이 종료될때...  외부 실행 프로그램이 실행중이면 종료..
    // 이부분 역시 외부 프로그램을 종료하고자 하는 시점에서 처리해 주시면 됩니다.
    procedure Tfrorm1.FormDestroy(Sender: TObject);
    begin

       // 프로세스 핸들값이 있으면 해당 외부프로그램 핸들을 가지고 프로그램을 종료한다.
       if RunProcess <> 0 then
       begin
          if TerminateProcess( RunProcess, 0 ) = False then
          begin
             Application.MessageBox( '프로그램을 종료할 수 없습니다.'+
                             chr(13)+'메모리에 프로세스가 실행중이면 강제 종료 하십시오',
                                     '프로그램 종료 확인',
                                     MB_OK + MB_ICONWARNING ) ;
          end ;
       end ;

    end;


    <!--CodeE-->


    • 허성수
    • 2005.05.26 18:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.05.26 20:42
      상위클래스에서 구현되어 있다면 에러가 나지 않습니다. 다만 상위 클래스에서 Abstract로 선언만 되어 ...
    • nilriri™
      2005.05.28 21:36
      function TfrmMain.DownloadURL(const aUrl: string): Boolean; var   hSession: HINTERNET;...
    • 정경철
    • 2005.05.26 01:17
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 권태훈
      2005.05.26 19:30
      이게 같은건지 다른건지는 모르겠으나 제가 사용하는것이 녹음/변환/저장등에서 제일 편한것 같습니다.-- ...
    • 정경철
      2005.05.26 20:52
      package (. dpk) 파일로 설치를 하는데 오류가 나옵니다. ASC 의 아래 부분에서 requires  &n...
    • 권태훈
      2005.05.27 03:45
      rtl.dcp $delphi/lib에 있네요 자동추가되면서 컴파일되고 잘 되는데... rtl이 왜 없다고 나오는지 ...
    • 정경철
      2005.05.28 01:54
      델파이 7 버젼에는 그 파일이 있는데 델파이 5 번젼에는 없는거 같은데... 혹시 버젼에 따라 다르지 않습...
    • 권태훈
      2005.05.28 22:21
      델파이 5에서 쓰던걸 7에서 쓰고 있습니다. 될것이라고 생각되구요... 시간나면 전화주시요.. 육칠구공영...
    • 박면
    • 2005.05.25 23:46
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 천마산
    • 2005.05.25 19:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.05.25 22:14
      안녕하세요. 최용일입니다. 님 프로그램에서 사용하는 OLE 클래스가 윈도우에 등록되지 않아서 생기는 ...
    • nilriri™
      2005.05.26 10:07
      이미지로 저장하시는건 팁란에 검색해 보시면 제가 올려 놓은 방법이 있습니다. 참고 하세요.
    • 오창화
    • 2005.05.25 07:22
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 데빠이
      2005.05.27 01:08
      OS가 윈도우 XP이면서 DB화일 확장자가 GDB일 경우는 처음 연결시 상당히 느립니다... GDB 라는 확장자 자...
    • 반영재
      2005.05.25 18:55
      혹시 CPU가 스레드를 지원하는 CPU이면 스레드를 끄고 해보세요. firebird는 싱글CPU용 입니다.
    • 김원일
    • 2005.05.25 03:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2005.05.25 05:13
         <!--CodeS--> // 변수선언....         ...
    • 신재민
      2006.11.10 19:26
      저는 아래와 같이 했어요.. 아주 잘열리고 컷팅도 잘되요.. AssignFile(F, g_port); Rewrite(F); Wri...
    • 신재민
      2006.11.10 19:22
    • 이규하
      2005.05.26 14:15
      안녕하세요. 우선, TM88 Driver 를 설치 하셔야 되구요. 그 다음에, 전 아래와 같이 했었어요. <!...
    • 이종택
    • 2005.05.25 01:24
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 피터팬
      2005.05.28 20:42
      제가 예전에 많이 했던 고민인듯하네요. 모든 컨트롤들을 폼사이즈에 따라 줄어들고 늘어나도록 만든 프로...
    • 이중철
      2005.05.27 02:35
      너무 오래된 질문이어서 볼지 안볼지 모르지만.. 일단 align, anchors 만 가지고는 아무래도 원하는 결과 ...
    • 정찬희
      2005.05.25 06:17
      컨트롤의 Align과 Anchors 프로퍼티를 잘 이용하세요...
    • 이종택
      2005.05.25 19:09
      또 질문.. 죄송하지만..어떻게 이용하라는건지..자세히좀.. 이것 저것 해봐도..잘 안되네요.. 컨트롤...
    • 하얀까마귀
      2005.05.25 21:21
      안녕하세요 하얀까마귀 입니다. anchors 는  akleft, aktop, akRight, akBottom 이 있습니다....
    • 천마산
    • 2005.05.25 00:24
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 민스맘
      2005.05.25 19:33
      허걱...그 에러 메세지 라두 올리주세요
    • 황성욱
      2005.05.25 01:09
      질문이 너무 광범위한거 같습니다.^^ 에러가 어떤 에러라든지 덤프를 뜨시던지, 현상을 자세히 설명하셔...
    • 허성수
    • 2005.05.24 23:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 황성욱
      2005.05.25 01:06
      초보답변입니다. DCU를 이용해서 pas를 생성하는건 안되는 걸로 알고 있고여, 컴파일시에 에러는 환경설...
    • 남기문
    • 2005.05.24 22:47
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 도끼로이마까
      2005.05.27 20:11
      차일드 폼의 Constraints 속성을 한번 살펴보세요. MaxWidth, MaxHeight가 설정되어 있다면 0으로 세팅...
    • 천희택
      2005.05.25 17:58
      흐음... 소스를 올려달라.. 고 하시면 아마 안되겠죠? ^^...... 차일드 창 FormCreate 쪽을 보셔야 할 ...
    • 세균맨
    • 2005.05.24 20:23
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.05.24 21:34
      안녕하세요. 최용일입니다. 파일이 그리 크지 않고 텍스트 파일이라면... StringReplace함수를 써보세요...
    • 세균맨
      2005.05.24 23:08
      스티링리스를 하나 선언하고 로드시키 다음 replace하는 데 문제가 치환이 안되는군요? 왜 그렇지 이유를...
    • 최용일
      2005.05.25 01:46
      헛.. 죄송합니다.. ㅠㅠ 아래와 같이 고치세요... StringList.Text := StringReplace( StringList.Te...
    • 세균맨
      2005.05.25 04:29
      ㅌㅌㅌ
    • 허성수
    • 2005.05.24 18:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.05.25 17:52
      ㅋ 답이 안달리네요...허접한 저라도 나름데로 답변을 드리면 먼저 Desiner 라는 객체(포인터죠)가 주소...