Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2008, 16:07   #1
Vladimir K.
Пользователь
 
Регистрация: 25.12.2006
Сообщений: 64
По умолчанию Программно закрыть Internet Explorer 7

Подскажите, пожалста, как программно закрыть IE7?
Vladimir K. вне форума Ответить с цитированием
Старый 21.01.2008, 16:19   #2
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию

Function getProcessId(Exename:string):Dword;
var snap:DWORD;
pe:TprocessEntry32;
begin
result:=0;
snap:=CreateToolhelp32Snapshot(TH32 CS_SNAPPROCESS,0);
if snap <>INVALID_HANDLE_VALUE then begin
pe.dwSize:=sizeof(TPROCESSENTRY32);
if process32First(snap,pe) then
repeat
if pe.szExeFile=exename then begin
result:=pe.th32ProcessID;
closehandle(snap);
exit;
end;
until not process32Next(snap,pe);
closehandle(snap);
result:=0;
end;
end;


function TerminateProcess(id:integer):boolea n;
var hprocess:Thandle;
begin
hprocess:=OpenProcess(PROCESS_TERMI NATE,false,id);
if (hprocess=0) then begin
result:=false;
exit;
end;
result:=windows.TerminateProcess(hp rocess,0);
closehandle(hprocess);
if not result then exit;
result:=True;
end;

TerminateProcess(getProcessId('iexp lore.exe'));
ICQ-465033557
WINDOWS CE THE BEST
vitalik007 вне форума Ответить с цитированием
Старый 21.01.2008, 16:26   #3
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Сообщений: 229
По умолчанию

Можно найти процесс Интернет Експлорера и убить его. Можно по заголовку окон искать и если он, то посылать сообщение WM_CLOSE (или WM_DESTROY точно не помню), чтобы цивильно проводить его в последний путь .
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума Ответить с цитированием
Старый 21.01.2008, 17:08   #4
Vladimir K.
Пользователь
 
Регистрация: 25.12.2006
Сообщений: 64
По умолчанию

vitalik007, что-то сложновато... Никак не разберусь.

Вот нашел примерчик (спасибо за подсказку, в каком направлении искать):
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
xHWND: integer;
begin
xHWND := findwindow(nil, 'Яндекс - Windows Internet Explorer);
sendmessage(xHWND, WM_CLOSE, 0, 0);
end;
Но здесь надо писать полностью заголовок окна: Яндекс - Windows Internet Explorer, а если написать просто: Windows Internet Explorer - окно не закрывается.
Какой выход из этой ситуации?
Vladimir K. вне форума Ответить с цитированием
Старый 21.01.2008, 17:39   #5
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию

По заголовку тупо искать!
ну если тебе так хочется
То находи заголовок и записывай к примеру в text:string;
потом если Pos('Windows Internet Explorer',text)>0 тогда убивай
ICQ-465033557
WINDOWS CE THE BEST
vitalik007 вне форума Ответить с цитированием
Старый 21.01.2008, 18:39   #6
Veiron
Форумчанин
 
Аватар для Veiron
 
Регистрация: 01.12.2007
Сообщений: 346
По умолчанию

Лучше убивать по названию процесса т.к. некоторые твикеры позволяют изменить название заголовка главного окна эксплорера, решать вам конечно, не каждый в любом случае его переименует.
P.S. у меня к примеру он называется "[ ~Veiron~ - Internet Viewer ]"...
Win 10 x64 | VS 2015 | MSSQL 2014
autovestitv.ru
Veiron вне форума Ответить с цитированием
Старый 21.01.2008, 19:05   #7
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию

Vladimir
Лучше разберись в моем коде если что пиши в асю!
ICQ-465033557
WINDOWS CE THE BEST
vitalik007 вне форума Ответить с цитированием
Старый 21.01.2008, 19:18   #8
Vladimir K.
Пользователь
 
Регистрация: 25.12.2006
Сообщений: 64
По умолчанию

Давай здесь.
Значит так, функции в прогу вписал.
Вызов такой:
Код:
procedure TForm1.CloseIE7Click(Sender: TObject);
begin
 TerminateProcess(getProcessId('iexplore.exe'));
end;
Ошибки в первой функции:

[Error] A_2U.pas(137): Undeclared identifier: 'TprocessEntry32'
[Error] A_2U.pas(140): Undeclared identifier: 'CreateToolhelp32Snapshot'
[Error] A_2U.pas(140): Undeclared identifier: 'TH32CS_SNAPPROCESS'
[Error] A_2U.pas(142): Missing operator or semicolon
[Error] A_2U.pas(143): Undeclared identifier: 'process32First'
[Error] A_2U.pas(145): 'THEN' expected but identifier 'szExeFile' found
[Error] A_2U.pas(146): Missing operator or semicolon
[Error] A_2U.pas(150): Undeclared identifier: 'process32Next'

Кстати, если юзать такой способ:

Код:
PostMessage(FindWindow('IEFrame', nil), WM_CLOSE, 0, 0);
это, конечно работает, но закрывает мне и IE7 и его надстройки (MyIE2), а мне нужно только IE7.
Vladimir K. вне форума Ответить с цитированием
Старый 21.01.2008, 19:22   #9
Vladimir K.
Пользователь
 
Регистрация: 25.12.2006
Сообщений: 64
По умолчанию

В uses у меня:

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdHttp, StdCtrls, ComCtrls, ActiveX, MsHtml, IdBaseComponent,
IdCookieManager, IdComponent, IdTCPConnection, IdTCPClient, IdIntercept,
IdSocks, IdIOHandler, IdIOHandlerSocket, IdSSLOpenSSL, WinInet, Registry, WinSock,
OleCtrls, SHDocVw;

может еще что-нибудь прописать?
Vladimir K. вне форума Ответить с цитированием
Старый 21.01.2008, 19:23   #10
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию

Забыл сказать надо там где uses дописать TLhelp32
ICQ-465033557
WINDOWS CE THE BEST
vitalik007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Internet Explorer DeDoK Общие вопросы Delphi 1 14.06.2008 14:31
История Internet Explorer N!ckeL Общие вопросы Delphi 1 02.04.2008 18:36
Проблемы с Internet Explorer entrex Операционные системы общие вопросы 1 31.10.2007 17:33
Internet Explorer 7.0 Аlex Win Api 12 09.09.2007 09:45
Работа с Internet Explorer nuclearpartizan Общие вопросы Delphi 7 31.01.2007 23:25