Q&A

  • []A실행파일에서 다른 B 실행파일을 호출시 활성화문제에 대해서...
A실행파일 다른 B 실행파일을 호출하는 데 작성한 내용인데요

평상시 쓰는건 문제가 없는데요..
B실행파일에서 서브폼이  showmodal 속성으로 떠있는 상태에서
다른 실행파일로 갔다오면 B  실행파일에서 showmodal 폼이 뒤로 숨어
B 실행화면이 아무것도 못하는 상태가 되는데요..


SetForegroundWindow(h); 해당 폼만 앞으로 오게 되어서
B 실행파일의 서브폼(showmodal) 은 뒤로 숨더라구요



작업표시줄에서 클릭하면 B실행파일의 서브품이 앞에 있는 상태에서 나타나는데
아래 소스로는 ... 역부족 (참고로 제가 만드건 작업줄에 실행아이콘이 안뜨게 하고 싶어서)
좋은 방법없을까요?

혹시 고수님들의 좋은 의견 있으시면 꼭 부탁드립니다.


procedure TFM_nrsa0101.Button5Click(Sender: TObject);
var
  AppPathOrg
  :string;
  h:thandle;
begin
    
    h := FindWindow(nil, 'Information');
  //중복실행 막음
    if h <> 0 then begin                        
      SetForegroundWindow(h);<-----------단순이  폼만 앞으로 옴
      h := FindWindow(nil, '사용자검색');
      if h <> 0 then begin
          SetForegroundWindow(h);
      end;
      Exit;
    end ;
    AppPathOrg := ExtractFilePath(Application.ExeName);
    WinExec(Pchar(AppPathOrg+'Information.exe'+' '+'TPCON'+' '+
                  G_USERID+' '+
                  G_UserPW+' '+''),
                  SW_SHOWDEFAULT);


end;
2  COMMENTS
  • Profile
    최용일 2005.12.02 01:21
    안녕하세요. 최용일입니다.

    GetTopWindow 를 써서 h의 가장 위에 있는 차일드윈도우를 SetForegroundWindow함수로 맨 위로 올려보세요...

    ^^ 항상 즐코하세요...

  • Profile
    김영해 2005.12.04 23:14
    일단아래 답변 정말 감사 드립니다.

    A폼은 normal 에 show이구요 A화면의 서브폼을  child 폼이 아니고
    normal 폼에 showmodal 으로 뛰었거든요..
    그래서인지 아래 gettopwindow로는 해결이 되지 않습니다.
    혹시 다른방법은 없는지요..
    다시한번 부탁드립니다.