フォーム上でボタンをクリックされたときにデフォルトのブラウザを起動したいのですが、ShellExecute(Handle, 'Open', 'URL', Nil, Nil, SW_SHOW);としているのですが、これだともしブラウザが起動しているとそのブラウザのウィンドウを更新してしまいます。
ボタンをクリックするたびにブラウザを起動してURLにジャンプするにはどうしたらいいのでしょうか?
レジストリからデフォルトブラウザのフルパスを取得して起動するとうまくいきました。
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;
できました!
ありがとうございます!!!
ツイート | ![]() |