천객만래 [千客萬來] (It has an interminable succession of visitors)
반응형

단 아래와 같이 하면 IE가 뜬다.

 

 

usesComObj;

 

 

procedureTForm1.Button1Click(Sender: TObject);
var
  IE: OleVariant;
begin
  try
    IE:=CreateOleObject('Internetexplorer.Application');

 

    // 위치, 크기
    IE.Left:=0;
    IE.Top :=0;
    IE.Width :=500;
    IE.Height:=400;

 

    // IE 윈도우 상태
    IE.Toolbar  :=False;
    IE.Statusbar:=False;
    IE.Menubar  :=False;

 

    // 띄우기
    IE.Visible:=True;
    SetForegroundWindow(IE.HWND);
    IE.Navigate('http://www.naver.com');
  finally
    IE:=Unassigned;
  end;
end;

 

 

 

 

 

 

 

IE를 띄우는데 먼저 띄운 IE가 있다면 그 IE를 최상위로 올리고,

만약 먼저 띄운 IE가 꺼지고 없다면 새로 띄우려면 아래처럼 하면 됨.

 

 

uses
  ComObj;


const
  NOT_EXISTS = 0;
  EXISTS     =1;

 

var
  IE_HWND: HWND;

 

// 윈도우를 모조리 뒤져서 먼저 띄운 IE가 있는지 체크
functionEnumWindowsProc(hwnd: HWND; varlParam: DWORD): Boolean; stdcall;
begin

  // 먼저 띄운 IE가 아니라면 없다고 하고 계속 뒤짐
  if hwnd<>IE_HWND then begin
    lParam:=NOT_EXISTS;
    Result:=True;
  end

  // 먼저 띄운 IE가 있다면 있다고 하고 뒤지기 중지
  else begin
    lParam:=EXISTS;
    Result:=False;
  end;
end;

 

 

procedureTForm1.Button1Click(Sender: TObject);
var
  IE : OleVariant;
  IE_Exists: DWORD;

 

begin
  // IE를 띄운적이 있으면
  ifIE_HWND<>0then begin
    // 그 IE가 아직 떠있는지 검사해서
    EnumWindows(@EnumWindowsProc, DWORD(@IE_Exists));

   // 떠있다면 최상위로 올려줌
    ifIE_Exists=EXISTS then begin
      SetForegroundWindow(IE_HWND);
      Exit;
    end;
  end;

 

  try

    IE:=CreateOleObject('Internetexplorer.Application');

 
    // 위치, 크기
    IE.Left:=0;
    IE.Top :=0;
    IE.Width :=500;
    IE.Height:=400;

 

    // IE 윈도우 상태
    IE.Toolbar  :=False;
    IE.Statusbar:=False;
    IE.Menubar  :=False;

 

    // 띄우기
    IE.Visible:=True;
    SetForegroundWindow(IE.HWND);

    // 띄우는 IE의 핸들을 저장

    IE_HWND:=IE.HWND;
    IE.Navigate('http://www.naver.com');
  finally
    IE:=Unassigned;
  end;
end;

 

출처: http://blog.naver.com/erroring/150097804539

[출처] IE 띄우기|작성자 쿠핑

cnfcJ :

 

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요