본문 바로가기
Delphi Tip/인터넷

Internet explorer 띄우기

by MonoSoft 2021. 12. 1.
728x90
반응형

Internet explorer 띄우기

 

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('인터넷주소URL');

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('인터넷URL');

  finally

    IE:=Unassigned;

  end;

end;

 

728x90
반응형

댓글