shellexecuteの例外処理をするには?


ビタミン  2006-11-09 14:34:15  No: 23850  IP: 192.*.*.*

ビタミンです。また質問させて頂きます。

shellexecuteを利用してネットワークフォルダを開こうとしています。
ネットワークに接続しているときはすんなりとOpenできるのですが、、
接続していないとハングアップしてしまいます。。。

エラー処理を施すにはどうしたらいいのでしょうか?
おんぷむらさんのstdFilesモジュールを利用する方法がよいのでしょうか?

//================================================================================ここからソースです
procedure TForm1.Button11Click(Sender: TObject);
var
TMP:pchar;
URL:string;
begin

URL:='\\kyouyuu-serv\test\test2\';
TMP:=pchar(URL);
ShellExecute(Handle, 'open', abc, nil, nil, SW_SHOW)
end;
end.
//================================================================================ここまで

以上宜しくお願いします。

編集 削除
deldel  2006-11-09 16:09:37  No: 23851  IP: 192.*.*.*

pingを発行して、反応があったらフォルダを開くとかくらいしか無いような・・・あるのかな?

編集 削除
ビタミン  2006-11-09 18:19:56  No: 23852  IP: 192.*.*.*

deledelさんありがとうございます。なるほどです、Pingで応答確認してから・・ですね。なるほど!!!最終手段としてやってみたいとおもいますm()m

編集 削除
えーとね  2006-11-10 02:44:00  No: 23853  IP: 192.*.*.*

DirectoryExists でしょうか。
スレッドを使えば、ハングアップしません。

ニューズグループでサンプルを見つけました。
http://groups.google.co.jp/group/borland.public.delphi.objectpascal/msg/97cbdaa60cf42131?hl=ja&

編集 削除
deldel  2006-11-10 10:03:32  No: 23854  IP: 192.*.*.*

えーとねさん、結構いいサンプルですね〜。勉強になりました。
しかも、アプリが無反応になることもなく、使えそうです。
ただ、DirectoryExists の実行が終了する前にアプリを終了させると、
必ずメモリリークしますので、注意が必要ですね・・・。
この辺り、もっといい方法が無いでしょうかねぇ。

編集 削除