Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / снять скрин ФОРМЫ / 4 сообщений из 4, страница 1 из 1
31.07.2005, 22:35
    #33193374
samovar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
снять скрин ФОРМЫ
собственно сабж. нада снять скрин с активной формы программы.
...
Рейтинг: 0 / 0
01.08.2005, 09:43
    #33193551
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
снять скрин ФОРМЫ
Api BitBlt
...
Рейтинг: 0 / 0
05.08.2005, 12:00
    #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
Период между сообщениями больше года.
31.08.2007, 16:49
    #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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / снять скрин ФОРМЫ / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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