ブラウザを二重起動するには?

解決


権の助  URL  2005-04-17 02:23:53  No: 14357  IP: 192.*.*.*

フォーム上でボタンをクリックされたときにデフォルトのブラウザを起動したいのですが、ShellExecute(Handle, 'Open', 'URL', Nil, Nil, SW_SHOW);としているのですが、これだともしブラウザが起動しているとそのブラウザのウィンドウを更新してしまいます。
ボタンをクリックするたびにブラウザを起動してURLにジャンプするにはどうしたらいいのでしょうか?

編集 削除
junki  URL  2005-04-17 04:25:05  No: 14358  IP: 192.*.*.*

レジストリからデフォルトブラウザのフルパスを取得して起動するとうまくいきました。

uses Registry;

function GetDefaultBrowser:string;
const
  Key='\http\shell\open\command';
var
  Reg: TRegistry;
begin
  Reg:=TRegistry.Create;
  try
   Reg.RootKey:=HKEY_CLASSES_ROOT;
   if Reg.OpenKey(Key,false) then
     result := Reg.ReadString('')
   else
     result := 'Error';
  finally
    Reg.Free;
  end;
end;

function OpenURLbyNewDefaultBrowser(URL:string):Boolean;
var
  s:string;
begin
  result := false;
  s := GetDefaultBrowser;
  if s <> 'Error' then
  begin
    s := s + ' '+ URL;
    result := WinExec(PChar(s),SW_NORMAL) > 31;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenURLbyNewDefaultBrowser('http://www.google.co.jp/') then
    ShowMessage('成功')
  else
    ShowMessage('失敗');
end;

編集 削除
権の助  2005-04-17 12:45:10  No: 14359  IP: 192.*.*.*

できました!
ありがとうございます!!!

編集 削除