2012-01-09 3 views
0

Как исправить эту ошибку с помощью кода ниже в visual basic.net с помощью Visual Basic Express? Не поддерживаемое исключение было необработанным после 3 циклов. "PictureBox1.Image.Save (dtmTestX, System.Drawing.Imaging.ImageFormat.Jpeg)"Общая ошибка в visualbasic.net

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 

    Dim dtmTest As Date 
    dtmTest = TimeValue(Now) 
    Dim bounds As Rectangle 
    Dim screenshot As System.Drawing.Bitmap 
    Dim graph As Graphics 
    Dim dtmTestSaveLocation As String 
    dtmTestSaveLocation = "D:\test" + dtmTest + ".jpg" 

    bounds = Screen.PrimaryScreen.Bounds 
    screenshot = New System.Drawing.Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb) 
    graph = Graphics.FromImage(screenshot) 
    graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy) 
    PictureBox1.Image = screenshot 

    PictureBox1.Image.Save(dtmTestSaveLocation, System.Drawing.Imaging.ImageFormat.Jpeg) 
End Sub 
+0

Что именно сообщение об ошибке вы получаете? – CedX

+1

Повторная маркировка. Это не VBA. – HardCode

+0

Имя файла будет содержать символ «:» из преобразования DateTime в строку. Это не допустимый символ в имени файла. –

ответ

0

Вам нужно изменить строку:

PictureBox1.Image.Save(dtmTestX, System.Drawing.Imaging.ImageFormat.Jpeg) 

к:

PictureBox1.Image.Save(dtmTestSaveLocation, System.Drawing.Imaging.ImageFormat.Jpeg) 

Вы также должны вставлять свои графические элементы в теги, чтобы обеспечить их правильное размещение:

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
    Try 
     Dim dtmTest As Date 
     Dim bounds As Rectangle 
     Dim dtmTestSaveLocation As String 

     dtmTest = TimeValue(Now) 
     dtmTestSaveLocation = "D:\test" & dtmTest.ToShortTimeString.Replace(":", "_") & ".jpg" 

     bounds = Screen.PrimaryScreen.Bounds 
     Using screenshot As New System.Drawing.Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb) 
      Using graph As Graphics = Graphics.FromImage(screenshot) 
       graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy) 
       PictureBox1.Image = screenshot 
       screenshot.Save() 
       PictureBox1.Image.Save(dtmTestSaveLocation, System.Drawing.Imaging.ImageFormat.Jpeg) 
      End Using 
     End Using 
    Catch theException As Exception 
     Console.WriteLine(theException.ToString) 
     ' Note: In production code, you would want to do something useful with the exception 
     ' here, such as showing it to the user in a messagebox or writing it to a log 
    End Try 
End Sub 
+0

Те же ошибки: Не поддерживается Исключение было необработанным – user101579

+0

Можете ли вы изменить свой вопрос, чтобы включить полный текст исключения и трассировку стека. Вы можете получить эту информацию, обернув текст в блок try/catch и используя метод tostring исключения для записи всего на консоль. Если вам нужно, я могу обновить ответ, чтобы показать этот код. –

+0

PictureBox1.Image.Save (dtmTestSaveLocation, System.Drawing.Imaging.ImageFormat.Jpeg) - NotSupportedException был необработанным - формат данного пути не поддерживается. – user101579

Смежные вопросы