Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 3 4 [Все]   Вниз
  Печать  
Автор Тема: программа удалённого администрирования  (Прочитано 88044 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« : 28-01-2011 05:49 » 

Хотелось бы услышать советы насчёт вот такого вопроса

Мне через некоторое время предстоит делать программу удалённого администрирования (простенький вариант TeamView или RAdmin) , и хочу заранее разузнать в общем виде, возможно ли на Qt кроссплатформенно организовать основных "китов"

1) работа с MySQL
2 управление мышью из программы без участия реальной мыши
3) то же самое для клавы

Если что-то из этого не реализуется кроссплатформенно, то мне придётся выбрать MFC+WinAPI (разработка всё равно сейчас предполагается чисто под винду)
« Последнее редактирование: 07-03-2011 09:23 от Алексей1153++ » Записан

zubr
Гость
« Ответ #1 : 28-01-2011 07:10 » 

Я делал недавно, правда там просто удаленный монитор, использовал WinApi + GDI+(для админки).
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 28-01-2011 07:25 » 

С ВинАПИ то вопросов нет Улыбаюсь Я именно про для Qt хочу узнать - возможно ли такое в ней
Записан

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #3 : 29-01-2011 05:45 » 

Леш, вот полная дока по Qt http://doc.trolltech.com/4.6/index.html. У меня версия 4,6 Точно под свою версию нужно только поменять цифирку в ссылке.
Ответ на твой первый вопрос содержится тут http://doc.trolltech.com/4.6/sql-programming.html
На второй, нужно играться с классом QCursor http://doc.trolltech.com/4.6/qcursor.html. Метод setPos.
С третьим вопросом не сталкивался Улыбаюсь
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 29-01-2011 10:11 » 

Finch, а там ничего про mysql не упоминается Улыбаюсь

Насчёт QCursor - он прекрасно позволяет позиционировать курсор, но вот щёлкнуть им низя. Или я не нашёл, как. Это же нужно виртуальную mousePressEvent для виджета вызвать, а как это межпроцессорно сделать ? )
« Последнее редактирование: 29-01-2011 13:26 от Алексей1153++ » Записан

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #5 : 29-01-2011 11:01 » 

Леш, Вот пример написанный на основе хелпа Улыбаюсь Кстати, в .pro файл нужно добавить строчку QT += sql
Код: (C++)

#include <QApplication>
#include <QtSql>

 int main(int argc, char *argv[])
 {

     QApplication app(argc, argv);
     QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
     db.setHostName("localhost");
     db.setDatabaseName("******");
     db.setUserName("**********");
     db.setPassword("*************");
     bool ok = db.open();
     QSqlQuery query("show tables",db);
     query.exec();
     while (query.next()) {
         QString name = query.value(0).toString();
         qDebug() << name;
     }

     db.close();
     return 0;
 }
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 29-01-2011 13:27 » 

Finch, спасибо, пригодится )
Записан

Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #7 : 31-01-2011 05:01 » 

Алексей1153++, а чем всякие VNC/RDP/XDMCP не устараивают?
Записан

Странно всё это....
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 31-01-2011 05:06 » 

Антон (LogRus), а что это ?
Записан

Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 31-01-2011 05:12 » 

vnc - одна из старейших программ удаленного администрирования. Сейчас вроде с окрытым кодом. Кросспатформенная.
RDP - стандартный протокол Windows для удаленного рабочего стола (Remote Desktop Protocol). Соответственно в стандартные поставки Windows встроен клиент и сервер (для дестопов - только на активное подключение, как Помощник; для серверов - на несколько независимых)
C последним не сталкивался.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #10 : 31-01-2011 05:49 » 

так нет. Заказчик заказал программу, а зачем - это у же не моё дело.
Записан

Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 31-01-2011 06:25 » 

Заказчик заказал программу, а зачем - это у же не моё дело.
Offtopic:
Как раз про это сейчас дискуссия в твоей теме про фриланс Улыбаюсь
https://forum.shelek.ru/index.php/topic,25230.msg254495.html#msg254495
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 31-01-2011 06:33 » 

Kivals, сильно сомневаюсь, что он не в курсе.

1) ему в топике с заказом до меня это говорили пара человек - что есть такие-то, такие-то программы.
2) само задание "сделать <...> наподобие TeamView, только упрощённо"
Записан

Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 31-01-2011 07:06 » 

Алексей1153++, я и не говорю что он не в курсе - просто ИМХО стоит выяснить зачем оно ему нужно. А то может оказаться что "упрощение" сделано не в том направлении, как он себе думал.

Добавлено через 2 минуты и 7 секунд:
Кстати: на мой взгляд основная фишка TeamView (в отличии от того же vnc и Radmin) - это работа через сервер из-за роутеров и файрволов, т.е. ты не знаешь где находится удаленный комп - только его ID и пароль.
« Последнее редактирование: 31-01-2011 07:08 от Kivals » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #14 : 31-01-2011 07:11 » 

Kivals, да, так и предполагается - через сервер. Но с возможностью и напрямую
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 31-01-2011 12:01 » 

Посмотрел скриншоты TeamViewer на их сайте.

ИМХО простенький вариант TeamView или RAdmin потребует написания кучи кода. Плюс еще сюда необходимо добавить развертывание стенда для тестирования, а так же написание и отладка сервера через который будет работать этот простенький вариант. Одним словом, работы явно не на пару вечеров. Хотя могу и ошибаться...

Но если Алексей1153++ доведешь данную софтину до стабильного состояния, то можешь смело выпускать коробочную версию и составлять конкуренцию тому же TeamView...
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 31-01-2011 12:30 » 

а может проще купить teamview, чем платить за разработку? или заплатить, тем же teamview за нужный функционал.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 31-01-2011 12:37 » 

Sla, вот и я о том же. На том же сайте TeamView Business версия стоит 20 кило рублей. Если Леха, скажем за 2 недели, сделает упрощенный вариант TeamView заказчику за 5 кило рублей, то конечно заказчику выгодней у Лехи получить упрощенный вариант, пускай если и придется ждать 2 недели. Еще один плюс для заказчика, он получает в распоряжение исходники. А имея на руках исходники стабильной рабочей версии, пускай и упрощенной, это уже как минимум возможность добавления дополнительного функционала, что НАМНОГО БЫСТРЕЕ чем писание с нуля...
Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #18 : 31-01-2011 13:14 » 

Serg79, Sla, еще как вариант зачем это может быть нужно заказчику - встраивать в какой-то уже существующий (или разрабатываемый) проект.
Записан
zubr
Гость
« Ответ #19 : 31-01-2011 13:22 » 

Простенький удаленный монитор (функционал только монитора) где в комплект входили: клиентская часть (на стороне клиента), просмотрщик на стороне админа, админка на стороне сервера (на PHP) у меня занял на разработку полноценных 3 недели (120 часов). Много времени ушло на корректный перехват графики в клиентской части. К вопросу зачем это нужно было заказчику - это был один из модулей слежения за сотрудниками в целях безопасности от утечек информации, там также были модули слежения за email, принтером, скайпом.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #20 : 31-01-2011 14:43 » 

Serg79, а никто сказку и не обещал ) Тимом я пользовался немного, представлю. А удалённый сервер есть - заказчика Улыбаюсь

про сроки и цену не скажу, чтоб не сглазить )) Насчёт написания с нуля: ему нужен свой код, которым не нужно будет ни с кем делиться. По этой же причине, по ходу дела, выбор опять таки ложится на MFC

Добавлено через 57 секунд:
и вообще - мне на его мотивации немного без разницы. Мне от этого светят деньги и опыт. Он же добровольно заказывает, выбрав из конкурентов. Никто не отобирает ничего Улыбаюсь
« Последнее редактирование: 31-01-2011 14:44 от Алексей1153 » Записан

Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 31-01-2011 14:56 » 

ему нужен свой код, которым не нужно будет ни с кем делиться.
Если код должен быть лицензионно чистым (чтобы потом ни от кого не было претензий) то это должно было выставляться как доп.условие. Или ему все равно?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #22 : 31-01-2011 15:17 » 

В лицензии от Qt сказано, что код должен быть предоставлен по первому требованию. А студийный MFCшный код, когда я ему его передам, он может скомпилить на своей лицензионной студии , например, и никто ничего не потребует
Записан

Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #23 : 31-01-2011 15:27 » 

Цитата: Serg79
Если Леха, скажем за 2 недели, сделает упрощенный вариант TeamView заказчику за 5 кило рублей
Хм...

Это значит, что месячная выручка Лёхи составляет около 10 тыс. рублей, из которой надо вычесть расходы на личную технику (её амортизацию), софт (тоже амортизация, если легально куплен) и налоги (если он их платит). Если же Лёха это будет делать через фирму, то половину (если не больше) заберёт она - на ней ещё все отчисления в соцфонды, дополнительные налоги, коммуналка, возможно, аренда помещения.

Вот лично я в проекте, где в месяц чистыми выходит 0-5 тыс. рублей, участвовать не буду - по экономическим причинам. А у Лёхи ещё семья, дитё.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #24 : 31-01-2011 15:33 » 

Леш - я имел в виду что ты можешь использовать куски чужого кода в этом проекте, которые выполняют некоторую нужную тебе функцию. А код этот может быть опубликован в открытом доступе под определенной лицензией (GPL, FreeBSD, ...) - а эта лицензия накладывает требования к результату. При этом код может компилиться так, что даже в скомпиленном варианте остаются маркеры, по которым можно вычислить наличие "своего" кода в чужом проекте (причем не обязательно это будет тупое сравнение с какой-то бинарной строкой). Так вот вопрос: насколько это волнует заказчика и задумывался ли он об этом вообще?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 31-01-2011 15:55 » 

Dimka, в этом месяце уже почти 20тыс на фрилансе вышло. Я же не одним в упор проектом занимаюсь ))

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

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #26 : 31-01-2011 18:33 » 

Да не Алексей1153++, все правильно говоришь. Если соотношение потраченное время ~ полученные деньги тебя устраивает, то что тут рассуждать то.

P.S. но тестовый стенд тебе рано или поздно по любому разворачивать придется для тестирования. А производить тестирование с удаленным сервером заказчика, это еще тот гемор.)))
Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #27 : 31-01-2011 19:52 » 

Serg79, в эпоху виртуалок тестовый стенд - это не проблема Улыбаюсь
Алексей1153++, обрати внимание  - приведенные мною примеры лицензий бесплатны Улыбаюсь Но требуют раскрытия полученного результата...
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #28 : 01-02-2011 06:36 » 

Serg79, что его разворачивать то ) Локалка есть, два компа (плюс третий в виртуалке)

Kivals, ага
Записан

zubr
Гость
« Ответ #29 : 01-02-2011 07:50 » 

Я и этого не использовал. На первом этапе достаточно было IIS, затем для тестирования проги в условиях близких к боевым, использовал халявный тестовый месячный хостинг на одном из хостинговых серверов.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #30 : 01-02-2011 07:56 » 

zubr, что за IIS ?
Записан

zubr
Гость
« Ответ #31 : 01-02-2011 08:05 » 

Компонент винды http://ru.wikipedia.org/wiki/IIS
Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #32 : 01-02-2011 10:01 » 

zubr, а зачем IIS в этом проекте? Может ты чего напутал? Меня одолевают смутные сомнения
Записан
zubr
Гость
« Ответ #33 : 01-02-2011 10:27 » 

IIS использовался только для локального тестирования, потому как связующим звеном между 2-мя и более компами был вебсервер.
Записан
DR.XXX
Помогающий

kz
Offline Offline

« Ответ #34 : 01-02-2011 17:04 » 

всем привет! а вообще с чего можно начать чтобы сделать наподобие vnc? упрощенной вариант хотябы. В каком направлений двигаться, что изучать? подскажите пож-ста
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #35 : 01-02-2011 17:27 » 

По-моему для общего развития достаточно познакомиться с архитектурой такой старой системы, как X Window, которая является прямым потомком архитектуры алфавитно-цифровых терминалов для UNIX-машин. В этой архитектуре изначально заложена сетевая составляющая, и по-моему оттуда можно извлечь здравые идеи.

По большому счёту сейчас на похожем принципе построены веб-приложения. Всё новое - хорошо забытое старое.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Санычъ
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #36 : 21-02-2011 17:25 » 

Уважаемые магистры!
Подскажите, пожалуйста, насколько безопасен teamviever?
Где-то в инете его называют трояном. А года три назад "махали" руками, крестясь.
А нужно что-то подобное.
"Удаленный помощник" не позволил открыть другой ПК (Виста). "Исключения для помощника" включалось.
Записан

Благодарю за внимание...
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #37 : 21-02-2011 19:28 » 

Санычъ, а чем стандартный "Удалённый рабочий стол" (Remote Desktop) не устраивает? Работает от XP до 7 (включаяя серверные вариации) в любом направлении.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Санычъ
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #38 : 21-02-2011 19:39 » 

Санычъ, а чем стандартный "Удалённый рабочий стол" (Remote Desktop) не устраивает? Работает от XP до 7 (включаяя серверные вариации) в любом направлении.
"Вы не поверите" - меня все устроит. Подскажите - как?
Немного некомфортен "неответ" про Тим-ку
Записан

Благодарю за внимание...
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #39 : 21-02-2011 20:19 » 

Что значит как?

Запускаешь RDE, вводишь IP целевого компа. Фсё. Что там можно сделать "не так"?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #40 : 21-02-2011 20:35 » 

На удаленном компе должна быть запущена соотв. служба, разрешено подключение и может потребоваться выдача прав на подключение. По умолчанию, все это запущено и разрешено - нужен только логин/пароль от локального юзера на удаленной машине. Мешать могут различные файрволы.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #41 : 22-02-2011 05:46 » 

... вводишь IP целевого компа...
Если комп не имеет реально IP - то не так просто (нужно на роутере настраивать проброс порта 3389). TeamViewer в этом случае умеет строить соединение через сервер.
Санычъ, про безопасность TV ничего не скажу - не знаю. Но пользуюсь: только для пользовательских компов (там особо ценного ничего нет)
Записан
Санычъ
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #42 : 22-02-2011 07:49 » 

Читаю в "Справка и поддержка":
Цитата
Примечания
На компьютерах под управлением Windows Vista Starter, Windows Vista Home Basic, Windows Vista Home Basic N или Windows Vista Home Premium использование подключения к удаленному рабочему столу невозможно. В этих выпусках Windows Vista можно создавать только исходящие соединения.
На компьютерах под управлением Windows XP Home Edition использование подключения к удаленному рабочему столу невозможно
Это значит, что для меня (Vista HB) удаленный стол уже не "канает".
...
Про TV несколько лет назад читал на форумах, что Если стоит TV, то любой, имеющий TV, может "без спросу" заглянуть в мой компьютер.
...
Kivals, можно "попользоваться" Вашим пользовательским компом, для "курса молодого бойца" по удаленному помощнику под чутким вашим руководством.
Там нужен файл-приглашение (для меня) и пароль. Или IP (ваш).
Скайп: sanychspb
« Последнее редактирование: 22-02-2011 07:55 от Санычъ » Записан

Благодарю за внимание...
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #43 : 22-02-2011 08:07 » 

Про TV несколько лет назад читал на форумах, что Если стоит TV, то любой, имеющий TV, может "без спросу" заглянуть в мой компьютер.
Может это было "несколько лет назад": сейчас для подключния нужен код доступа (назначается автоматически сервером) и пароль (назначается хозяином компьютера).
Хотя насколько защищен сам протокол (нельзя ли перехватить пакеты и просмотреть что происходит) - не знаю...
Могу порекомендовать поискать какие-то более свежие обзоры, т.к. за последние полтора года по-моему TV поднялся с версии 3 на версию 6.

Удаленным помощником я не пользовался - по RDP подключаюсь только к серверам. Просто теоретичски знаю что он работает по той же технологии...
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #44 : 22-02-2011 08:23 » 

а кто заставляет TV все время запущенным как сервис?
Возникла проблема - тынц, тынц - и стол открыт.

Недостаток RDP в XP - работать может только один пользователь, и с удаленного места не видна рабочего стола

TV работает через сервер, по крайней мере, та версия которая ФРИ. и требует пару: id и пароль. там id - 6 знаков и пароль - 4 Улыбаюсь
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Санычъ
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #45 : 22-02-2011 08:27 » 

Значит без ID и пароля никто не сможет войти?
...
Записан

Благодарю за внимание...
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #46 : 22-02-2011 13:51 » 

Недостаток RDP в XP - работать может только один пользователь, и с удаленного места не видна рабочего стола

Рабочий стол через RDP - без проблем. Именуется подключением к консоли. Или ты имел в виду что-то другое?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #47 : 22-02-2011 13:55 » 

я имею ввиду - что рабочий стол при подключении по RDP доступен только одному пользователю.

Удаленный помощник позволяет подключиться непосредственно к рабочему столу пользователя.

Мне проще воспользоваться чем-нибудь типа vnc либо радмин, чем просить тикет от пользователя
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #48 : 22-02-2011 13:59 » 

Я имел в виду, что непосредственно к рабочему столу пользователя можно подключиться через "подключение к удаленному рабочему столу". Я так хожу из дома на рабочую машину и пользуюсь незакрытыми программами.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
zubr
Гость
« Ответ #49 : 22-02-2011 14:39 » 

Значит без ID и пароля никто не сможет войти?
...

Ну, ребята из TV, однозначно смогут войти.
Записан
Санычъ
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #50 : 22-02-2011 15:07 » 

Спасибо, zubr. Ну его (tv) на фиг...
Буду смотреть radmin

Добавлено через 31 минуту и 43 секунды:
Подскажите на ушко (ЛС), где можно гарантировано скачать radmin?
« Последнее редактирование: 22-02-2011 15:39 от Санычъ » Записан

Благодарю за внимание...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #51 : 04-03-2011 15:05 » 

Для программы удалённого администрирования:

Подскажите, каким образом можно организовать отслеживание изменений на экране, чтобы передавать ведущей машине с водомой

У меня пока единственная мысль: сохранять на Слейве последний считанный битмап экрана, и раз в некий период (~секунда) проверять , какие линии поменялись. Эти линии передавать Мастеру для замены старого содержимого. Но насчёт оптимальности этого решения большие сомнения

Добавлено через 4 минуты и 4 секунды:
или, может, какую-то апишную функцию мониторить ?
« Последнее редактирование: 04-03-2011 15:09 от Алексей1153 » Записан

Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #52 : 04-03-2011 15:41 » 

для затравки
http://www.rsdn.ru/forum/winapi/349871.flat.aspx
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #53 : 04-03-2011 16:37 » 

сейчас попробую )

Добавлено через 1 час, 14 минут и 1 секунду:
ага, чавойта шевелится, спасибо ) Ни драйвера, ни DLL не потребовалось

только вот придётся, похоже, всё равно всё проглядывать, так как явно место изменений не найти сразу

разве что отправлять разницу между предыдущим битмапом и текущим - тогда в случае малых изменений будет куча чёрных областей, которые хорошо ужмутся даже RLE

Добавлено через 35 секунд:
на всякий случай надо будет приделать кнопку "обновить весь экран" )))
« Последнее редактирование: 04-03-2011 17:51 от Алексей1153 » Записан

zubr
Гость
« Ответ #54 : 04-03-2011 19:16 » 

Я в своем ремотемониторе, что только не пробовал и хуки на WM_PAINT и перехват графических функций, миррор-драйвер сразу отмел, потому как требует для установки админских полномочий плюс перезагрузку компа.
Короче, как ни странно, самым эффективным оказался самый простой вариант:
1. Через определенный интервал битмап экрана с уменьшением его в n раз
2. Попиксельное сравнение с предыдущим - первый несовпадающий левый верхний пиксель - координаты lefttop перерисовки
Соответственно первый правый нижний - rightbottom
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #55 : 04-03-2011 19:20 » 

zubr, да, у меня примерно так же выходит. Только можно попробовать оптимизировать при помощи SetWinEventHook (складывать прямоугольники изменившихся окон в течение интервала) + попробую хранить предыдущий битмап и отправлять разницу (ужатую)
Записан

zubr
Гость
« Ответ #56 : 04-03-2011 20:13 » 

zubr, да, у меня примерно так же выходит. Только можно попробовать оптимизировать при помощи SetWinEventHook (складывать прямоугольники изменившихся окон в течение интервала) + попробую хранить предыдущий битмап и отправлять разницу (ужатую)
Не вижу смысла в применении SetWinEventHook. Он все равно все не перехватывает. К примеру юзер вводит в окне текст - здесь SetWinEventHook не поможет, игрущки на рабочем столе просматривать, тоже SetWinEventHook врядли поможет, то есть все равно придется делать попиксельное сравнение. А если делать и то и другое (попиксельное сравнение и SetWinEventHook) - то это лишняя нагрузка на процессор.
Ну я так и делал - начало работы монитора - полный скрин на сервер, затем только скрины изменившейся части экрана с их координатами. Изображение сжимал в jpg перед отправкой на сервер. Просмотр монитора в админке с применением GDI+, что позволяет немного улучшать качество изображения сжатого в jpg.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #57 : 06-03-2011 17:03 » 

как считаете, 25 килобайт в секунду для неизменяющйся картинки - нормальный траф ? Или стоит поковыряться и снизить ?
Записан

zubr
Гость
« Ответ #58 : 06-03-2011 19:16 » 

Для неизменяющейся - что то много.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #59 : 06-03-2011 21:13 » 

Леш, шлется разница или что?
Это ты над RDP-подобным сервисом работаешь?
« Последнее редактирование: 06-03-2011 21:15 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #60 : 07-03-2011 04:59 » 

zubr, да, есть ещё простор для оптимимзации )) Дело в том, что я не проверял на верхний левый и нижний правый углы - вся маска изменившихся битов шлётся. Но уже понятно, куда идти


Ром, делаю простенький аналог для удалённого администрирования - управление мышью, клавой и передача изображения
Шлётся разница, ага. Вернее - маска размером с экран, где изменённые биты установлены, сжимается хорошо

Добавлено через 4 часа, 23 минуты и 42 секунды:
вот ещё вопросы:
1) (необязательный) как в радмине реализуется опция "не показывать обои рабстола" - как он распознаёт, что это им енно пикселы обоев видны?
2) как шифровать трафик - направьте в нужную сторону
3) как решить, что кнопконажатия клавы должны быть направлены к слейву, а не были нажаты для интерфейса программы на мастере ? Я пока сделал галочку, если её поставить - все кнопки летят к слейву, если снять - не летят
« Последнее редактирование: 07-03-2011 09:23 от Алексей1153 » Записан

Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #61 : 07-03-2011 09:32 » 

1) (необязательный) как в радмине реализуется опция "не показывать обои рабстола" - как он распознаёт, что это им енно пикселы обоев видны?

Для этого рендеринг делается не на уровне битовой карты дисплея, а на более высоком. Правда, при этом теряется тема экранного оформления. Впрочем, вряд ли она кому-то интересна.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #62 : 07-03-2011 10:18 » 

Потому, что RDP-сервер встроен в винду и, по сути, является новым десктопом - DC, и имеет доступ ко всем оконным данным, может игнорировать стили, обои и многое другое.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #63 : 07-03-2011 10:51 » 

На самом деле для этого не обязательно влезать в систему очень глубоко.

Много лет назад я участвовал в одном проекте, который жив до сих пор: http://rinel.ru/ . Тогда только что вышла Windows 95, и первая версия класа вышла на ее основе. Учитель мог подключиться к любому ученическому компьютеру, проконтролировать действия ученика и оказать ему помощь, то есть те самые действия, которые умеют делать современные удаленные консоли.

В то время в ходу были 10-мегабитные сети на коаксиальном кабеле, а сетевые карты NE2000 пропускали до 300Кбайт/с, что при наличии 16 рабочих мест в сегменте весьма немного с учетом мультимедийного трафика реального времени. Поэтому сжимали данные, как только могли.

Я занимался аппаратной частью и общей архитектурой комплекса, поэтому не в курсе деталей софта. Но точно помню, что все было написано на Delphi. Никаких специальных драйверов и прочих штучек режима ядра заведомо не было, все делалось на пользовательском уровне. Передавалась не битовая карта, а информация об иконках, окошках, меню и т.д. Трафик получался минимальный даже с учетом убогих характеристик сети.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #64 : 07-03-2011 11:29 » 

у меня всё сделано предельно просто, без драйверов и встраиваний - одно приложение без дополнительных модулей. Использую только функции WinAPI. Рендеринг не делаю - я просто забираю битмап с контекста устройства десктопа (HDC==0)

в принципе, при разностной передаче на обои плевать - только первый кадр будет большой

>>Передавалась не битовая карта, а информация об иконках, окошках, меню и т.д.
сейчас объектов и их внешнего вида развелось столько, что дешевле битмап передать ИМХО )

Добавлено через 8 минут и 35 секунд:
кстати, если переключалка языков с панели задач отправлена в свободное плавание, то она тоже почему-то не берётся с контекста


Добавлено через 59 секунд:
Потому, что RDP-сервер встроен в винду и, по сути, является новым десктопом - DC, и имеет доступ ко всем оконным данным, может игнорировать стили, обои и многое другое.
нет, это в Радмине такая опция. Я не про встроенный в винду говорю Улыбаюсь
« Последнее редактирование: 07-03-2011 11:38 от Алексей1153 » Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #65 : 07-03-2011 12:36 » 

В виндовом RDP тоже можно отключать излишества:





* rdp_settings_experience.png (25.77 Кб - загружено 2017 раз.)
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
zubr
Гость
« Ответ #66 : 07-03-2011 12:58 » 

RDP конечно хорошо, но если этот сервис не включен в системе и система не под админом, а ко всему юзер не должен знать, что его мониторят?
1. Как вариант, можно использовать EnumWindows
2. Криптоапи: CryptCreateHash, CryptHashData, CryptDeriveKey, CryptEncrypt, CryptDecrypt
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #67 : 07-03-2011 14:01 » 

2. Криптоапи: CryptCreateHash, CryptHashData, CryptDeriveKey, CryptEncrypt, CryptDecrypt
хорошо, посмотрю
Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #68 : 09-03-2011 10:19 » 

а где в радмине такая опция?
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #69 : 09-03-2011 11:48 » 

PooH, да, точно, не в радмине, а в TeamViewer


Добавлено через 2 минуты и 35 секунд:
кстати, уже работает  передача сообщений мыши и клавы, а также разностная передача изображения ) . Довёл до 1кБ/с сти статическом экране, пока оставил дальнейшую оптимизацию, надо над другими частями программы поработать пока

Добавлено через 5 часов, 58 минут и 3 секунды:
есть смельчаки, что бы сейчас вышел в чат и потестировал мою программку ? )

Добавлено через 2 часа, 7 минут и 23 секунды:
тестировали с Димкой. Всплыли определённые проблемы
1) тормоза при сдирании кадра с контекста (это фигня, оптимизация)
2) от хрюнделя к семёрке не передаются клавонажатия (тут мысли есть, проверю)
3) когда на семёрке Аэро, то с контекста сдирается лишь чёрный экран. С обычной темой - нормально изображение берётся. Это как победить ?

* tv3.PNG (6.35 Кб - загружено 1677 раз.)
« Последнее редактирование: 09-03-2011 19:56 от Алексей1153 » Записан

Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #70 : 10-03-2011 06:29 » 

Я бы наоборот сказал: с обычной темой картинки нет, картинка передаётся только для старых упрощённых тем Улыбаюсь
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #71 : 10-03-2011 06:42 » 

Dimka, кстати, а локально то не пробовал два клиента через сервер соединить ? )

А насчёт DirectX - я нашёл кое-что уже, вечером буду ковыряться
« Последнее редактирование: 10-03-2011 09:51 от Алексей1153++ » Записан

Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #72 : 10-03-2011 09:49 » 

Алексей1153++, нет, локально не пробовал. И вообще тебе стоит поработать над usability Улыбаюсь
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #73 : 10-03-2011 09:50 » 

а интерфейса ещё нет, пока только функциональность делается
Записан

v2
Помогающий

ua
Offline Offline

« Ответ #74 : 10-03-2011 11:23 » 

3) когда на семёрке Аэро, то с контекста сдирается лишь чёрный экран. С обычной темой - нормально изображение берётся. Это как победить ?
А если "Print Screen" а потом изображение с буфера, или накладно будет.?
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #75 : 10-03-2011 12:15 » 

v2, а буфер-то как портить будет...
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
zubr
Гость
« Ответ #76 : 10-03-2011 12:30 » 

v2, если там DirectX, то PrintScreen не поможет. Попробуй открыть видеоплеер и сделать с него PrintScreen.
Записан
v2
Помогающий

ua
Offline Offline

« Ответ #77 : 10-03-2011 13:53 » 

2) само задание "сделать <...> наподобие TeamView, только упрощённо"
Zubr, вот и будет упрощенно Улыбаюсь
Dimka, да буферу не повезло, но это для того, чтобы пока сделать хоть так и решать другие вопросы, а потом ...

Кроме того, в похожем коде (поиск по картинке места на экране, куда нужно кликнуть) , который я когда-то писал, проблем с Аэро нет, хотя ничего хитрого не использовал.
Код:
ToDc:=Im.Canvas.Handle; //Im:TImage (стандартный Borland'овский :) )
Dc:=GetWindowDC(GetDesktopWindow);
BitBlt(ToDc,0,0,c,d,Dc,a,b,SRCCOPY);

Возможно проблемы с 32bit - 24bit - 16bit  А черт его знает...

Протестировал - всплывающие окна тоже захватывает.





Добавлено через 17 минут и 51 секунду:
Ух! и видео тож Ага
« Последнее редактирование: 10-03-2011 15:31 от v2 » Записан
Санычъ
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #78 : 11-03-2011 09:25 » 

Господа магистры, Саныч вроде нашел  решение проблемы просмотра (хотя бы) рабочего стола на удаленном пк.
В скайпе есть функция в видеозвонке "Демонстрация экрана", которую "должен" включать визави.
...
Правда, еще не опробовал, но , думаю, качество д.б. лучше, чем в TV.
...
Спасибо. Буду навещать )))
Записан

Благодарю за внимание...
zubr
Гость
« Ответ #79 : 11-03-2011 10:01 » 

v2, этот код с DirectX не прокатит, будет черный экран на месте окна видеоплеера.
Санычъ, качество в скайпе не лучше чем чем в TV и как мне показалось тормознутее.
Записан
v2
Помогающий

ua
Offline Offline

« Ответ #80 : 11-03-2011 10:29 » 

zubr, не знаю, но 3D шахматы в W7 и "гаджеты" и видеоплееры с видео - все съедает и не давится.
Если интересно, сделаю тестовое приложение или проект -  посмотришь.
Записан
Санычъ
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #81 : 11-03-2011 14:51 » 

Санычъ, качество в скайпе не лучше чем чем в TV и как мне показалось тормознутее.
zubr, качество видео в скайпе значительно лучше, чем в TV. Но тормоз жуткий.
С чем это может быть связано?
Плачу за 5мбит...
Записан

Благодарю за внимание...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #82 : 11-03-2011 16:33 » 

Ещё с директом не разбирался (вчера валялся с температуркой чойта), а сейчас провёл пару экспериментов.
1) винамповское окно с видео ожидаемо чёрное. Однако окно со "светомузыкой" передаётся
2) запустил контру в полноэкранном режиме - прекрасно передаётся. Как так
3) клавиши не передавались - разобрался вроде, теперь передаются. Кстати, корректно ли я это делаю:

Код:
LRESULT CALLBACK HOOKfunc(int code, WPARAM wParam, LPARAM lParam)
{
if(code>=0)
{

::CallNextHookEx(m_keyHOOK,0,0,0);

//передаю по сети
//...

return 1;
}

return ::CallNextHookEx(m_keyHOOK,code,wParam,lParam);
}
Записан

zubr
Гость
« Ответ #83 : 11-03-2011 17:14 » 

Код:
LRESULT CALLBACK HOOKfunc(int code, WPARAM wParam, LPARAM lParam)
{
if(code < 0)
        return ::CallNextHookEx(NULL,code,wParam,lParam);
       

//передаю по сети
//...

return ::CallNextHookEx(NULL,code,wParam,lParam);
}
Так корректнее будет.
m_keyHOOK нет смысла передавать, в NT системах он игнорируется.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #84 : 11-03-2011 17:33 » 

игнорируется - это пусть, но мне не нужно, чтобы отправленные нажатия исполнялись на мастере. Поэтому я делаю

::CallNextHookEx(m_keyHOOK,0,0,0);

на первый взгляд всё работает

Добавлено через 13 дней, 2 часа, 23 минуты и 6 секунд:
возникла ещё одна проблема с клавой:

поставил с великим скрипом и с использованием виртуалки эксперимент с семёркой:

в итоге выяснилось, что клава успешно передаётся в направлениях:

XP -> XP
XP -> 7

но не передаётся в направлении
7 -> XP (попробовал с виртуалки управлять хостом-хрюшкой)
и
7 -> 7  (это попробовать не имею возможности, но по рассказам Зака это так)

Общий вывод – с семёрки никуда не передаётся, а с хрюшки – передаётся хоть куда.

Передачу делаю так: полученные в хуке  параметры code, wParam, lParam передаю по сети, а на том конце собираю структуру INPUT  (в коде - структура struct myKeysINPUT:public INPUT , метод Set() )

Код:
	struct myKeysINPUT:public INPUT
{
union s_pars
{
LPARAM lParam;
struct
{
LPARAM repeat_counter:16;
LPARAM scan_code:8;
LPARAM extended:1;
LPARAM :4;//reserv
LPARAM alt_down:1;
LPARAM prev_was_down:1;
LPARAM was_raised:1;//transition: 0(u->d),1(d->u),
};
};

myKeysINPUT()
{
::memset(this,0,sizeof(*this));
}

myKeysINPUT(const Common::s_e_K2K_MASTERkeyActions::s_OneKeyMove& s)
{
Set(s);
}

void Set(const Common::s_e_K2K_MASTERkeyActions::s_OneKeyMove& s)
{
::memset(this,0,sizeof(*this));
type=INPUT_KEYBOARD;

s_pars Pparse;
Pparse.lParam=s.m_lParam_;

ki.wVk=s.m_wParam_;//virtual code
ki.dwFlags=0;
if(Pparse.extended)ki.dwFlags|=KEYEVENTF_EXTENDEDKEY;
if(Pparse.was_raised)ki.dwFlags|=KEYEVENTF_KEYUP;

// templ.mi.time=0;
// templ.mi.dwExtraInfo=0;
}
};
далее массив полученных структур исполняю в SendInput

Что я забыл сделать (чтобы передача с семёрки тоже стала выполняться)?
« Последнее редактирование: 24-03-2011 19:56 от Алексей1153 » Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #85 : 24-03-2011 20:05 » 

Алексей1153++, так тебе ведь не надо ничего имитировать.

Ты ведь можешь поставить клиентскую часть с хуком на клаву, а клиентской частью отдавать на серверный вариант только события клавы. Т.е написать кейлогер.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
zubr
Гость
« Ответ #86 : 24-03-2011 20:41 » 

1. Хук в 7-ке   не перехватывает клавиатуру или данные теряются при передаче?
2. Хук работает только с GUI-процессами.
3. Хуку доступны только процессы текущего пользователя, если пользователь не админ.
4. Возможно стоит попробовать воспользоваться LowLevelKeyboardProc
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #87 : 24-03-2011 20:52 » 

Ты ведь можешь поставить клиентскую часть с хуком на клаву, а клиентской частью отдавать на серверный вариант только события клавы. Т.е написать кейлогер.
имитировать нужно, как же иначе то ?

zubr,
1) надо сделать тест
2) ну он и так GUI )
3) хук поставлен внутри приложения, которое сам пользователь и запустил. Тут, кстати, хук по сути и не нужен - можно просто все сообщения клавы ловить в оконной процедуре, но там очень геморно потом преобразовывать. Поэтому оставил хук - из него легко собирается INPUT
4) ок, попробую

Добавлено через 22 часа и 42 секунды:
разобрался, кстати. Всего то лишь надо было ещё ID потока указать - последний параметр функции SetWindowsHookEx() , значение ::GetCurrentThreadId()

Сначала я туда просто 0 передавал. Хрюше было достаточно, а под семёркой хук не ставился
« Последнее редактирование: 25-03-2011 18:53 от Алексей1153 » Записан

zubr
Гость
« Ответ #88 : 26-03-2011 04:51 » 

Хмм... А тебе мониторить надо только одно приложение, которое сам же пользователь и запустил?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #89 : 26-03-2011 08:08 » 

zubr, конечно. Более того - всего одно диалоговое окно. В общем-то, было бы достаточно оконную процедуру переопределить и там ловить клаву, но сборка структур INPUT сильно сложная. С хуковыми данными просто получается. Только смотреть, что в фокусе сейчас нужный диалог
Записан

zubr
Гость
« Ответ #90 : 26-03-2011 08:20 » 

Тогда вообще ничего не понимаю, откуда тогда проблемы с DirectX.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #91 : 26-03-2011 08:22 » 

проблема пока одна - руки до него ещё не дошли Улыбаюсь Я пока без него делаю, а аэро зак пока выключает для тестов

Добавлено через 29 минут и 28 секунд:
Тогда вообще ничего не понимаю, откуда тогда проблемы с DirectX.
а, ну так ведь экран то снимается со всего слейва. Клавиатура - это на мастере
« Последнее редактирование: 26-03-2011 08:52 от Алексей1153 » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #92 : 09-08-2011 09:03 » 

всё, сдал проект окончательно )
Записан

zubr
Гость
« Ответ #93 : 09-08-2011 15:53 » 

Поздравляю.
А перехват DirectX реализовывал?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #94 : 09-08-2011 16:03 » 

zubr, нет, как-то зак не настаивал. Но я потом хочу всё же разобраться. Пока некогда
Записан

Страниц: 1 2 3 4 [Все]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines