Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как программно сделать копию экрана? 
V
    Опции темы
Дейв
Дата 10.2.2003, 19:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите, пожалуйста, как из программы можно сделать копию экрана. Операторы типа SendKeys в этом случае не работают. Может есть какие API-функции (желательно для VB). Или есть уже готовая программка для этих целей?
  Вверх
Гость_Small
Дата 11.3.2005, 23:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











1- Щелкните на клавиатуре по клавише Print Screen (копия экрана).
2- Перейдите в редактор Word: Пуск р Программы р Word (или щелкните по иконке Word на Рабочем Столе).
3- В окне редактора Word выполните команду: Правка [Edit] р Вставка [Paste]
  Вверх
Golden Hands
Дата 12.3.2005, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Золотой
****


Профиль
Группа: Участник Клуба
Сообщений: 2023
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: нет
Всего: 83



Программы Snagit, Corel Capture предоставляют для этого очень большие возможности.
P.S. Сорри, не посмотрел на раздел... smile

Это сообщение отредактировал(а) Golden Hands - 12.3.2005, 11:20


--------------------
Мы обречены... но только на победу!
Настанет день, и мы построим новый дом.
Внесем в него тепло, что сохранить сумели,
И воскресим все то, что в нас когда-то умерло... © Тень Света
PM MAIL ICQ   Вверх
RA
Дата 12.3.2005, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: нет
Всего: 115



Одной функцией Api тут не обойдешся, а вообще тему нужно было создавать в соответвующем разделе (в разделе по VB).
PM   Вверх
Exception
  Дата 12.3.2005, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Программно? Где-то у меня примерчик лежал...
Вот:
Код

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_SNAPSHOT = &H2C


Private Sub Form_Load()
App.TaskVisible = False 'Прога не видна в списке приложений
Me.Width = 0
Me.Height = 0
Timer1.Interval = 5000
End Sub

Private Sub Timer1_Timer()
Static i As Integer
i = i + 1
Clipboard.Clear
keybd_event VK_SNAPSHOT, 0, 0, 0
DoEvents
SavePicture Clipboard.GetData(vbCFBitmap), "C:\Bitmaps\" & i & ".bmp"
Clipboard.Clear
End Sub

Каждые пять сек. этот код фоткает содержимое экрана и сохраняет в папке "C:\Bitmaps"
Будут вопросы - обращайся.

ЗЫ Зарегься - проще будет smile

Это сообщение отредактировал(а) Run-time error - 12.3.2005, 11:58
PM   Вверх
cardinal
Дата 12.3.2005, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99





--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Exception
Дата 13.3.2005, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Только так в файле не сохранишь...
В общем в зависимости от задачи smile
PM   Вверх
Flotskiy
Дата 15.3.2005, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



День добрый всем!
Run-time error , меня заинтересовал твой код, если можешь - добавь, чтобы при запуске проги иконка сворачивалась в трей (к часикам).
С уважением

Это сообщение отредактировал(а) Flotskiy - 15.3.2005, 11:47
--------------------
FlotskiySk k
PM MAIL   Вверх
Exception
Дата 15.3.2005, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Вот статейку нарыл:
-----------------------------------------------------------------------------------------------------------------------------------------------
Эта статья является самодостаточной, то есть в ней дана исчерпывающая информация по созданию иконки в SystemTray с помощью VB. Однако при этом она является компиляцией общедоступных источников, то есть заслуга автора состоит лишь в сборе этой информации в одном месте и пояснениях.

Основы создания иконки изложены в FAQ Льва Серебрякова. Используется пример на VB от Alexander Shherbakov. Описания функций и констант из книги Daniel Applemana и API.TXT. Вопросы связанные с редактором ресурсов не рассматриваются.

Единственная функция для работы с иконкой Shell_NotifyIcon. Ее описание на VB выглядит так:
Код

Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" _ 
(ByVal dwMessage As dwMess, lpData As NOTIFYICONDATA) As Long

Возвращает ноль в случае ошибки

Тип dwMess описывается так:

Код

Public Enum dwMess


NIM_ADD = &H0 ' Добавление иконки
NIM_DELETE = &H2 ' Удаление иконки 
NIM_MODIFY = &H1 ' Изменение параметров иконки
End Enum

Переменная dwMessage должна иметь одно из этих значений.

Тип NOTIFYICONDATA имеет следующую структуру:

Код

Type NOTIFYICONDATA

cbSize As Long ' Размер переменной типа NOTIFYICONDATA
hwnd As Long ' Указатель окна создающего иконку 
uID As Long ' Указатель на иконку в пределах приложения 
uFlags As uF ' Маска для следующих параметров 
uCallbackMessage As CallMess ' Возвращаемое событие 
hIcon As Long ' Указатель на изображение для иконки 
szTip As String * 64 ' Всплывающий над иконкой текст
End Type 



Где тип uF имеет вид:


Код

Public Enum uF

NIF_MESSAGE = &H1 ' Значение имеет uCallbackMessage
NIF_ICON = &H2 ' Значение имеет hIcon 
NIF_TIP = &H4 ' Значение имеет szTip

End Enum 



Эти константы можно применять в любых сочетаниях, для определения какой из параметров имеет значение.



Тип CallMess:


Код

Public Enum CallMess

WM_MOUSEMOVE = &H200 
WM_LBUTTONDOWN = &H201 
WM_LBUTTONUP = &H202
WM_LBUTTONDBLCLK = &H203
WM_RBUTTONDOWN = &H204
WM_RBUTTONUP = &H205
WM_RBUTTONDBLCLK = &H206


WM_MBUTTONDOWN = &H207
WM_MBUTTONUP = &H208
WM_MBUTTONDBLCLK = &H209
WM_SETFOCUS = &H7
WM_KEYDOWN = &H100
WM_KEYFIRST = &H100
WM_KEYLAST = &H108
WM_KEYUP = &H101

End Enum 



Эти константы обозначают, какое событие возвращается вызывающей форме. Буквально, все, что будет происходить с иконкой, будет вызывать у формы одно из перечисленных событий. Ясно, что самое частое событие самой иконки это MouseMove, но для формы оно будет выглядеть как событие заданное переменной uCallbackMessage. Как же узнать, что в действительности произошло с иконкой? Это можно узнать через переменные X и Y событий MouseMove, MouseDown и MouseUp вызывающей формы. При этом Y, если событие произошло с иконкой, а не формой, всегда будет равно нулю, а X несет информацию о событии с иконкой.



О параметре X следует сказать отдельно. Действительно, он передает информацию о событиях с иконкой, однако эти значения зависят от масштабного коэффициента системного шрифта, но не напрямую, а через параметр свойства TwipsPerPixelX объекта Screen. То есть для одной и той же системы, при разных величинах системного шрифта, значения будут разными. Начальными значениями событий являются следующие:


MouseMove - 512


LeftButtonDown - 513


LeftButtonUp - 514


LeftButtonDblClick - 515


RightButtonDown - 516


RightButtonUp - 517


RightButtonDblClick - 518



Для того чтобы узнать действующие в данной системе значения их следует умножить на Screen.TwipsPerPixelX


Как же узнать, что событие произошло с иконкой, а не с формой? Просто, по значению Y, равному нулю. Но есть и другой способ, если используется двухкнопочная мышь то параметр Button в событиях MouseDown и MouseUp формы, будет принимать значения 1 и 2, и при uCallbackMessage равно WM_MBUTTONDOWN=&H207 или WM_MBUTTONUP = &H208 Button равен 4, если событие с иконкой. Само собой разумеется, что возвращаемые X значения следуют одно за другим, как и события (Down->Up->DbClick),поэтому невозможно на одну кнопку мыши назначить два события, к примеру, Click и DbClick. События не связанные с мышью не несут практически ни какой информации, и обычно не используются, следует так же отметить, что количество констант uCallbackMessage намного больше и здесь приведена лишь небольшая часть


Из описанного видно, что с иконкой можно совершить одно из следующих действий: добавить, модифицировать и удалить, при этом, модифицируя можно заменить возвращаемое событие, картинку (указатель при этом останется тем же) и всплывающую надпись (ToolTips).


Следующий момент, который нужно осветить это получение hIcon (указателя на картинку). Предполагается, что иконка будет находится в исполняемом файле или в DLL с ресурсами, но ни в коем случае не валяется в виде ICO файла. Если иконка запакована в DLL, то нам понадобятся две функции:


Код

Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal _ 
lpLibFileName As String) As Long




Возвращающая hInstance библиотеки с именем lpLibFileName. Достаточно указать только имя файла с расширением, без пути. Возвращает ноль в случае ошибки


Код

Declare Function LoadIconA Lib "user32" (ByVal hInstance As Long, ByVal _
lpIconName As String) As Long



Возвращающая hIcon для иконки указанной параметром lpIconName в библиотеке. Этот параметр может быть String или Long, в зависимости от данного вами наименования в Res файле, соответственно надо изменить декларацию. Можно передать и число как строку, для этого перед числом ставится знак #, а все это берется в кавычки. Следует заметить, что использование срокового параметра не желательно из за значительно большего размера занимаемой памяти и соответственно, большего времени на передачу параметра. Функция возвращает ноль в случае ошибки


Понадобится так же функция:


Код

Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long



Выгружающая библиотеку из памяти. Параметр hLibModule это hInstanse, возвращаемое LoadLibrary. Возвращает ноль в случае ошибки.


Обязательно надо не забыть выгрузить из памяти библиотеку, для освобождения памяти. Выгрузку можно произвести сразу же после добавления иконки в SystemTray.


Обязательно надо не забыть выгрузить из памяти библиотеку, для освобождения памяти. Выгрузку можно произвести сразу же после добавления иконки в SystemTray.


Код

Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" _ 
(ByVal lpModuleName As String) As Long



Возвращающей hInstanse нашего приложения. В качестве lpModuleName передается имя EXE файла с расширением. Следует быть внимательным, так как имя процесса в TaskMenager не всегда соответствует имени процесса для Windows. Я использую для определения имени DLLView, можно воспользоваться, встроенным в VB System Information. Функция возвращает действительное значение только при работе скомпилированного приложения, а в режиме отладки возвращает ноль, ведь реального процесса при отладке не существует. Свойство hInstanse объекта App всегда возвращает действительное значение, однако при отладке из за отсутствия процесса LoadIcon возвращает 0, и создается "пустая" иконка, тем не менее годная для отладки (реагирующая на все события).


Полученное hInstanse передаем LoadIconA, в качестве lpIconName указываем номер или имя иконки в Res файле, как и в случае с DLL. Выгружать в этом случае ничего не надо.


Создание иконки можно проиллюстрировать следующим примером.


Считается, что иконка с номером 101 находится в файле Project1.exe. Понятно, что пока мы его не скомпилировали, ее там нет (да и самого файла нет). Форма приложения называется Form1.


Код

Dim NID As NOTIFYICONDATA 

Sub AddIcon() 

Dim IDLib As Long ' Указатель на библиотеку
Dim IDIcon As Long ' Указатель на иконку 
Const IDMyIcon = 101 ' Идентификатор иконки внутри приложения
Dim AddResult As Long ' Результат добавления иконки

IDLib = GetModuleHandle("Project1.exe") ' Получаем hInstanse
IDIcon = LoadIcon(IDLib, "#101") ' Получаем hIcon 

' Заполняем структуру NID типа NOTIFYICONDATA

NID.cbSize = Len(NID) ' Размер структуры
NID.hwnd = Form1.hWnd ' Указатель на форму
NID.uID = IDMyIcon ' Идентификатор иконки
'Указываем, что действующими являются поля 
NID.uFlags = NIF_MESSAGE + NIF_ICON + NIF_TIP 
'uCallBackMessage, hIcon и szTip.
' Указываем, что событием возвращаемым в форму 
NID.uCallbackMessage = WM_LBUTTONDOWN 
'является MouseDown с параметром Button = 2
NID.hIcon = IDIcon ' Указатель на иконку в файле
' Передаем всплывающую фразу "MyIcon", при этом обрезаем 
NID.szTip = Left$("MyIcon", 63) & Chr(0) 
'ее до 63 символов и добавляем 64-й символ с кодом ноль
' Вызываем функцию, через параметр dwMessage указываем, 

AddResult = Shell_NotifyIcon(NIM_ADD, NID) 
'что следует добавить иконку, и передаем заполненный NID

End Sub



Удаление созданной иконки можно сделать так:


Код

Sub DeleteIcon()

Dim DeletResult As Long
DeleteResult = Shell_NotifyIcon(NIM_DELETE, NID) 

' Вызываем функцию, через dwMessage указываем, 
'что следует удалить иконку, при этом, раз переменная NID
' описана на уровне модуля, не следует 
'заполнять ее заново 

End Sub 



Размер структуры достаточно указывать один раз, так как за время жизни переменной он измениться не может, и в данном виде составляет 88 байт. Даже при изменении всплывающей строки ее длина (строки) не будет больше 64 байт.


Для модификации иконки надо вызвать Shell_NotifyIcon с параметром dwMessage равным NIM_MODIFY и NID с внесенными изменениями, при этом параметр uFlags будет указывать, какие из параметров изменены.


В форме Form1 для обработки, к примеру, DbClick левой кнопкой мыши по иконке можно применить следующий код:


Код

Private Sub Form_MouseDown(Button As Integer, Shift As Integer _
X As Single, Y As Single)
' Событие MouseDown происходит не потому, 
'что пользователь нажал на кнопку мыши над иконкой, а из-за того, 
'что параметр uCallbackMessage имеет значение WM_LBUTTONDOWN 

If Y = 0 Then ' Y = 0 если событие с иконкой 
   Select Case X
      Case 515*Screen.TwipsPerPixelX ' Значение X при LeftDblClick 
                                     ' Код, выполняемый в случае LeftDblClick 
   End Select
End If

End Sub

----------------------------------------------------------------------------------------------------------------------------------------------
Добавлено @ 16:06
[offtop]Почему тэги не всегда работают нормально?[/offtop]
PM   Вверх
Flotskiy
Дата 16.3.2005, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Доброе утро всем!
Run-time error , благодарю за ответ, для меня это темный лес и ничего я не сделаю сам.
А цель была следующая:
Таймер поставить на 5-10 мин, запускать прогу с автозагрузки, для того, чтобы можно было проконтролировать, какие действия происходили на компе (например контроль за детьми на домашнем компе, контроль на рабочем компе, если кто посторонний что-нибудь делает). И иконку спрятать в "трей", там на ее не обратят внимания и не отключат. Вот в таком плане.
Если нельзя такую процедуру выполнить, то благодарю за внимание, закрываем этот вопрос.
Всего доброго, с уважением



--------------------
FlotskiySk k
PM MAIL   Вверх
Exception
Дата 16.3.2005, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Сделаем, сделаем...
но сегодня не успею smile
PM   Вверх
Exception
Дата 17.3.2005, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Уффф...
Сделал. Проблема - при снимке экрана исчезает кусор, а так...
Здесь
PM   Вверх
Flotskiy
Дата 18.3.2005, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Всем день добрый!
Run-time error , благодарю за прогу, немного подправил по своему вкусу и получилось то, что хотел.
Всего доброго!
Суважением


--------------------
FlotskiySk k
PM MAIL   Вверх
Mephisto
Дата 22.3.2005, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Только единственный бок этой проги: буфер обмена постоянно обнуляется! Могу выложить корректный код копирования экрана (если надо)!
PM   Вверх
Flotskiy
Дата 23.3.2005, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Добрый день всем!

Mephisto, показывай свой код, pse.
Буду признателен за помощь.
С уважением
--------------------
FlotskiySk k
PM MAIL   Вверх
Exception
Дата 24.3.2005, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Цитата(Mephisto @ 22.3.2005, 18:29)
буфер обмена постоянно обнуляется

Ммм да...
Mephisto, ждем smile
PM   Вверх
Mephisto
Дата 2.4.2005, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Код
Option Explicit
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function BitBlt Lib "gdi32" _
    (ByVal hDestDC As Long, ByVal x As Long, _
    ByVal y As Long, ByVal nWidth As Long, _
    ByVal nHeight As Long, ByVal hSrcDC As Long, _
    ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Private Sub ScreenShot()
    Dim hDesk&, hDeskDC&, pNew As IPicture
    hDesk = GetDesktopWindow
    hDeskDC = GetDC(hDesk)
    Set pNew = Me.Image
    BitBlt pNew.CurDC, 0, 0, 1024, 768, hDeskDC, 0, 0, vbSrcCopy
    'SavePicture pNew, "C:\Temp\Screen.bmp"
    DeleteDC hDeskDC
    Set pNew = Nothing
End Sub

Private Sub Form_Load()
    ScreenShot
End Sub

Enjoy.

Это сообщение отредактировал(а) Mephisto - 2.4.2005, 23:07
PM   Вверх
Exception
Дата 3.4.2005, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



+1, Mephisto
PM   Вверх
Flotskiy
Дата 4.4.2005, 05:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Добрый день всем!
Mephisto, благодарю, и к этому топику еще один вопрос, если можно:
копии экрана записываются в папку Bitmaps, как бы при достижении, например, 300 Мб
из папки удалить все и пусть опять записываются новые?
С уважением.

--------------------
FlotskiySk k
PM MAIL   Вверх
cardinal
Дата 5.4.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Модератор: Пожалуйста, один топик - один вопрос.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Flotskiy
Дата 6.4.2005, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Добрый день всем!
cardinal, я думал, что мой вопрос относится к этой же теме.
С уважением.
--------------------
FlotskiySk k
PM MAIL   Вверх
Вадян!
Дата 15.4.2005, 02:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 27.3.2005

Репутация: нет
Всего: нет



Flotskiy
Мне прога тоже понравилась, наверное былобы ещё круче еслиб она не по времени копировала раб.стол а реагировала на какую либо активность рабочего стола!
Я вобщето пока только учюся так что при всём желании не смогу написать такой код
Run-time error
если можешь покажи что нужно дописать!???!!!
smile
PM MAIL   Вверх
Flotskiy
Дата 15.4.2005, 05:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Доброе утро всем!

Вадян!, твоя мысль хороша, надо просить профессионалов, чтобы помогли в данном вопросе. Ребята, подправьте, pse, прогу, если можно.
С уважением
--------------------
FlotskiySk k
PM MAIL   Вверх
Exception
Дата 15.4.2005, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Цитата
еслиб она не по времени копировала раб.стол а реагировала на какую либо активность рабочего стола!

Она копирует не рабочий стол, а как ты уже понял, весь экран. Реагировала на что например?
PM   Вверх
Вадян!
Дата 15.4.2005, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 27.3.2005

Репутация: нет
Всего: нет



Run-time error
Цитата
Она копирует не рабочий стол, а как ты уже понял, весь экран. Реагировала на что например?


Следить например за изменением экрана
Может я несу полный бред, так что не предавайте сильного значения моим словам в этом топике!!!

smile smile smile

PM MAIL   Вверх
Mephisto
Дата 15.4.2005, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



За изменением экрана не поллучится, а вот копировать только активную фому возможно! Для этого необходимо немного поравить мой код.

П.с. Кстати, мой код делает копию экрана только 1024х768.
Чтобы исправить необходимо снять реальные размера экрана, в случае с формой - регион формы. Ещё, копируются только формы которые не используют индексированные цвета!
PM   Вверх
jurasiks
Дата 10.2.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



А какой код добавить, чтобы скрин делался только по нажатии на кнопку (на клавиатуре) и сохранялся в формате JPG?
PM   Вверх
cardinal
Дата 10.2.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Код

Private Sub Command1_Click()
...
End Sub



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
jurasiks
Дата 11.2.2006, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



У меня ничего не получается, в первом коде пишет, что мол "комменты не там где надо", а второй ничего ен создаёт. Может, кто выложит пример файла (в формате VB)? Буду благодарен. smile
PM   Вверх
Exception
Дата 11.2.2006, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Что именно тебе нужно? Мой код отлично работает.
PM   Вверх
jurasiks
Дата 12.2.2006, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



[deleted]

Это сообщение отредактировал(а) jurasiks - 30.7.2011, 21:16
PM   Вверх
Exception
Дата 12.2.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



То есть в файле vb? Тебе для VB .NET нужно что ли?
И что именно не работает? Так я ничего сказать не могу, где и какая возникает ошибка?
PM   Вверх
jurasiks
Дата 13.2.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



[deleted]

Это сообщение отредактировал(а) jurasiks - 30.7.2011, 21:16
PM   Вверх
Exception
Дата 13.2.2006, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Тьфу. Пролистай тему от начала до конца. В начале я давал полностью рабочий код. Что именно тебя в нем не устраивает? Уж скопировать самому в редактор, думаю, нетрудно smile .
PM   Вверх
jurasiks
Дата 13.2.2006, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



deleted

Это сообщение отредактировал(а) jurasiks - 30.7.2011, 21:16
PM   Вверх
Exception
Дата 13.2.2006, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



На какой строке? Я так надеюсь, ты таймер на форму кинул?
PM   Вверх
jurasiks
Дата 13.2.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



deleted

Это сообщение отредактировал(а) jurasiks - 30.7.2011, 21:17
PM   Вверх
cardinal
Дата 13.2.2006, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Exception @ 13.2.2006, 15:30 Найти цитируемый пост)
Я так надеюсь, ты таймер на форму кинул?

smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
jurasiks
Дата 13.2.2006, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



deleted

Это сообщение отредактировал(а) jurasiks - 30.7.2011, 21:17
PM   Вверх
cardinal
Дата 13.2.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99





--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
jurasiks
Дата 13.2.2006, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



deleted

Это сообщение отредактировал(а) jurasiks - 30.7.2011, 21:17
PM   Вверх
cardinal
Дата 14.2.2006, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



jurasiks, открой любую книгу по VB и хоть немного поразбирайся... Я считаю, что вопрос решен.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Exception
Дата 14.2.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Глянь событие формы KeyPress. Больше на глупые вопросы отвечать не буду.
PM   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0845 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.