1
で新しい電子メール画像にスクリーンショットを添付すると、スクリーンショットを撮って新しい電子メールに添付するコードを探していました。私は自分のものを投稿します。それは99%働いて、ちょうど私の人生のためにそれが電子メールに付いていない理由を理解できません。vbネット
新しいスクリーンショットを電子メールに添付しますが、それはすべて行います。これは可能ですか?
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 protected]u")
theStringBuilder.Append("&subject=From Domain: " & strUserDomain & ". Computer Name: " & strCompName)
theStringBuilder.Append("&attach=" & Screenshot)
Process.Start(theStringBuilder.ToString())
End Sub
のmailtoプロトコルは技術的にそれをサポートしていますが、私は道ので、私の新しいメールにファイルを添付することができていたことがありませんOutlookはそれをサポートしていないと思う。いくつかの他のメールクライアントが行うかもしれませんが、私はそれがセキュリティ対策であると期待しています。アプリケーションはそれを悪意のあるようにすることができないように、添付されるファイルを選択する必要があります。 – jmcilhinney
@jmcilhinneyそれは意味があります、私が調べることができる他の方法? – Moskita
"仕事"は必ずしもファイルを添付する必要はありませんが、メールクライアントで作業する必要があります。クライアントが常にOutlookになることがわかっている場合は、代わりにOffice Automationを使用できます。より複雑ですが、Outlookオブジェクトモデルで許可されていることをすべて実行できます。 – jmcilhinney