我们在用资源浏览器删除文件的时候,会弹出一个是否确定把文件删除到回收站的对话框。我不想让这个对话框弹出来,我想让我这个程序运行的时候,将这个对话框关掉,当我的程序退出的时候在给恢复原来的样子。请问怎么用程序来实现?注意哦,是用程序。谢谢了!UP有分!

解决方案 »

  1.   

    我程序中要把临时文件给删除掉啊。但是总不能删除的时候,提示用户,对不对啊?用KILL删出错。所以只能删除到回收站(关于这个问题,我不想再讨论了。我为了这个问题头都大了,不过最后发现只要删除到回收站就正常运行了)。
    请各个高手指点一二。
      

  2.   

    用API也删除过,还是删除不掉。但是删除到回收站就可以。所以,我就把它删除到回收站。
    请大家帮帮忙!谢谢了!
      

  3.   

    你要那样麻烦干嘛,直接kill不就是了.
      

  4.   

    喔,kill出错?那么,把它移动到c:\recycle文件夹不行?
    要不就findwindow后sendmessage wm_close
      

  5.   

    用api删除也可以删除进回收站而且不提示啊
      

  6.   

    我现在不是讨论怎么删除文件。我现在讨论的是怎么把文件删除到回收站不弹出提示框。TO: zmrok(朱朱)
         你说API也可以,能给教我怎么实现么?谢谢!
      

  7.   

    移动文件到回收站 
    声明:
    Public 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 TypePublic Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As LongPublic Const FO_DELETE = &H3
    Public Const FOF_ALLOWUNDO = &H40 
    代码:
    Dim SHop As SHFILEOPSTRUCT
    Dim strFile as stringWith SHop
    .wFunc = FO_DELETE
    .pFrom = strFile + Chr(0)
    .fFlags = FOF_ALLOWUNDO
    End WithSHFileOperation SHop 
      

  8.   

    在VB程序中通过回收站删除文件
    作者:土人 
    在标准工程中添加一个公共对话框和两个按钮即可尝试本例:Option Explicit'删除文件的API
    Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As ToBin) As Long
    '清空回收站的API
    Private Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hwnd As Long, ByVal pszRootPath As String, ByVal dwFlags As Long) As LongPrivate Type ToBin
    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 TypeConst FO_DELETE = &H3
    Const FOF_ALLOWUNDO = &H40
    Const SHERB_NORMAL = &H0'将文件移至回收站
    Private Sub Command1_Click()
    Dim Go As ToBin
    Dim strFile As String
    With CommonDialog1
    .Filter = "(*.bak)|*.bak"
    .DialogTitle = "删除文件"
    .ShowOpen
    strFile = .FileName
    End WithWith Go
    .wFunc = FO_DELETE
    .pFrom = strFile
    .fFlags = FOF_ALLOWUNDO
    End WithSHFileOperation Go
    End Sub'清空回收站
    Private Sub Command2_Click()
    Dim RetVal As Long
    RetVal = SHEmptyRecycleBin(0&, vbNullString, SHERB_NORMAL)
    End Sub 
     
      

  9.   

    用Visual Basic编程建立自己的回收站--------------------------------------------------------------------------------
    http://tech.sina.com.cn 2000/09/29  软件世界 王福生 杨洪勇
      在Windows 95中删除一个文件或文件夹,只需用鼠标拖动文件(夹)到回收站,然后松开鼠标按钮即可,这种可视化的操作给用户带来了很大方便。如果程序开发人员在自己的程序中能做到这样,在自己的程序中也增加一个和Windows中风格相同的回收站,那么开发出的程序一定会受到用户的欢迎。怎么才能完成这种操作呢?本文介绍一种使用Visual Basic编程来完成这个动作的方法。   在Microsoft Windows资料中将按下鼠标按钮移动对象称为拖,将鼠标按钮的松开称为放。在Visual Basic中,如果项目中使用多个窗体,可以把一个图标从一个窗体拖放到另一个窗体。控件允许两种拖动,这取决于DragMode特性的两个不同的值。缺省情况是DragMode特性的值为0,除特定情况外不允许拖动控件;将这个特性的值改成1(Automatic)意味着用户可以拖动控件。   下面介绍拖动鼠标删除文件方法的实现过程。在Visual Basic的项目中允许用户拖动代表文件的图标至处理单元,此单元相当于Windows 95中的回收站,在给出警告之后把文件从磁盘中删除。   第一步,首先启动一个有两个窗体的项目,在启动窗体的下角加一个图片框(或图像控件),将这个控件的Picture特性设置成TRASH03.ICO文件中的图标,该文件位于Icon库的Computer子目录中。如果使用图片框,将AutoSize特性设置成True(如果选择一个图像控件,将Stretch特性设置成False)。   第二步,建立两个控件数组,一个是控件名为FileName的标签数组,另一个名字为Files的图像控件数组。将图像控件的DragMode特性设置成1(Automatic);将Visble特性设置成False,使标签和图像控件在运行时都不可见。通常,这些控件数组中的所有后续元素都继承这些特性。   这个项目中的大多数工作都体现在下面的DragDrop事件过程中:   Private Sub Garbage_DragDrop(Source As Control,X As Single,Y As Single)
      ‘local variables
      Dim Msg As String
      Dim ControlIndex As Integer,YesNo As Integer
      ControlIndex=Source.Index
      Forml.FileName(ControlIndex).Visble=False
      Msg= "Do you really want to delete"+
      Forml.FileName(ControlIndex).Caption
      YesNo=MsgBox(Msg,vbYesNo, "Confirmation Box")
      If YesNo=vbYes Then
      Kill(Forml.FileName(ControlIndex).Caption)
      Unload Files(ControlIndex)
      Unload Forml.FileName(ControlIndex)
      Else
      Forml.FileName(ControlIndex).Visible=True
      Forml.File(ControlIndex).Visible=True
      End If
      End Sub   该事件过程中的ControlIndex这一行代码找出被拖动控件的索引;接下来的两行代码使图片框和标签在放置操作后暂时不可见。ControlIndex变量让Visual Basic从标签数组中提取标题(也就是文件名)。消息框的类型为=vbYesNo,因此是个Yes/No消息框,标题是Confirmation Box。Kill命令从磁盘中删除文件。一旦程序删除了文件,就从控件数组中卸除标签和图片框。如果用户操作有误,确认的消息框返回No,则程序代码使得原来的图片框和标签再次显现。   下一步,建立一个称为Directons的通用过程,在一个窗体上显示出给用户提供的这个应用程序所需的信息,该窗体用作一个定制对话框。   Sub Directons ()
      Forml.Hide
      Form2.Show
      Form2.Cls
      Form1.Print "This program illustrates dragging and dropping mouse operations."
      Form2.Print "The user gives a file spec inside the message box and a form"
      Form2.Print "appears with icons labelled by all the files with that file specifcation."
      Form2.Print "The user can drag the icon to be 'flushed' away i. e. deleted."
      End Sub   对话框上OK按钮的Click过程是:   Private Sub btnOK-Click ()
      Me.Hide
      Form1.Show
      End Sub   启动窗体的Form-Load 过程需要装入Directons窗体并调用显示信息的通用过程。它可以这样的:   Private Sub Form-Load ()
      Load Form2
      Directons
      End Sub   启动窗体上的File 菜单有以下两项:   New File Spec   Exit   单击New File Spec菜单项让用户查看新的目录或驱动器。这个菜单项会调用一个通用过程GetFile,从磁盘读入文件名。   最后,是如何处理新的文件说明。用户第一次使用这个应用程序时,Visual Basic装入两个控件数组中一定数目的元素。程序需要改变标题中所含的信息,这些标题含有要删除的文件的名字。这两个控件数组只装入一次,然后使用Dir $命令建立一个字符串,从磁盘读入住处后将这个数组中的值赋给标签的Caption特性。该程序代码要读磁盘信息两次来恰当地重新确定数组尺寸。至于菜单项,因为“N”加了下划线,用户可以按N作为激活这一项的简捷键。菜单打开后这个菜单的控件名设置成mnuNewFileSpec。这个控件的Click事件过程是:   Private Sub mnuNewFileSpec Click
      Unload Form1
      Load Form1
      GetFile
      End Sub 
      Unload Form1这个代码行清除控件数组的旧元素。GetFile 处理过程是这样的:
      Public Sub GetFile ( )
      'local variables
      Dim FileSpec As String
      Form2. Hide
      FileSpesc=InputBox$ ("File specification?")
      If FileSpesc= "" Then
      Directons
      Else
      Form1.Show
      DisplayFiles (FileSpec)
      End If
      End Sub   在启动窗体上显示文件的详细住处包含在一个通用过程DisplayFiles中,该过程只有一个参数,该过程如下:   Public Sub DisplayFiles (FileSpec As String)
      ‘Local variables
      Dim NameOfFile As String
      Dim ControlIndex As Integer
      Form1 .Show
      Form1.Width=8000 
      Form1.Height=5500
      Form1.Garbage.Move 7000,4200 'move the garbage can icon
      NameOfFile=Dir $(FileSpec)
      If NameOfFile= " " Then
      MsgBox "No Files found with that file specification
      End If
      ControlIndex= ControlIndex +1 'start with index=1
      Do While NameOgFile<> ""
      Load Form1.Files(ControlIndex)
      Load Form1.FileName(Contro;Index)
      Column=(ControlIndex Mod 6)
      Row=(ControlIndex-1)\6 
      Form1.Files(ControlIndex).Move(1300*Column)+275, 800*Row+2 'to allow for menu
      Form1.FileName(ControlIndex).Move 1300*Column, 800*(Row+1)
      Form1.Files(ControlIndex).Visible=True
      Form1.Filename(ControlIndex).Visible=True
      Form1.Filename(ControlIndex).Caption=NameOfFile
      ControlIndex= ControlIndex+1
      If ControlIndex >30 Then
      MsgBox("Too many files!")
      Exit Do
      End If
      NameOfFile=Dir$
      Loop
      End Sub   DO循环实现将图片框及标签分隔开,分隔的间距通过用不同的值试验确定。就像控件数组中的所有新元素一样,在将Visible特性设置成True之前,它们都是不可见的。   为了结束程序,只需将事件过程与窗体上的Quit菜单项关联,并增加一个查询Unload事件来结束程序。   Sub mnuQuit_Click()
      Unload Form2 
      Unload Me
      End Sub
      Sub Form_Unload(Cancel As Integer,Unload Mode As Integer) 
      End
      End Sub   以上程序的设计方法,介绍了怎样在Visual Basic中如何用鼠标拖动删除文件以及对文件的处理方法。程序设计通过控制鼠标的动态操作,使得用户操作时感到方便直观。如果在自己开发的的程序中能做到这些,就可以让自己的程序也会具有Windows风格。当然实现鼠标拖动删除文件方法很多,此处谈论的方法供各位同仁参考。 
      

  10.   

    我给你出一个笨主意,也许对你有帮助,呵。
    建一个批处理文件AA.bat,里面的内容类似以下:
    del C:\TEMP\*.*然后在程序里用:
    shell(".\AA.bat")
    就一切OK了。
    呵,这是个笨办法,不过我想很实用的,哈哈。
      

  11.   

    也许这儿这个方法是你要的吧:
    首先,你要添加引用,点“工程”-》“引用”,添加“Microsoft Scripting Runtime”。
    然后,建一个窗体,加一个按钮,双击按钮,在按钮的按下代码中写入以下代码:Dim fso As New FileSystemObject, fil1
    Set fil1 = fso.GetFile("D:\AA.txt")以上假设你要删除的文件为D:盘根目录下的AA.txt,请根据你的要求改。
    如果是大批量的删东西,我想,你可以利用别的控件和方法得到各文件名,就不是你的题的范围了。(当然,如果是那样,我个人还是以为,利用DOS的批处理来得方便,哈哈。)
      

  12.   

    不好意思,少了一行代码,呵,更正,代码是下面的:
    Dim fso As New FileSystemObject, fil1
    Set fil1 = fso.GetFile("D:\AA.txt")
    fil1.Delete
      

  13.   

    把 SHFILEOPSTRUCT 的 fFlags 加上 FOF_NOCONFIRMATION 一项。
      

  14.   

    TO: James0001(See-Plus-Plus) 
        我不太懂你说的意思。能说的清楚一点么?谢谢!
      

  15.   

    Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As LongPrivate 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 TypeConst FO_DELETE = &H3
    Const FOF_NOCONFIRMATION = &H10&
    Const FOF_ALLOWUNDO = &H40&
    Const SHERB_NORMAL = &H0
    ' ----------------------------------------------- 以下是代码
    Dim shfo As SHFILEOPSTRUCT
    With shfo
    .wFunc = FO_DELETE
    .pFrom = FILE '******** 把 FILE 替换成有效的文件名 **********
    .fFlags = FOF_ALLOWUNDO Or FOF_NOCONFIRMATION
    End WithCall SHFileOperation(shfo)