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

解決


権の助  URL  2005-04-17 11:23:53  No: 14357

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


junki  URL  2005-04-17 13:25:05  No: 14358

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

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 21:45:10  No: 14359

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加