VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/03/03(Thu) 10:39
投稿者はこ
Eメール
URL
タイトル【解決】SHFileOperation

>GODさん
ご確認どうもありがとうございます。
やっぱりWin2000では仕方のないことなのでしょうか。。。

GODさんからのヒントを元に結局このようにすることにしました。

Private Sub cmdCopy_Click()
    Dim sh          As SHFILEOPSTRUCT
    Dim bytBuf()    As Byte
    Dim lngRet      As Long
    Dim lngCancel   As Long
    Dim intRet      As Integer
    
    On Error Resume Next

RETRY:

    'FDがセットされているか確認
    Err.Clear
    Dir "A:\", vbDirectory
    If Err.Number <> 0 Then
        intRet = MsgBox("フロッピーディスクをセットして再試行ボタンを押下してください。", _
                        vbExclamation Or vbRetryCancel, _
                        Me.Caption)
        If intRet = vbRetry Then
            GoTo RETRY
        Else
            Exit Sub
        End If
    End If
    
    'FD出力
    With sh
        .hwnd = Me.hwnd
        .wFunc = FO_COPY
        .pFrom = "C:\test.dat"
        .pTo = "A:\test.dat"
    End With
    
    lngRet = SHFileOperation(sh)
        
    ReDim bytBuf(LenB(sh)) As Byte
    MoveMemory bytBuf(0), sh, LenB(sh)
    MoveMemory lngCancel, bytBuf(18), Len(lngCancel)
    
    If lngRet = 0 And sh.fAnyOperationsAborted = 0 Then
        MsgBox "コピー完了!"
    End If
End Sub

花ちゃんさん、魔界の仮面弁士さん、GODさん、どうもありがとうございました。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -