Chybu v kódu nevidím, tak je chyba v knihovně. Přeinstaluj knihovnu shell32.dll (zkontroluj servis pack 6 pro vb6) Nejdřív zkus: regsvr32 \windows\system32\shell32.dll (ale tím to by být nemělo nefungovaly by ti windows - tzn. asi máš starou knihovnu) Pro jistotu 100% funkční kód vyzkoušený - ve vb6 sp6, win XP sp3 V modulu:
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As Long
End Type
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40
Private Const FOF_NOCONFIRMATION = &H10 ' Odpověď ANO pokud chci nastavi Ano pro všechny
Private Const FOF_SILENT = &H4 ' Nezobrazovat progress
'Přesune soubor do koše
Public Sub SendFileToRecycleBin(FileName As String, Optional Confirm As Boolean = True, Optional Silent As Boolean = False)
Dim FileOp As SHFILEOPSTRUCT
With FileOp
.wFunc = FO_DELETE
.pFrom = FileName
.fFlags = FOF_ALLOWUNDO
If Not Confirm Then .fFlags = .fFlags + FOF_NOCONFIRMATION
If Silent Then .fFlags = .fFlags + FOF_SILENT
End With
SHFileOperation FileOp
End Sub
Volání ve formu
Private Sub Command1_Click()
SendFileToRecycleBin "c:\posilamtedokose.txt", False
MsgBox "Ok"
End Sub
|