Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вызов диалога свойств интернета [D5, Win2k, WinXP]


Smok_er ©   (2002-07-27 13:36:00) 

Уважаемые мастера!
Подскажите пожалуйста способ вызвать из программы сабж. Если я делаю это таким методом:

procedure TfrMain.actInetOptionsExecute(Sender: TObject);
const
CGID_WebBrowser: TGUID = "{ED016940-BD5B-11cf-BA4E-00C04FD70816}";
var
CmdTarget : IOleCommandTarget;
vaIn, vaOut: OleVariant;
PtrGUID: PGUID;
begin
New(PtrGUID);
PtrGUID^ := CGID_WebBrowser;
with TEmbeddedWB(PageControl1.ActivePage.FindComponent("WB")) do
begin
if Document <> nil then
try
Document.QueryInterface(IOleCommandTarget, CmdTarget);
if CmdTarget <> nil then
try
CmdTarget.Exec( PtrGUID, HTMLID_OPTIONS, 0, vaIn, vaOut);
finally
CmdTarget._Release;
end;
except
end;
Dispose(PtrGUID);
end;
end;


Недостатком данного метода является то, что для вызова диалога необходимо связать его с браузером. Интересно, как это сделать без необходимости наличия браузера?


Smok_er   (2002-07-29 00:43:00) [1]

Большое спасибо!


Макс Черных   (2002-07-28 20:50:00) [2]

Слать TCM_SETCURSEL можно, но, пожалуй, не не нужно.

Все делается очень просто:

ShellExecute(Application.Handle, nil,"Control.exe",
"inetcpl.cpl,@0,6",nil,SW_SHOWNORMAL);


Циферка 6 в данном случае и есть нужная страница. В XP это:
Internet properties - Advanced.

В MSDN это расписано в статье:
HOWTO: Start a Control Panel Applet in Windows 95 or Later


Юрий Зотов   (2002-07-28 16:09:00) [3]

Вариант, наверное, не лучший, но работать должен - после запуска и активизации диалога найти окно Tab control"а на нем и послать ему TCM_SETCURSEL.


Smok_er   (2002-07-28 14:59:00) [4]

Спасибо большое!
Этот диалог и все остальное скорее всего открывается методом, предложенным Billy (кстати, великолепно работает - спасибо Billy). А вот как вызвать определенную вкладку этого диалога, видимо никто не знает. Нигде не могу найти ответ на этот вопрос.


Billy   (2002-07-27 22:41:00) [5]

У большенства людей файлы cpl ни с чем не ассоциированы. Запустить апплет панели приложения можно так:
control.exe applet_name.cpl . То же можно проделать с помощью ShellExecute. Успехов.


tsarevep   (2002-07-27 21:36:00) [6]

Если у вас за CPL отвечает REstarator то............? А как тогда у вас все остальное открывается Дата и время например?


Smok_er   (2002-07-27 15:44:00) [7]

Кстати, желательно также узнать, как вызвать этот диалог таким образом, чтобы сразу открылась определенная вкладка, т.е. не General, а Advanced например...


Smok_er   (2002-07-27 15:41:00) [8]

Попробовал...
Вместо диалога вылез ресторатор.
дело в том, что он ассоциирован с файлом "cpl" :(

Есть другие предложения?


int64   (2002-07-27 14:24:00) [9]

Зачем вырезать гланды через ...
Этот диалог "находится" в Панели управления. :)

ShellExecute(Application.Handle, nil,"inetcpl.cpl",nil,nil,SW_SHOWNORMAL);


Наверх

Титульная страница Поиск, карта сайта Написать письмо