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


ビタミン  2006-11-09 23:34:15  No: 23850

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

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-10 01:09:37  No: 23851

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


ビタミン  2006-11-10 03:19:56  No: 23852

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


えーとね  2006-11-10 11:44:00  No: 23853

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

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


deldel  2006-11-10 19:03:32  No: 23854

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


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

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






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