はじめまして。
VBを作成していて、ちょっと行き詰まっています。
プログラムのLoad時に、あるファイルのコピー作業を行っています。
しかしこのファイルは、サイズが少し大きいので時間がかかってしまい、
画面が出るまでかなりの時間を要します。
ファイルコピーの作業を中でも、プログラムはそのまま進める
と言った事は可能でしょうか?
良いアドバイスをよろしくお願いします。
別スレッド(もしくは別プロセス)で作業しない限り無理です。
単に画面を早く表示したいならファイルコピーの前にMe.Showとかすれば
一応フォームは先に表示されると思います。
>別スレッド(もしくは別プロセス)で作業しない限り無理です。
Shell関数でcommand.com(cmd.exe)のCOPYコマンドを
発行してコピーするとか。
>Shell関数でcommand.com(cmd.exe)のCOPYコマンドを....。
すみません。
どうやれば言いのでしょうか?
Shell関数は分かるのですが、command.comとは...?
VB暦4〜5年とまだ日が浅いもので。;
>VB暦4〜5年とまだ日が浅いもので。;
凄い4〜5年で浅いとは!
まだVB趣味暦2年の自分なんかヒヨッコですね。
command.comとはDOSの事です。
WindowsNT系ではcmd.exeですが。
なるほど、あの黒い画面のやつですね。
でもなんだか難しそうなので、
結局、別プログラムでコピーする事にしました。
皆さん、アドバイスありがとうございました。
>でもなんだか難しそうなので、
たとえば
Shell Environ("comspec") & " /C COPY """ & strFileA & """ """ & strFileB & """"
って やるだけですが・・・。
Sayさんありがとうございます。
でもなかなかうまくいきません。なんの反応も無いんです。
特にエラーも出ないので、間書き方は違ってはいないとは思うのですが。。。
実際にDOSプロンプトからやるとうまくコピーしてくれます。
ファイル名にはダブルクォーテーションが付いていていいんですよね?
もうちょっとがんばってみます。
ちなみに「/C」と言うのは、Cドライブって事ですか?
「/C」はCommand.comのオプションです。
コマンドを実行した後、コマンドプロンプトを終了します。
これを付けないとShellで実行後、Command.comは自動終了しません。
なるほど。。。
nanashiさん、ありがとうございます。
DOSコマンドの構文に間違えがないか確認してみてください。
COPY…の部分をBATファイルやテキストファイルに出力してみるとデバッグしやすいですよ。
イミディエイトでも良いですけど。
ツイート | ![]() |