URLを同時に複数開く為に次のようなコードを書いていますが
しっかりと動いてくれません。
URLAddressListはTStringList。
コードはこのようにしています。
for i := 0 to URLAddressList.Count-1 do
begin
ShellExecute(0, 'open', PChar(URLAddressList.Strings[i]), nil, nil, SW_SHOW)
end;
IEが関連付いている場合や
Sleipnirに関連付いていてがSleipnirが既に起動している場合は
リスト中の全てのURLが開くのですが
Sleipnirが起動していない場合には、
はじめのURL呼び出しによってSleipnirが起動し、
その起動中に他のURLが引数として渡るので
無視されてしまい、一つのURLのページしか開かずに
正しく複数のURLが開かない状態になってしまいます。
OperaやFireFox、Lunascapeや他のタブブラウザの挙動を調べきったわけではなく
タブブラウザの作りがしっかりしていれば
このようにはならないとは思いますが
なるべく多くのブラウザで
複数のURLを一気に開く為のコードを実装したいのですが
どのように工夫するとよいでしょうか。
※ShellExecuteの間にウェイトを多く入れるべき?
何かよいコツを
ご存じでしたら教えてください。
よろしくお願いします。
>IEが関連付いている場合や
>Sleipnirに関連付いていてがSleipnirが既に起動している場合は
>リスト中の全てのURLが開くのですが
嘘でした、IEの時でも正しく動作しませんね。
>なるべく多くのブラウザで
>複数のURLを一気に開く為のコードを実装したいのですが
というのは同じです。
よろしくお願いします。
WaitForInputIdle を使って起動完了を確認しながら次々と
ツイート | ![]() |