Cool, I didn't know you could do that. Nice one Kev.
Code archives/File Utilities/Delete files to Recycle Bin
The code archive is locked. These are the original blitzbasic.com code archives, kept so they can still be read. No new entries, edits or comments can be made here. To join in, head over to the Blitz3D+ code archives.
This code has been declared by its author to be Public Domain code.
Download source code
| When we delete files in blitz3d these are gone for good, use the code below to move them to the recycle bin in case you want a user to recover them later |
decls needs to be added to userlibs. .lib "shell32.dll" shell32_SHFileOperation%(lpFileOp*):"SHFileOperationA" .lib "user32.dll" user32_CallWindowProc%(lpPrevWndFunc*,hwnd%,msg%,wParam%,lParam$):"CallWindowProcA" ;---------------------------------------------------------------------------------------- ; and a simple example Const FO_DELETE = $3 Const FOF_ALLOWUNDO = $40 Const FOF_NOCONFIRMATION = $10 Const FOF_SILENT = $4 ; send example file to bin If send_to_bin("e:\tmp.txt") = 0 Then Print "sent to bin" Else Print "problem sending file to bin" EndIf MouseWait End Function send_to_bin(filename$) ; build quick asm call to obtain string address asm = CreateBank(5) Restore asm_data For add_byte = 0 To 4 Read byte PokeByte asm,add_byte,byte Next str_addr = user32_CallWindowProc(asm,0,0,0,filename$) ; build struct bank = CreateBank(24) PokeInt bank,4,FO_DELETE PokeInt bank,8,str_addr PokeInt bank,16,FOF_ALLOWUNDO Or FOF_NOCONFIRMATION Or FOF_SILENT ; delete file to bin value = shell32_SHFileOperation(bank) FreeBank bank FreeBank asm Return value End Function .asm_data Data $8b,$44,$24,$10,$c3 |
Comments