-1
私はdelphi 7で作られた32ビットアプリケーションからこのテストバッチファイルを実行しようとしています。私は単純にShellExecute( 'install.cmd'、SW_HIDE)関数を使用しています。問題は、32ビットホストアプリケーションのために、最初の行が無視されることです。私はなぜ窓がそれを行うのか知っていますが、私の質問はそのデフォルトの動作を無効にする方法です。私は "System32"を "SysNative"に置き換えようとしましたが、xcopyによって通常のフォルダと解釈されました。バッチファイルを使用して32ビットDelphiアプリケーションから64ビットのフォルダ(System32)にアクセスするには?
INSTALL.CMD
xcopy "SomeLibrary_64bit.dll" "%SYSTEMROOT%\System32\" /Y
xcopy "SomeLibrary_32bit.dll" "%SYSTEMROOT%\SysWOW64\" /Y
'を%windir%の場合は\ sysnative'は、WOW64環境で動作するはずです。それ以外の場合は、1) 'CreateProcess()'を使って直接 'cmd.exe'の64ビット版を起動するか、2)[' Wow64DisableWow64FsRedirection() '](https://msdn.microsoft.com/)を使うか、 /ライブラリ/ windows/desktop/aa365743.aspx)と['Wow64RevertWow64FsRedirection()'](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365745.aspx)を参照してください。もちろん、実際の問題は、 'CopyFile()'関数を使うのではなく、あなたのソフトウェアが '.bat'スクリプトを起動するのはなぜですか? –
Seconded。このためにバッチファイルを使用しないでください。それを超えると、システムディレクトリを変更するのは間違いです。それをしないでください。 –
@Remy Lebeau 私はAviSynth + MTのための簡単なインストーラを作成しました。私は32ビットアプリケーションから直接そのインストールスクリプトを実行したいと思います。 %windir%\ sysnativeに関して。 %systemroot%\ Sysnativeとまったく同じです。 Sysnativeはdelphiでしか動作しませんが、xcopyでは動作しません。私はこのスクリプトを64ビットcmd.exeで起動しようとします。 –