起動Exeを削除するには、どのようにしたらよいでしょうか?
よろしくお願いします。
VB6です。
起動中のexeは削除できません。
終了してから削除するか、レジストリに設定して再起動時に削除するようにします。
レスありがとうございます。
どちらの方法もしたことがないのですが、
終了してから削除するとはどのようにしたらよいでしょうか?
宜しくお願いします。
> 終了してから削除するとはどのようにしたらよいでしょうか?
とりあえず、手抜き実装なサンプルを書いてみました。
削除失敗時のエラー処理などは省いています。
(当然ですが、exe にコンパイルして実行してくださいね)
'========================
Private Sub Command1_Click()
Dim FSO As Object 'Scripting.FileSystemObject
Dim FilePath As String
Dim S As Object 'Scripting.TextStream
'Set FSO = New Scripting.FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
FilePath = FSO.BuildPath(App.Path, App.EXEName & ".EXE")
Set S = FSO.CreateTextFile(FilePath & ".VBS", True, False)
S.WriteLine "On Error Resume Next"
S.WriteLine "Set FSO = WScript.CreateObject(""Scripting.FileSystemObject"")"
S.WriteLine "FSO.DeleteFile """ & FilePath & ".VBS"", True"
S.WriteLine "Do Until FSO.FileExists(""" & FilePath & ".DEL"")"
S.WriteLine " WScript.Sleep 100"
S.WriteLine "Loop"
S.WriteLine "FSO.DeleteFile """ & FilePath & ".DEL"", True"
S.WriteLine "Set WshShell = WScript.CreateObject(""WScript.Shell"")"
S.Write "If WshShell.Popup(""削除します「" & FilePath & "」"", 10, ""自動削除"","
S.WriteLine CStr(vbOKCancel Or vbSystemModal Or vbInformation) & ") = vbOK Then"
S.WriteLine " WScript.Sleep 500"
S.WriteLine " FSO.DeleteFile """ & FilePath & """, True"
S.WriteLine " WshShell.Popup ""削除しました。"", 10, ""自動削除""," & CStr(vbInformation)
S.WriteLine "Else"
S.WriteLine " WshShell.Popup ""削除中止"", 10, ""自動削除""," & CStr(vbInformation)
S.WriteLine "End If"
S.Close
Set S = Nothing
Shell "WSCRIPT.EXE """ & FilePath & ".VBS""", vbNormalFocus
Set S = FSO.CreateTextFile(FilePath & ".DEL", True, False)
S.WriteLine FilePath
S.Close
Unload Me
Set S = Nothing
Set FSO = Nothing
End Sub
ツイート | ![]() |