VB が外部ファイルをプログラム アイコンにドラッグすると削除する

'
Public Enum を指定 FO_Operation
FO_MOVE = 1
FO_COPY = 2
FO_DELETE = 3
FO_RENAME = 4
End Enum

public enum foflags fof_multidestfiles =&h1 'ターゲット
複数のファイルを指定しますfof_silent =&h4'は進行
状況を表示しません'可能な場合は元に戻す情報を保存しますFOF_FILESONLY = &H80' . 、ディレクトリをコピーしないFOF_SIMPLEPROGRESS = &H100 '各ファイルの名前を表示しないFOF_NOCONFIRMMKDIR = &H200 '必要なアクションを確認しないEnd Enum







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 '
FOF_SIMPLEPROGRESS の場合のみ
End Typeを使用 '
システム ファイル オブジェクト操作を実行
Private Decl are Function SHFileOperation Lib “shell32.dll " Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
'ファイルが存在するか判断する
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long

SHFILEOPSTRUCTとしてのプライベート操作

'删除文件夹または文件的関数
Public Function DeleteFolder(sDeleteFolder As String, Optional Interface As Boolean = False) As Long If
PathFileExists(sDeleteFolder) <= 0 Then DeleteFolder = 0: Exit Function
SetAttr sDeleteFolder, vbNormal
With Op
.wFunc = FO_DELETE
.pFrom = sDeleteFolder
.fFlags = IIf(Interface = False, FOF_NOCONFIRMATION, FOF_NOCONFIRMATION And FOF_SILENT) SHFileOperation Op End 関数
で終了

Public Function PathIntegral(ByVal URL As String, ByVal N As Integer) As String
Set Fso = CreateObject(“Scripting.FileSystemObject”)
Select Case N
Case 0 'Path Directory
PathIntegral = Fso.GetParentFolderName(URL)
Case 1 'File Name
PathIntegral = Fso.GetBaseName(URL)
Case 2 'ファイル拡張子
PathIntegral = Fso.GetExtensionName(URL)
End Select
End Function

'FORM code
Dim Filepath As String, N As Long

Private Sub Form_Load()
Filepath = Command()
If Filepath = "" Then MsgBox "削除するプログラム アイコンをプログラム アイコンにドラッグ アンド ドロップしてください!", vbOKOnly, "Prompt": End
If Left(Filepath, 1) = Chr (34) Then
Filepath = Mid(Filepath, 2, Len(Filepath) - 2)
End If
N = MsgBox("本当に完全に削除したい"" & PathIntegral(Filepath, 1) & ""?", vbYesNo + vbQuestion, "削除")
N = 1 の場合、DeleteFolder(ファイルパス) を呼び出します
End
End Sub

「ファイルが EXE ファイルとして生成されたら、削除するファイルまたはディレクトリ フォルダーをプログラム アイコンにドラッグするだけです。このコードは、一度に 1 つのファイルしか処理できません。複数のファイルを削除する場合は、自分で変更してください。 .

Guess you like

Origin blog.csdn.net/ty5858/article/details/130319072