일단 아래와 같이 하면 IE가 뜬다.
uses ComObj;
procedure TForm1.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가 있는지 체크
function EnumWindowsProc(hwnd: HWND; var lParam: 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;
procedure TForm1.Button1Click(Sender: TObject);
var
IE : OleVariant;
IE_Exists: DWORD;
begin
// IE를 띄운적이 있으면
if IE_HWND<>0 then begin
// 그 IE가 아직 떠있는지 검사해서
EnumWindows(@EnumWindowsProc, DWORD(@IE_Exists));
// 떠있다면 최상위로 올려줌
if IE_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;
'Delphi' 카테고리의 다른 글
둥지짓는 드래곤 마력계산기 (4) | 2009.04.18 |
---|---|
비트맵 -> Jpeg 변환 (0) | 2009.04.18 |
[Delphi] 매일매일 바뀌는 바탕화면 (0) | 2009.04.18 |
[Delphi] IdHTTP 이용하여 파일 다운로드 (0) | 2009.04.18 |
[Delphi] 바탕화면 바꾸기 (0) | 2009.04.18 |