スクリプトは問題ないので、他のドライブのアクセス権周りなのかなー。
問題切り分け用のスクリプトを置いておきます。
#module Testbcopy
#define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000
#define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200
#define FILE_ATTRIBUTE_NORMAL 0x00000080
#uselib "kernel32.dll"
#cfunc _Ts_MoveFileEx "MoveFileExA" sptr,sptr,int
#cfunc _Ts_GetLastError "GetLastError"
#func _Ts_FormatMessage "FormatMessageA" sptr,sptr,sptr,sptr,sptr,sptr,sptr
#cfunc _Ts_CopyFile "CopyFileA" sptr,sptr,sptr
#func _Ts_SetFileAttributes "SetFileAttributesA" sptr,sptr
#deffunc bcopy_chk str p1,str p2
Refval = _Ts_CopyFile(p1,p2,0)
if Refval == 0{
DLL_Err = _Ts_GetLastError()
ErrString = "ファイルコピーでエラー 12 が発生しています。詳細は下記の通りです。\n\nGetLastError = "
//GetLastError の文字列を取得
sdim GetErrString,65535
sdim SPString,65535
_Ts_FormatMessage FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,0,DLL_Err,0,varptr(GetErrString),65535,0
dialog strf("%s 0x%08x\n%s",ErrString,DLL_Err,GetErrString),1,"bcopy エラー"
} else {
_Ts_SetFileAttributes p2,FILE_ATTRIBUTE_NORMAL
}
return
#global
screen 0,800,600,0
font "MSゴシック",12
onexit *p_end
mci "open \""+dir_exe+"\\1.mp3\" alias 1"
mci "play 1"
button "切り替え",*Music_Load
mes "Process Start"
stop
*Music_Load
mci "close 1"
mes "dialog 前 : "+dir_cur+" / "+refstr
dialog "mp3",16,"音声ファイル"
if stat = 0 : mes "キャンセルされました" : stop
mes "dialog 後 : "+dir_cur+" / "+refstr
bcopy_chk refstr ,""+dir_exe+"\\1.mp3"
chdir dir_exe
mes "再生先 : "+dir_exe+"\\1.mp3"
mci "open \""+dir_exe+"\\1.mp3\" alias 1" : mes "stat : "+stat+" / "+wparam
mci "play 1"
stop
*p_end
mci "close 1"
mci "close all"
end