powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / снять скрин ФОРМЫ
4 сообщений из 4, страница 1 из 1
снять скрин ФОРМЫ
    #33193374
samovar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
собственно сабж. нада снять скрин с активной формы программы.
...
Рейтинг: 0 / 0
снять скрин ФОРМЫ
    #33193551
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Api BitBlt
...
Рейтинг: 0 / 0
снять скрин ФОРМЫ
    #33203713
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, нашел у себя, если кому еще интересно.
Нужны 3 Command-а и одна PIcture.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
Option Explicit

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal _
   bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Declare Function GetVersionExA Lib "kernel32" _
      (lpVersionInformation As OSVERSIONINFO) As Integer

Private Type OSVERSIONINFO
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String *  128 
End Type

Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_SNAPSHOT = &H2C
Private Const VK_MENU = &H12

Dim blnAboveVer4 As Boolean

Private Sub Command1_Click()
    If blnAboveVer4 Then
        keybd_event VK_SNAPSHOT,  0 ,  0 ,  0 
    Else
        keybd_event VK_SNAPSHOT,  1 ,  0 ,  0 
    End If
    SavePicture Clipboard.GetData, "c:\temp\test" & Format(Now, "h_m_s") & ".bmp"

End Sub

Private Sub Command2_Click()
    If blnAboveVer4 Then
        keybd_event VK_SNAPSHOT,  1 ,  0 ,  0 
    Else
        keybd_event VK_MENU,  0 ,  0 ,  0 
        keybd_event VK_SNAPSHOT,  0 ,  0 ,  0 
        keybd_event VK_SNAPSHOT,  0 , KEYEVENTF_KEYUP,  0 
        keybd_event VK_MENU,  0 , KEYEVENTF_KEYUP,  0 
    End If
End Sub

Private Sub Command3_Click()
    ' Load the captured image into a PictureBox and print it
    Picture1.Picture = Clipboard.GetData()
    Printer.PaintPicture Picture1.Picture,  0 ,  0 
    Printer.EndDoc
End Sub

Private Sub Form_Load()
    Dim osinfo As OSVERSIONINFO
    Dim retvalue As Integer
   
    osinfo.dwOSVersionInfoSize =  148 
    osinfo.szCSDVersion = Space$( 128 )
    retvalue = GetVersionExA(osinfo)
    If osinfo.dwMajorVersion >  4  Then blnAboveVer4 = True

    'Picture1.Visible = False
    Command1.Caption = "Print Screen"
    Command2.Caption = "Alt+Print Screen"
    Command3.Caption = "Print Image"
End Sub


...
Рейтинг: 0 / 0
Период между сообщениями больше года.
снять скрин ФОРМЫ
    #34768717
igat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Листинг работает на ура!, но у меня другая беда. Мне нужно снять скрин и записать его в файл без некоторых cmdButton`ов на форме. т.е. я пишу Комманда1.Visible=False, после
If blnAboveVer4 Then
keybd_event VK_SNAPSHOT, 1, 0, 0
Else
keybd_event VK_MENU, 0, 0, 0
keybd_event VK_SNAPSHOT, 0, 0, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
End If

Комманда1.Visible=True

И в буфер попадает скрин с Комманда1. Почему?

P.S. C form1.printform фишки visible=T/F отлично работают

Заранее благодарен
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / снять скрин ФОРМЫ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]