Clarion 8 でコマンド ウィンドウを非表示にする方法はありますか?
xcopy を実行して、アプリケーションのフィールドで定義されたファイルをコピーするので、次のようになります。
Run('Xcopy '&Clip(Loc:Pathfrom)&' '&loc:Pathto')
すなわちRun(' C:\Temp\Temp.tps c:\Bakup\')
。
おそらく、黒いウィンドウを表示せずにコピーのみを行うcmdまたはClarionコマンドがありますか?
RUN()
いいえ。 のようなコンソール アプリケーションでClarion 機能を使用するxcopy.exe
場合、ドキュメントに記載されているオプションを使用してコマンド ライン インターフェイス ウィンドウを非表示にすることはできません。
クラリオンプログラムの例:
PROGRAM
MAP
END
pathFrom cstring('C:\Temp\Temp.tps') !You could use STRING instead of CSTRING, but then must use CLIP(pathFrom) below
pathTo cstring('c:\Backup\')
CODE
!You will see a black cmd.exe console window open to run ththe following CLI command
Run('xcopy ' & pathFrom & ' ' & pathTo, true) !second parameter of true means to wait for the program being "run" to complete.
ただし、これを回避する 1 つの方法は、コンソール以外のアプリケーションを使用して作業を行うか、コマンド ライン インターフェイスを非表示にしてコンソール アプリを実行することです。後者はAutoITで行いました。Clarion が提供するRun()
機能と同様に、AutoIT も提供しますが、ウィンドウを非表示にする機能が追加されています。
AutoIT スクリプト (runhidden.au3 を runhidden.exe としてコンパイル):
Opt("TrayIconHide",1) ;This hides AutoIT's default systray icon from appearing
dim $command = $CmdLine[1] & ' ' & $CmdLine[2] & ' ' & $CmdLine[3] & ' ' & $CmdLine[4]
Run ( $command,"",@SW_HIDE)
上記のコンパイル済み AutoIT スクリプトを使用する Clarion プログラムの例:
PROGRAM
MAP
END
pathFrom cstring('C:\Temp\Temp.tps')
pathTo cstring('c:\Backup\')
CODE
!You won't see a black cmd.exe console window opened by the following CLI command:
Run('runhidden.exe xcopy '& pathFrom & ' ' & pathTo, true)
上記の手法に AutoIT を使用する必要はありませんが、AutoIT は無料で簡単に使用できます。
コマンド ラインの copy/xcopy コマンドを使用することを好む何らかの理由がない限り、Clarion の組み込みのコピー機能を使用してファイルをコピーしてみませんか?