使用VB Net将屏幕快照附加到新的电子邮件Outlook图像 [英] Attaching a screenshot to new email outlook image with vb net

查看:34
本文介绍了使用VB Net将屏幕快照附加到新的电子邮件Outlook图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

需要一些代码来截取屏幕截图并将屏幕截图附加到新电子邮件中.我将发布我所拥有的.它可以正常工作99%,我无法终生弄清楚为什么它没有附加到电子邮件中.

been looking for a bit of code to take a screenshot and attach the screenshot to new email. I'll post what I have. It work 99%, just can't for the life of me figure out why it isn't attaching to the email.

除了将新的屏幕截图附加到电子邮件外,它会执行所有其他操作.这可能吗?

It does everything but attach the new screenshot to the email. Is this possible?

Private Sub testStripMenuItem_Click(sender As Object, e As EventArgs) Handles testStripMenuItem.Click

    Dim maxHeight As Integer = 0
    Dim maxWidth As Integer = 0
    For Each scr As Screen In Screen.AllScreens
        maxWidth += scr.Bounds.Width
        If scr.Bounds.Height > maxHeight Then maxHeight = scr.Bounds.Height
    Next
    Dim AllScreensCapture As New Bitmap(maxWidth, maxHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb)
    Dim screenGrab As Bitmap
    Dim screenSize As Size
    Dim g As Graphics
    Dim g2 As Graphics = Graphics.FromImage(AllScreensCapture)
    Dim a As New Point(0, 0)
    For Each scr As Screen In Screen.AllScreens
        screenSize = New Size(scr.Bounds.Width, scr.Bounds.Height)
        screenGrab = New Bitmap(scr.Bounds.Width, scr.Bounds.Height)
        g = Graphics.FromImage(screenGrab)
        g.CopyFromScreen(a, New Point(0, 0), screenSize)
        g2.DrawImage(screenGrab, a)
        a.X += scr.Bounds.Width
    Next
    Dim Screenshot = "C:\img.png"
    If System.IO.File.Exists(Screenshot) Then
        System.IO.File.Delete(Screenshot)
    End If
    AllScreensCapture.Save(Screenshot, System.Drawing.Imaging.ImageFormat.Jpeg)

    'Email Code
    Dim strUserDomain As String
    Dim strCompName As String
    strUserDomain = Environ$("UserDomain")
    strCompName = Environ$("ComputerName")
    Dim theStringBuilder As New StringBuilder()
    theStringBuilder.Append("mailto:email@gmail.com.au")
    theStringBuilder.Append("&subject=From Domain: " & strUserDomain & ". Computer Name: " & strCompName)
    theStringBuilder.Append("&attach=" & Screenshot)

    Process.Start(theStringBuilder.ToString())
End Sub

推荐答案

通过已安装的邮件客户端发送的替代方法...

Alternative to sending through an installed mail client...

' Some of these may come from the form or user settings or wherever
Private Const MailSenderEmail As String = ""
Private Const MailSenderName As String = ""
Private Const MailRecipient As String = ""
Private Const MailSubject As String = ""
Private Const MailBody As String = ""
Private Const MailHost As String = ""
Private Const MailPort As String = ""
Private Const MailUser As String = ""
Private Const MailPass As String = ""
Private Const MailEnableSsl As Boolean = False

Private Sub testStripMenuItem_Click(sender As Object, e As EventArgs) Handles testStripMenuItem.Click
    '
    ' Your code to capture the screen
    '

    Dim Screenshot = "C:\img.png"
    If System.IO.File.Exists(Screenshot) Then
        System.IO.File.Delete(Screenshot)
    End If
    AllScreensCapture.Save(Screenshot, System.Drawing.Imaging.ImageFormat.Jpeg)

    ' Send the email with Screenshot attached
    Using MailMessage As New Net.Mail.MailMessage
        With MailMessage
            .From = New Net.Mail.MailAddress(MailSenderEmail, MailSenderName)
            .To.Add(MailRecipient)
            .Subject = MailSubject
            .Body = MailBody
            .Attachments.Add(New Net.Mail.Attachment(Screenshot))
        End With

        With New Net.Mail.SmtpClient
            .Host = MailHost
            .Port = MailPort
            .EnableSsl = MailEnableSsl

            Select Case True
                Case String.IsNullOrWhiteSpace(MailUser)
                Case String.IsNullOrWhiteSpace(MailPass)
                Case Else
                    .Credentials = New Net.NetworkCredential(MailUser, MailPass)
            End Select

            .Send(MailMessage)
        End With
    End Using
End Sub

这篇关于使用VB Net将屏幕快照附加到新的电子邮件Outlook图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆