Я пытаюсь захватить все экраны на компьютере, я пытался возиться с Screen.AllScreens
, а также с VirtualScreens
, что я не могу вспомнить, поэтому я переместился на PrimaryScreen
, чтобы убедиться, что все остальное работает правильно.VB.NET - Сделайте снимок экрана обо всех экранах на компьютере
Вот мой текущий класс:
Public Class wmCapture
Public Shared Function screenCapture()
Dim userName As String = Environment.UserName
Dim savePath As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Dim dateString As String = Date.Now.ToString("yyyyMMddHHmmss")
Dim captureSavePath As String = String.Format("{0}\WM\{1}\capture_{2}.png", savePath, userName, dateString)
Dim bmp As Bitmap = New Bitmap(_
Screen.PrimaryScreen.Bounds.Width, _
Screen.PrimaryScreen.Bounds.Height)
Dim gfx As Graphics = Graphics.FromImage(bmp)
gfx.CopyFromScreen(_
Screen.PrimaryScreen.Bounds.Location, _
New Point(0, 0), Screen.PrimaryScreen.Bounds.Size)
bmp.Save(captureSavePath)
End Function
End Class
Что я должен использовать в пространстве имен экрана, чтобы включить все активные экраны?
Большое спасибо Dan, поэтому я должен использовать Sub вместо функции? Я ссылаюсь на функцию и класс в моем main.vb (form1) – Sam
Также у меня есть проверка каталога в другом классе как часть событий загрузки приложения, но спасибо за добавление ваших :) – Sam
Если метод не имеет типа возврата , используйте 'Sub'. В вашем случае метод ничего не возвращает. – djv