Логин:     Забыли пароль?
 
Пароль:   Регистрация

Форум / Программирование - запустить копию проги при кликание на сылку в EmbeddedWB (типа webbrowser)  

запустить копию проги при кликание на сылку в EmbeddedWB (типа webbrowser)

smit
smit
Посетитель
Сообщения: 3
[Сообщение #1] ? 30 сентября 2012, 19:01
как запустить копию проги при кликание на сылку в EmbeddedWB (типа webbrowser) с использованием Paramcount.
Вот вопрос возник embeddedwb оnкрываем ссылку открывается новое окно и например, если я закрою первичное окно то закроется и дочернее окно, а возможен вариант, что бы при закрытие родительского окна не происходило закрытие и дочернего. Судя по всему iexplorer запускает вторую копию программы и туда подставляет урл. Как мне сделать, что бы при кликание на ссылку запуск проходил именно второй копии проги, плюс в строку адреса подставлялся урл ссылки?
Код срабатывающий при открытии ссылки внизу.
procedure TForm1.EmbeddedWB1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
 var Cancel: WordBool);
  var
 NewWindow:TForm1;
begin
cancel := false; // новое значение
NewWindow := TForm1.Create(parent);
try
 
finally
SetWindowLong(NewWindow.Handle, GWL_EXSTYLE, GetWindowLong(NewWindow.Handle, GWL_EXSTYLE) or WS_EX_APPWINDOW);
NewWindow.Show;
ppDisp:=NewWindow.EmbeddedWB1.ControlInterface; 
 
 end;
end;

smit
smit
Посетитель
Сообщения: 3
[Сообщение #2] 1 октября 2012, 21:04
 
procedure TForm1.EmbeddedWB1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
 var Cancel: WordBool);
 var
   url,ts: string;
  NewWindow:TForm1;
//     ovURL: OleVariant;
//  var doc:IHtmlDocument2;
begin
 with TRegistry.Create do
     try
       rootkey := HKEY_CLASSES_ROOT;
       OpenKey('\htmlfile\shell\open\command', False);
       try
         ts := ReadString('');
       except
         ts := '';
       end;
       CloseKey;
     finally
       Free;
     end;
   if ts = '' then Exit;
//if
// assigned(embeddedwb1.ControlInterface.Document)
//  then   embeddedwb1.ControlInterface.Document.QueryInterface(IHtmlDocument2,doc);
//NewWindow := TForm1.Create(parent);
//SetWindowLong(NewWindow.Handle, GWL_EXSTYLE, GetWindowLong(NewWindow.Handle, GWL_EXSTYLE) or WS_EX_APPWINDOW);
//NewWindow.Show;
//ppDisp:=NewWindow.EmbeddedWB1.DefaultDispatch; //самая правильный, появляется несколько значков браузера возможен их
выбор
//winexec (Pchar('C:\Program Files\Net\net.exe'), SW_SHOWNORMAL);
 
ts := Copy(ts, Pos('"', ts) + 1, Length(ts));
   ts := Copy(ts, 1, Pos('"', ts) - 1);
   ShellExecute(3, 'open', PChar('ppDisp:=NewWindow.EmbeddedWB1.DefaultDispatch'), PChar(url), nil, SW_SHOW);
//  ShellExecute( handle, 'net', PChar('C:\Program Files\Net\net.exe'), PChar(url), nil, SW_SHOW);
 
//ppDisp := Self.EmbeddedWB1.Application;
 end;

перебрал несколько вариантов что то неполучается в событие EmbeddedWB1NewWindow2(ASender: TObject; var ppDisp: IDispatch; получается надо подставить код с запуском копии и подстановкой урла. был запуск когда копия запускалась и открывала ссылку, но и запуск ехплорера происходил.

smit
smit
Посетитель
Сообщения: 3
[Сообщение #3] 7 октября 2012, 23:53
http://www.programmersforum.ru/showthread.php?t=128459 решение


Всего сообщений: 3 (сейчас показаны: с 1 по 3)

Перейти в раздел:


 © 2004 - 2024, Delphi.int.ru
Версия форума: 1.10 (19.01.2010)
RSS Delphi.int.ru Expert Код
Выполнено за 0.02 сек.
Обратная связь