Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Рисунок с рабочго стола по LAN


Автор: Budy 7.12.2004, 10:51
:Приветствую
Делаю прогу-подглядывалку. Нужно 1 проге получать снимок рабочего стола на определенном компе (известен IP).
У меня такая идея: кинуть 2ую прогу на этот комп и пускай она фотографирует и посылает.
Работаю с "TServerSocket и TClientSocket" 'ами.
Картинка фотогарфируется, сохраняется и через каждые 2 секунды посылается (Timer1.Interval=2000). 1ой прогой принимается, сохраняется и отображается.

Ну, буквально, через 10-14 секунд вылазит ошибка (на 5-15 мс) у 2ой проги, неуспеваешь прочесть и прога закрывается.

Если че не поняли, прошу помочь написать прогу "передачи рисунка рабочего стола какможно быстрее и чтоб без ошибок"
Во!

Автор: Плаха 7.12.2004, 11:09
тебе наверное надо было написать в раздел "Delphi: WinAPI и системное программирование"

Автор: Satana 7.12.2004, 11:10
Budy А не проще не изобретать снова велосипед, и скачать уже готовое?

Автор: ~FoX~ 7.12.2004, 11:11
Budy
По ощущениям, ошибка связана с сетью или с процедурой снимка стола?
Попробуй увеличить интервал, скажем на 3-5 сек.
Везде вотки ProcessMesanges.

Автор: Budy 9.12.2004, 14:38
Satana, а что ты можешь посоветовать?

Автор: Satana 9.12.2004, 14:53
Budy раз http://files.com.ua/index.php?page=1&cid=95
два http://russiantrojans.narod.ru/RAT/IpNet248.html

ну и три http://www.yandex.ru/yandsearch?&stype=www&text=%f1%ed%e8%ec%ee%ea+%fd%ea%f0%e0%ed%e0+%f3%e4%e0%eb%e5%ed%ed%ee%e3%ee+%ea%ee%ec%ef%fc%fe%f2%e5%f0%e0


Автор: Bes 11.12.2004, 13:31
Нет, конечно приятно написать такую программу самому хотя бы для самообразования.
Когда я этим занимался я везде, где только можно впихивал try except...
А вообще если хотите мое мнение, то я в свое время отказался от снимка десктопа поскольку интересно конечно, но не информативно. Пусть лучше твоя прога присылает дерево каталога с возможностью скачивать и закачивать файлы, список запущенных приложений. заголовки окон и редактор реестра для возможности обновлять версии троянца. :-)
Может если еще не все забыл -подскажу что....

Автор: Medved 11.12.2004, 14:44
Тема перенесена из общих вопросов. Правила форума: http://forum.vingrad.ru/index.php?s=&act=SR&f=27

Автор: devmstr 14.12.2004, 07:55
Если хочешь очень быстро, можешь написать Mirrior Driver. Быстрее не бывает, так например работает RAdmin. Но быстро ты врядли его напишешь, потому что там гемороя..
smile.
Но зато с драйверами будешь на ты smile.
Больше инфы в DDK.
Удачи!

Автор: Akella 4.1.2005, 12:45
снимок экрана
Код

procedure TForm1.Button1Click(Sender: TObject);
var
 DeskTop: TCanvas;
begin
 DeskTop := TCanvas.Create;
 try
   with DeskTop do
     Handle := GetWindowDC(GetDesktopWindow);
   with PaintBox1.Canvas do
     CopyRect(Rect(0, 0, 200, 200),
       DeskTop,
       Rect(0, 0, 200, 200))
 finally
   DeskTop.Free;
 end
end;


затем этот снимок посылаем серверу на другой комп.

Отсылка файлов через сокеты (потоки) где-то есть на форуме
Добавлено @ 12:47
Код

{Посылка файла через сокет}
procedure SendFileBySocket(filename: string);
var
 srcfile: TFileStream;
begin
 {Открываем файл filename}
 srcfile := TFileStream.Create(filename,fmOpenRead);
 {Посылаем его первому подключенному клиенту}
 ServerSocket1.Socket.Connections[0].SendStream(srcfile);
 {Закрываем файл}
 srcfile.Free;
end;

Метод SendStream используется не только сервером, но и клиентом (ClientSocket1.Socket.SendStream(srcfile))


Я такое уже год назад писал (задра...вал) своих бухгалтеров, так что дерзай
Добавлено @ 12:51
саначала можно послать размер файла

Автор: Akella 4.1.2005, 12:54
держи пример пересылки файлов через TCP/IP

Автор: Budy 14.1.2005, 19:32
Во спасибо! Клево получается. Короче вместо 1024x768 (размер экрана юзера) сжимаю до 640x480, кач-вом 256color (1 байт) идет аж до 20 кадров в сек. (а больше пока и не пробовал) при скорости LAN 100 мб/с.
Получается обалденно! Вот тока немного сеть тормозить начинает, ну ето уже не мои проблемы smile
Получилась классная подглядывалка! smile

Автор: Akella 21.1.2005, 13:59
http://forum.vingrad.ru/index.php?showtopic=21411
намек понял? smile

Автор: SoWa 1.2.2005, 15:34
Слушай, скинь мне на мыло([email protected]) такую гляделку (повод: если я фоткал экран каждые две сек. у меня перегружался процессор и RESET!)ПЛИЗЗЗ!!!

Автор: Akella 24.2.2005, 09:57
Budy, кидай пример сюда, не жадничай.

Автор: Александра 24.2.2005, 11:14
да, кстати, кто может предложить алгоритм очень быстрого и качественного уменьшения размера картинки? хочу делать снимок и передавать на КПК для управления компьютером. Знаю что аналог есть, но хочу свое, ибо учуся ))

Автор: RA 24.2.2005, 14:07
а Zlib чем плох ?

Автор: ShuVaS 24.2.2005, 15:59
Внатуре....выложи Бади или хоть кинь на мыло [email protected] . Интересно очень!

Автор: Александра 24.2.2005, 16:30
RAdmin
если не ошибаюсь, там ф-ии компрессии, а мне нужно сжатие картинки по размерам очень быстрое... а с компрессией пока не знаю, пишу на .NET CF, пока готового решения не знаю...

Автор: ShuVaS 26.2.2005, 23:23
Нуу...если никто примера выкладывать не хочет помогите понять плз.
Я так понимаю есть клиент и сервер.На сервере все фоткаеться - dsergey показывал как.Но что дальше ?!Нада сохрянять надиск , переправлять и открывать у клиента ?Или как по другому сделать то..
ЗЫ Проьба помочь..Если кто юзал Радмин ,я хочу попробовать что нибудь в этом роде сделать
ЗЫЫ Пример,оьязуюсь выложить для публичного рассмотрения =)

Автор: VaRela 20.3.2005, 10:50
Цензура На кой Цензура вы по таймеру то десктоп грабите? У вас наверное загрузка проца при этом под 100% smile. Не проще ли хуки в винде поставить? Как только на десктопе что-нить поменялось, снять картинку, сравнить с предыдущей и отправить по сети ТОЛЬКО ИЗМЕНЕНИЯ (рекомендую способ сжатия подобный в старых добрых FLI/FLC файлах) Так и проц не загружен и сеть. В свое время писал. Основная проблема будет именно с хуками, нужно их грамотно развешивать.

Удачи

М
 
Просьба на будущее... быть повежливее по отношению к другим участникам.

Автор: Guest 5.4.2005, 09:15
2 VaRela : Может, подкинешь исходничек рабочий?
===
А что, если резать скриншот на квадраты, смотреть изменения по сравнению с предыдущим и пересылать только измененный?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)