![]() |
|
|
![]()
|
|
| BIV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Всем доброе время суток!
Связи с тем, что требуется кросплатформенность, но при этом программа должна работать с сетью и влиять на другие машины (Клиент/Сервер), вынужден был использовать не знакомую мне среду программирования на С++, в котором используются Qt библиотеки. Вопрос состоит в том, как работать с локальной сетью и влиять и проникать в клиентские машины. Где можно почитать про администрирования, используя эти библиотеки? Если можно, хотелось бы узнать некоторые моменты на примере, такие как вывод списка подключенных машин-клиентов и хранить в переменные их имена или адреса. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
В Qt нет средств для администрирования. Писать сетевые приложения для соединения с другим компьютером по UDP, TCP/IP, HTTP, FTP не вопрос, а вот чтобы получить компьютеры заведенные в домен, посмотреть процессы на этих компьютерах, учетные записи пользователей - такого в библиотеке нет. |
|||
|
||||
| BIV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Есть ли другой подход к решении этой проблемы
|
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
судя по вопросу - первостепенным должен был быть вопрос про принципы сетей/взаимодействия. так что вам стОит обратится в этот раздел: http://forum.vingrad.ru/forum/c-c++network.html
и только после того, как вы поймете чего хотите, следует задавать вопросы о выборе инструмента и деталях реализации. |
|||
|
||||
| BIV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Ну а как же кросплатформенность программы???
Мне же нужно чтобы программа работала на любой ОС Добавлено @ 22:15 Для начало, нужно вывести всех пользователей в локальной сети в список, потом пробраться к нужным мне файлам на компьютере, то есть я не в том плане, что отбирать управление у пользователя, а только управлять другим процессом. P.S. Может быть кому-то покажется что я собираюсь написать типа проги взлома, на самом деле это моя курсовая работа. Там требуется чтобы программа запускалась в любой ОС, имела администртативный характер Это сообщение отредактировал(а) BIV - 9.10.2010, 22:22 |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
зачем вам кроссплатформеность, если вы не знаете чего хотите вы наверное не полностью прочитали мой предыдущий пост. |
|||
|
||||
| BIV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
boostcoder, я прошу не писать что типа я не знаю чего хочу. Задание, есть задание. Раз сказано сделать программу кросплатформенной, значит сделать ее такой. Виртуальная машина джава отпадает из-за ограничений программы, которая ее запускает. Можно воспользоваться внешними библиотеками на Си++, но тогда потеряю кросплатформенность.
|
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
вы меня так и не поняли.
boost, к примеру, полностью кроссплатформенный. содержит в себе кучу библиотек предоставляющих все что только может понадобится(если чего-то конкретного нет, можно создать), за исключением гуя. ну не солидно писать гуй таким людям как например Herb Sutter, Bjarne Stroustrup, Andrei Alexandrescu. но повторюсь: зачем вам это все, когда вы не знаете чего хотите? Добавлено через 35 секунд ...собственно ваша позиция понятна. умываю руки. Добавлено через 5 минут и 43 секунды Qt тоже как кроссплатформенная. но я бы не стал писать что либо используя ее. коллеги/товарищи засмеют |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Тогда можешь начинать смеяться над разработчиками таких продуктов как KDE, Google Earth, Skype, VLC, Avidemux, над тем же qutim и многих других программ. Это сообщение отредактировал(а) SABROG - 9.10.2010, 23:45 |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
SABROG, я не хотел никого обидеть/задеть. извините. просто высказал свое мнение.
дело в том, что это гуевые продукты. это единственный аргумент чтоб использовать Qt. хотя я бы в случае необходимости написания гуя, склонился бы к wx, по понятным причинам. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Понятным кому? Раньше у wxWidgets было только одно преимущество - лицензия, которая позволяла писать коммерческие продукты. Сейчас это уже не аргумент, так как у Qt уже есть LGPL лицензия. Никто не запрещает использовать Qt с другими библиотеками, с тем же boost'ом. А если в последнем нет необходимости, то зачем его включать в проект? Кстати я и в boost'e не видел никаких кроссплатформенных средств для администрирования сети или операционной системы. Всё нужно писать с нуля. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
SABROG, я пояснил вышенаписанный мною пост. и затевать с вами срачь, у меня нет никакого желания. но вам видимо скучно, в субботу вечером.
я и не думал что это плюс или минус. всем, кто знает что такое паттерны и антипаттерны. при использовании Qt, в подавляющем большинстве классов/методов не позволительно использовать шаблонные аргументы/методы/предикаты/функторы, и я видел какой код получается любой, перспективномыслящий программист, не станет сомневаться в бестолковости Qt. т.к. писать гуй, без тех же шаблонных аргументов/методов/предикатов/функторов - изврат чистой воды. если вы с этим не согласны, значит вы читаете книжки никому не известных, и незарекомендовавших себя аффтаров. про Qt к примеру("каждый урод хвалит свой огород") успехов. Это сообщение отредактировал(а) boostcoder - 10.10.2010, 03:11 |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Какой же? То, что в Qt шаблоны используются редко как раз плюс, а не минус. Я тоже видел как код разбухает от шаблонов и выглядит совершенно не читаемым. Никакого изврата не вижу, всё легко и понятно. Тут уже речь не о Qt, а о кодинге на C++. Если вам нравится использовать шаблоны и исключения везде где только можно, то это ваше право, а не обязанность каждого C++ программиста. На Delphi народ писал много лет и никого не возмущало отсутствие шаблонных аргументов. Заказчику нужен результат, а не твой стиль писания программ. Вопрос о перспективности спорный, так как кроме Qt ни одна библиотека не позволяет писать переносимые программы под такое количество устройств и платформ. |
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
Я вообще не уверен что есть сетевая кроссплатформенная библиотека позволяющая осуществлять администрирование, знаю что под виндой можно использовать WMI ,а про линукс с маком даже и не знаю что сказать, под линуксом с процессами вообще не все так просто. Раздели софт на два приложения ГУЙ (клиентская часть) сделай его на Qt , и напиши демона который будет запускаться вместе с системой сделай его на boost, на boost запросто сможешь реализовать приятный вызов команд и работу с системой, а из ГУИ будешь только вызывать нужные команды из демона и получать ответ.
А все фишки типа получения списка процессов и т.д. скорее всего придется писать самому. З.Ы. SABROG, boostcoder , в драке участвовать не буду Это сообщение отредактировал(а) ecspertiza - 10.10.2010, 10:17 |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
этот:
и не нужно прикидываться не замечающим тупиков человеком правильно. больше дельфятников. только в новом обличии вай-вай-вай.. как же это Страуструп+Саттер+Александреску не понимают что делают... беда-бедааа... "легко и понятно" - не значит правильно. если вы работаете программистом, любопытно узнать название конторы, которой не важно соответствие стиля программистов стандартам программирования на плюсах? не важно.. Добавлено @ 10:29 и самое радостное, чуть не забыл - у Qt`ешников, не POD структуры, не считаются классами Это сообщение отредактировал(а) boostcoder - 10.10.2010, 10:30 |
|||
|
||||
| SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Мета-объектная система не даст использовать шаблоны с QObject'ами. И я думаю это оправданное ограничение, так как от мета-объектной системы больше плюсов, чем минусов. Именно. И честно говоря глядя на код с использованием шаблонов хочется повеситься. Он мне чем-то ассемблер начинает напоминать.
Откуда ноги растут у этого утвреждения?
Я не работаю программистом, C++ и Qt это увлечение. Но из того, что я сказал и принятый в конторе стиль нет противоречия. Заказчику наплевать как написано приложение, если оно его полностью удовлетворяет. Кто сказал, что я буду работать на контору? Я сам себе хозяин и хозяин своего стиля. |
||||
|
|||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 8 Всего: 160 |
SABROG, не кормите на тролля. Тем более такого молодого и пустоголового.
-------------------- |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
попробуйте:
дико удивитесь |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Попробовал. Что должно было измениться? Всё собирается и работает, от компилятора никаких предупреждений нет, от программы тоже. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 4 Всего: 110 |
значит пофиксили. раньше moc видел в этом ошибку.
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 7 Всего: 250 |
предполагаю что это камень в сторону moc`a.. этот недостаток разве кого то ущемляет ? тем более можно пофиксить.. ну есть у мока свой взгляд на классы, описанный в документации, что тут такого ? у него есть поболее крупных _особенностей_ превращающих С++ в особый диалект Это сообщение отредактировал(а) mes - 10.10.2010, 11:07 |
|||
|
||||
| BIV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Возможно ли запустить ГУЙ в тот момент, когда на экране окно приветствия и ожидается отклика и ввода пароля?
Мне нужно чтобы этот ГУЙ получал и выполнял команды именно в этот момент. Он должен просматривать и изменять данные именно тогда, когда на экране ожилдается ввода пароля. Пусть это выполнение будет с командной строкой, но только на администраторской машине нужно видеть на экране что происходит на данный момент. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Как в radmin'e или RemoteDesktop'e? |
|||
|
||||
| BIV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Ну это немного разные вещи.
Значит ситуация такая, одна органицация, все компьютеры соединены в одну локальную сеть (без выхода в интернет, мне это не нужно). Представим ситуацию, что один из работников уволился, и оставил запароленный компьютер. Задача админа разблокировать компьютер в своем рабочем месте. То есть включив ту запароленную машину, запустив у себя програму и через нее (на своей машине) пробирается к файлам где храняться пароли. Меняет пароль илиудаляет, и клиентская машина становиться свободна к доступу Это сообщение отредактировал(а) BIV - 10.10.2010, 11:36 |
|||
|
||||
| Любитель |
|
||||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Во-первых, перкращаем устраивать здесь холивары - для этого есть соответствующий раздел!
Во-вторых, что понимается, под "влиять и проникать"? И как это архитектурно будет выглядеть - будет ли на клиентских машинах твой сервис или нет? В отрыве от предполагаемого прикладного протокола тут ничего нельзя сказать.
А тут всё оооочень системозависимо. Под X11 придётся свой display manager прописывать, под виндой была GINA (в висте и выше там что-т другое - точно не скажу), под маками вообще без понятия.. Можно с увереностью сказать, что здесь какие-либо кроссплатформенных обёрток ещё не существует (слишком уж специфичная задача). Добавлено через 3 минуты и 11 секунд Если задача именно такая, а не реализовать что-то своё - то я бы вообще ничего бы не писал. А посмотрел на то, что реально используется на клиентских машинах и занялся бы нормальной настройкой сети. В любом случае админ должен просто иметь полноценные права на все тачки. Как это регулировать - вопрос, зависящий от клиентской ОС (ну и вопрос не в этот раздел уже). |
||||
|
|||||
| BIV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Прошу прощения, но я уже выше писал, что это курсовой проект, она непосредственно связана с программированием. Я же учусь на программиста. Моя задача написать эту самую программу и обеспечить кросплатформенность. Говорят есть похожие программы, но мне сразу же второе условие, она должна быть легче и работать быстрее.
Я всех очень прошу не писать тут, типа используйте готовую, не надо изобретать велосипед и прочее-прочее. Это действительно очень сложно, я сейчас ломаю голову над этим. Любое высказывания в сторону "все уже придумано", я начинаю сильно падать духом и пропадает надежда. Отнеситесь к этому серьезно, прошу Вас |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Тогда покажи пример. Пока лично я не очень понимаю, что именно нужно. И ещё некоторые моменты: 1. Без установки каких-либо средств на клиентские машины - эту задачу решить невозможно. 2. В зависимости от операционки для этих "средств" придётся писать разный код. Готовых универсальных обёрток нет. Т. е. надо будет придумывать своё обощённое АПИ/протокол и писать реализации для тех ОС, для которых это нужно в итоге. 3. "Админскую" часть можно сделать "чисто кроссплатформенной" (в случае хорошей продуманности протокола работы с клиентами). |
|||
|
||||
| BIV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Примеры программ привести не смогу, так как не я придумывал задание, это не моя идея.
Для начала мне нужно на основе кросплатформенных библиотек вывести в списке подключенных машин, даже тех, которые находятся в ожидании ввода пароля при входе в систему |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Хорошо. Тогда давай определимся, что такое "подключенные машины"? Находящиеся в той же подсети? Тогда посылаем обычный "вопрощающий" броадкастинг пакет от админа и затем нотификации от клиентов (напомню, что на клиентах должен быть наш сервис). Если же речь, скажем, про виндовый домен/воркгруппу - то тут без спейифичного АПИ не обойтись.
|
|||
|
||||
| BIV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 219 Регистрация: 20.12.2007 Репутация: нет Всего: 1 |
Предположим стоят винды. Запросить компьютер, который уже включен и загружена полностью система, это не составляет труда, так как клиент уже запущен и готов к обмену информации. Остался вопрос как быть с компьютером, который еще не выполнил вход в систему. Есть же программы, которые запускаются еще во время приветствия, например антивирусы. Если они запускаются, это значит в виндоусе есть список программ, которые должны загружаться в самой первой стадии. Вопрос теперь такой, куда сунуть ярлык этой программы-клиент?
|
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Нужен сервис, а не "ярлык программы". Тут без вариантов. Если интересует именно Qt - http://qt.nokia.com/products/appdev/add-on...ties/qtservice/
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |