裏でファイルのコピー

解決


湯婆婆  2003-07-18 20:15:51  No: 78699  IP: [192.*.*.*]

はじめまして。
VBを作成していて、ちょっと行き詰まっています。
プログラムのLoad時に、あるファイルのコピー作業を行っています。
しかしこのファイルは、サイズが少し大きいので時間がかかってしまい、
画面が出るまでかなりの時間を要します。
ファイルコピーの作業を中でも、プログラムはそのまま進める
と言った事は可能でしょうか?

良いアドバイスをよろしくお願いします。

編集    削除
nanashi  2003-07-18 20:26:10  No: 78700  IP: [192.*.*.*]

別スレッド(もしくは別プロセス)で作業しない限り無理です。

単に画面を早く表示したいならファイルコピーの前にMe.Showとかすれば
一応フォームは先に表示されると思います。

編集    削除
Say  2003-07-18 21:36:00  No: 78701  IP: [192.*.*.*]

>別スレッド(もしくは別プロセス)で作業しない限り無理です。

Shell関数でcommand.com(cmd.exe)のCOPYコマンドを
発行してコピーするとか。

編集    削除
湯婆婆  2003-07-18 23:06:07  No: 78702  IP: [192.*.*.*]

>Shell関数でcommand.com(cmd.exe)のCOPYコマンドを....。

すみません。
どうやれば言いのでしょうか?
Shell関数は分かるのですが、command.comとは...?
VB暦4〜5年とまだ日が浅いもので。;

編集    削除
oku  URL  2003-07-20 06:39:14  No: 78703  IP: [192.*.*.*]

>VB暦4〜5年とまだ日が浅いもので。;
凄い4〜5年で浅いとは!
まだVB趣味暦2年の自分なんかヒヨッコですね。
command.comとはDOSの事です。
WindowsNT系ではcmd.exeですが。

編集    削除
湯婆婆  2003-07-25 00:18:34  No: 78704  IP: [192.*.*.*]

なるほど、あの黒い画面のやつですね。
でもなんだか難しそうなので、
結局、別プログラムでコピーする事にしました。

皆さん、アドバイスありがとうございました。

編集    削除
Say  2003-07-25 00:52:42  No: 78705  IP: [192.*.*.*]

>でもなんだか難しそうなので、
たとえば

Shell Environ("comspec") & " /C COPY """ & strFileA & """ """ & strFileB & """"

って  やるだけですが・・・。

編集    削除
湯婆婆  2003-07-25 23:10:18  No: 78706  IP: [192.*.*.*]

Sayさんありがとうございます。
でもなかなかうまくいきません。なんの反応も無いんです。
特にエラーも出ないので、間書き方は違ってはいないとは思うのですが。。。
実際にDOSプロンプトからやるとうまくコピーしてくれます。
ファイル名にはダブルクォーテーションが付いていていいんですよね?
もうちょっとがんばってみます。
ちなみに「/C」と言うのは、Cドライブって事ですか?

編集    削除
nanashi  2003-07-25 23:49:03  No: 78707  IP: [192.*.*.*]

「/C」はCommand.comのオプションです。
コマンドを実行した後、コマンドプロンプトを終了します。
これを付けないとShellで実行後、Command.comは自動終了しません。

編集    削除
湯婆婆  2003-07-26 01:08:56  No: 78708  IP: [192.*.*.*]

なるほど。。。
nanashiさん、ありがとうございます。

編集    削除
oku  URL  2003-07-26 08:41:46  No: 78709  IP: [192.*.*.*]

DOSコマンドの構文に間違えがないか確認してみてください。
COPY…の部分をBATファイルやテキストファイルに出力してみるとデバッグしやすいですよ。
イミディエイトでも良いですけど。

編集    削除