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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Редактирование программы, "Копия экрана" 
V
    Опции темы
Flotskiy
Дата 8.9.2006, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Добрый день всем! Вот код программы, которая копирует экран монитора.
Код

'----------------------------------------------------------------------
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
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 WM_MOUSEMOVE = &H200
Private Const VK_SNAPSHOT = &H2C
Private Const NIF_ICON = &H2
Private Const NIF_MESSAGE = &H1
Private Const NIF_TIP = &H4
Private Const NIM_ADD = &H0
Private Const NIM_DELETE = &H2
Private Type NOTIFYICONDATA
        cbSize As Long
        hwnd As Long
        uID As Long
        uFlags As Long
        uCallbackMessage As Long
        hIcon As Long
        szTip As String * 64
End Type
Private Const WM_LBUTTONDBLCLK = &H2030
Private nid As NOTIFYICONDATA

Private Sub cmdHide_Click()
Me.Hide
End Sub

Private Sub Form_Load()
On Error Resume Next
tmrMain.Enabled = False
tmrMain.Interval = 15000 'Val(txtInterval) * 1000
tmrMain.Enabled = True

App.TaskVisible = True 'False
Dim sTip As String
sTip = "Всплывающая подсказка"
With nid
.cbSize = LenB(nid)
.hIcon = Me.Icon.Handle
.hwnd = Me.hwnd
.szTip = Left$(sTip, 63) & Chr$(0)
.uCallbackMessage = WM_MOUSEMOVE
.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
.uID = 0
End With
Shell_NotifyIcon NIM_ADD, nid
Me.Hide

End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, y As Single)
If X / Screen.TwipsPerPixelX = WM_LBUTTONDBLCLK Then Me.Show
End Sub

Private Sub Form_Unload(Cancel As Integer)
Shell_NotifyIcon NIM_DELETE, nid
End Sub

Private Sub tmrMain_Timer()
On Error Resume Next
Static i As Integer
i = i + 1
Clipboard.Clear
DoEvents
keybd_event VK_SNAPSHOT, 0, 0, 0
DoEvents
SavePicture Clipboard.GetData(vbCFBitmap), "E:\CopyEk\Bitmaps\" & i & ".bmp"
Clipboard.Clear
End Sub
'------------------------------------------
Копии производит по адресу:
"E:\CopyEk\Bitmaps\" & i & ".bmp" и в корневой каталог диска C:
Как отменить копирование на С: ?
Извините, теги почему-то не работают
Подскажите, pse



Это сообщение отредактировал(а) Akina - 8.9.2006, 12:06
--------------------
FlotskiySk k
PM MAIL   Вверх
Тутанхамец
Дата 8.9.2006, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



Не понял проблему. У меня твоя прога копирует в с:\temp\ и никуда больше. 

P.S. В темп - потому что я путь поменял.

Это сообщение отредактировал(а) Тутанхамец - 8.9.2006, 09:11
PM MAIL   Вверх
Flotskiy
Дата 8.9.2006, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Проблема в том, что я указал для копий путь другой, "E:\CopyEk\Bitmaps", куда он и копирует, но и копирует также на С: в корень. Вот это бы и не нужно. Пусть копирует только по указанному пути (Е:\...). На диске С: мало места, а фотки тяжелые. Вот из таких соображений нужна переделка

Это сообщение отредактировал(а) Flotskiy - 8.9.2006, 09:25
--------------------
FlotskiySk k
PM MAIL   Вверх
mihanik
Дата 8.9.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Насколько я понял, запись копии экрана происходит по команде SavePicture.


Код

SavePicture Clipboard.GetData(vbCFBitmap), "E:\CopyEk\Bitmaps\" & i & ".bmp"



Следовательно закомментируй её и рисунок будет висеть у тебя в клипбоарде до тех пор, пока ты с ним сам что-нибудь не сделаешь...

Вопрос не совсем понятен...

Добавлено @ 09:25 
Цитата(Flotskiy @  8.9.2006,  09:22 Найти цитируемый пост)
но и копирует также на С: в корень


А...
Понятно...


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Тутанхамец
Дата 8.9.2006, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



Так у меня-то почему в корень не копирует? Путь ставлю любой. Хоть на F, хоть на C.
PM MAIL   Вверх
mihanik
Дата 8.9.2006, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Чё-т торможу сегодня...
1. Создал стандартный проект
2. Скопировал твой код на форму.
3. Контролов не создавал...
4. Запустил прогу.
5. Она появилась в трее.
6. не понял "как заставить её фоткать".
7. Остановил прогу.

Так как заставить её фоткать?




--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Тутанхамец
Дата 8.9.2006, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



Таймер tmrMain поставь на форму. Задай его interval=100. При загрузке формы заремь следующие строки:

Код

tmrMain.Enabled = False
tmrMain.Interval = 15000 'Val(txtInterval) * 1000
tmrMain.Enabled = True



И наслаждайся плодящимися со скоростью 10 герц фотками.)
PM MAIL   Вверх
Flotskiy
Дата 8.9.2006, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Не знаю, что делать. Подробнее:
На диске Е: стоит папка "CopyEk" с программой и папкой "Bitmaps",  в которую копируются фотки и они же копирутся на диск С: одновременно. Ведь никто не просит копировать на С:
PS:
На форме стоит таймер с именем "tmrMain".  В таймере интервал задавать не надо, он уже задан в коде.




Это сообщение отредактировал(а) Flotskiy - 8.9.2006, 11:53
--------------------
FlotskiySk k
PM MAIL   Вверх
Тутанхамец
Дата 8.9.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



Напрягает ждать 15 секунд - потому и интервал поменял. У меня когда-то была программа, которая следит за содержимым папки и приводит в соответствие другую папку. Типа зеркалка. У тебя нет  чего-нибудь в этом роде? Похоже, что проблема в твоей машине. У меня копирует только в указанную папку и никуда больше. 
PM MAIL   Вверх
Flotskiy
Дата 11.9.2006, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Добрый день всем! Нашел ответ на данный топик.
Для создания Help.ов для программ нужны были снимки активных форм. Для этого в "Трее"  на компе есть загруженная программа "Screen.exe". И вот, при згрузке программы копировать экран, почему-то запускалась и "Screen.exe", делая тоже снимки.  Посмотрите прогу, может кому пригодится, она имеет некоторые настройки.
Всего доброго всем.

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  screen.exe 64,00 Kb
--------------------
FlotskiySk k
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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