Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> !!!Срочный поиск!!! Нигде нет качественного, компонента консоли. Эмулятора CMD. 
:(
    Опции темы
Alex
Дата 24.10.2005, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Bes @ 24.10.2005, 10:07)
Мне эта консоль уже сниться начала, что самое смешное.

А это все ради того, что бы командой ftp воспользоваться, если да, то помойму овчинка выделки не стоит, т.к. лично я бы заблокировал напрочь программу, которая вдруг полезла в Инет не сама а вызывая ftp. smile


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Петрович
Дата 24.10.2005, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Ну в конце концов, делаешь так:
Например, у меня VirtualShellTools проинсталирован в каталог P:\$Lib\VirtualShellTools\.
Соответственно, в каталоге P:\$Lib\VirtualShellTools\Source\ лежат все его исходники.
Тогда, добавляешь путь P:\$Lib\VirtualShellTools\Source\ в список Tools -> Environment Options... -> Library -> Library path
Теперь, можешь спокойно компилировать свою прогу, все недостающие .dcu для VirtualShellTools будут скомпилированны автоматически.
На всякий случай, в проекте выключи компиляцию с пакетами (Project Options -> Packages -> Build with runtime packages).



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Bes
Дата 24.10.2005, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



2Alex: нет не только для фтп а еще и для пинга копирования и пр. файлов просмотр прав и задач, управления процессами и учетными записями, навигации и управления дисками и пр. и пр.
если вы все это хотите писать с помощью shellapi да потом еще и отлаживать пожалуйста а я все-таки попытаюсь вмонтировать в свое приложение cmd.exe.
Цитата
я бы заблокировал напрочь программу, которая вдруг полезла в Инет не сама а вызывая ftp.
к счастью не все такие бдительные. smile

2Петрович: завтра попробую - седня работы много, о результатах обязательно сообщу.
PM MAIL   Вверх
Петрович
Дата 25.10.2005, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Bes @ 24.10.2005, 14:50)
нет не только для фтп а еще и для пинга копирования и пр. файлов просмотр прав и задач, управления процессами и учетными записями, навигации и управления дисками и пр. и пр.
если вы все это хотите писать с помощью shellapi да потом еще и отлаживать пожалуйста а я все-таки попытаюсь вмонтировать в свое приложение cmd.exe.

Дело в том, что ты наверное всетаки хочешь знать результаты выполнения перечисленных тобой команд. В противном случае, зачем тебе перехватывать их вывод. Так вот, анализировать их выход будет не проще чем написать большинство из них. А может даже и сложнее, поскольку формат вывода не специфицирован, и может отличаться от версии к версии.
Да и когда пишешь самостоятельно, получается гораздо гибче.
Например, реализация ping'а на API получится короче чем код аналза результатов работы ping.exe. Да и гибчее - можно будет легко менять размер пакетов, число попыток и пр.

Цитата(Bes @ 24.10.2005, 14:50)
управления процессами и учетными записями, навигации и управления дисками

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

Хотя, конечно. Можно писать программы и на языке cmd.exe. Только они убогие будут получаться smile.



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Alex
Дата 25.10.2005, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Bes @ 24.10.2005, 14:50)
2Alex: нет не только для фтп а еще и для пинга копирования и пр. файлов просмотр прав и задач, управления процессами и учетными записями, навигации и управления дисками и пр. и пр.
если вы все это хотите писать с помощью shellapi да потом еще и отлаживать пожалуйста а я все-таки попытаюсь вмонтировать в свое приложение cmd.exe.

Петорович все хорошо расписал, а я от себя еще хочу добавить, что ты потратил уже две недели на поиск кода, который будет не очень то и хорошим решением (я бы сказал ужасным) и пока ничего не добился толком. За это время уже можно было написать все, что ты хочешь использовать и еще больше при этом код был бы универсальным и гибким.
Цитата(Bes @ 24.10.2005, 14:50)
к счастью не все такие бдительные.

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

PS:
Если ты все же полезешь в консоли то знайте, что даже cmd.exe под разными ОС нужно передавать параметры немного по-разному, не факт, что такой бедой не страдают и другие консольные приложения компании MS. Ты просто замучаешься отлаживать свое приложение.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Bes
Дата 25.10.2005, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



2Петрович, 2Alex: Блин ничего вы не понимаете.
1)
Цитата
Дело в том, что ты наверное всетаки хочешь знать результаты выполнения перечисленных тобой команд. В противном случае, зачем тебе перехватывать их вывод. Так вот, анализировать их выход будет не проще чем написать большинство из них. А может даже и сложнее, поскольку формат вывода не специфицирован, и может отличаться от версии к версии.

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

2)
Цитата
Смею тебя заверить, что из командной строки тебе будут доступны далеко не все возможности имеющиеся в API.

а мне не нужны все возможности апи, мне нужен доступ к инструменту, предназначенному для управления машиной.

3)
Цитата
ты потратил уже две недели на поиск кода, который будет не очень то и хорошим решением (я бы сказал ужасным) и пока ничего не добился толком. За это время уже можно было написать все, что ты хочешь использовать и еще больше при этом код был бы универсальным и гибким.

Это будет просто отличным решением!!! Я понял, Вы все думаете что я буду писать процедуры для парсинга выходных данных....
(отсюда это становится понятным)
Цитата
Если ты все же полезешь в консоли то знайте, что даже cmd.exe под разными ОС нужно передавать параметры немного по-разному, не факт, что такой бедой не страдают и другие консольные приложения компании MS. Ты просто замучаешься отлаживать свое приложение.

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

Короче, щас напишу подробную депешу еще раз со всеми секретами чтобы было понятно
PM MAIL   Вверх
Bes
Дата 25.10.2005, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

Очевидно, что нужно написать клиентскую часть программы и серверную, соединив их для простоты Фастнетовскими компонентами типа НММсгСерв и т.п. теперь

а) что предлагаю я: клиент имеет встроенную смдшную консоль и получает некоторое сообщение. Потом он тупо кидает его в консоль, получает ответ и тупо передает его на серверную часть. Я на серверной части получаю сообщение и выгружаю его в мемо поле - вижу результат и в зависимости от того какой он, даю соответствующую команду. результат - как будто я работаю с смдшкой на другой машине.

б) что предлагаете вы:
приделать кнопку на серверной части с надписью ПИНГ при нажатии на нее выпадет ИнпутБокс в который я забью ИПшник после чего сформируется по опредеренным правилам строка команды с параметрами и будет передана на клиента. клиент в свою очередь разбирает эту строку потом из "отлаженной" библиотеки вызывает процедуру пинг , получает по ней результаты, опять же формирует из них определенную строку и отправляет на серверную часть, серверная часть разбирает строку "помня" что она отправляла именно пинг а не другую комманду и высвечивает мне в месаджбоксе "ОК"!
Уф, Круто! теперь нам нужно просмотреть содержимое папки на чужой машине. АААААаааааааааааааааааа!!!!!!!!!!!!!!!!!1
мы лепим еще одну кнопку опять вводим путь формируем отправляем клиент проверяет есть ли такая папка если нет отправляет ошибку, ВНИМАНИЕ сервер не должен попутать ошибку с результатом. если же папка есть то прочитать результат полученный из "отлаженной" библиотеки сформировать отчет, указать что это именно комманда дир и отправить, теперь сервер................
Ну и как вам?
Ну и какой вариант проще и надежнее?
Ой, забыл, нужно еще файл запускать уметь.
ААААААААААААААААААААААААААААААААААААААААААААААААААААА
PM MAIL   Вверх
Bes
Дата 25.10.2005, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хм... видно народ не ждал такого поворота.. smile
Добавлено @ 15:30
ну извините, я вам говорил что мне нужна консоль, а вы меня пытались убедить что это неправильно, не думал что так подробно придется изложить проблему чтобы убедить вас. С уважением.
PM MAIL   Вверх
Петрович
Дата 25.10.2005, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Bes @ 25.10.2005, 16:28)
Хм... видно народ не ждал такого поворота..

Да нет, здесь народ трудно чем-то удивить. Просто не всегда есть возможность почитать и ответить.
Что-ж, для данной задачи может это и правильный подход. Но, сразу предупрежу, что далеко не все команды которые работают в консоли смогут работать в такой среде. Не все что выводится в консольное окно, выводится через потоки в/в.
Например, сам-же cmd, читает ввод не из потока ввода. Да и пресловутый ftp.exe кажется тоже. Дело в том, что они интерактивные, и при этом обеспечивают простейшую функциональность при вводе команд - редактирование коммандной строки. Т.е. им необходимо обрабатывать нажатие клавиш, в том числе управляющих (Left, Right, Top, Bottom, PgUp, и т.п.) Такое не допускается технологией Input/Output потоков.
Поэтому, мой тебе совет. Посмотри повнимательнее на API консольных окон. Мне кажется что это тебе больше подойдет. Там, как мне кажется, у тебя будет полный контроль над консольным приложением.

А вообще, тебе нужен просто терминальный сервер. Кажется это так называется. smile


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
p0s0l
Дата 25.10.2005, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Я сейчас проверил - что cmd, что ftp в большинстве случаев читают команды из входных потоков. cmd.exe всегда выводит на выходной поток... А вот ftp.exe - не всегда в выходной поток.. Поэтому управлять ftp можно, но правда немного вслепую smile. Т.е. если например набрать команду help, то увидим
Цитата
Commands may be abbreviated.  Commands are:
а какие команды - не видно smile...


--------------------
С уважением, г-н Посол.
PM   Вверх
p0s0l
Дата 26.10.2005, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



А нет! Всё-таки на help ftp.exe реагирует и выводит команды... но как-то странно... Вобщем, прикрепляю проект...
При запуске сразу жмите кнопку "послать команду" - внизу увидите, что ftp.exe выведет список команд.
Теперь интересно, что если попробовать набирать каждые из выполненных команд по-отдельности, т.е. ftp, а потом help - то списка команд не увидим... можно после этого даже набрать какую-либо фигню, он напишет внизу "invalid command"... Список команд выведется лишь после того, как введем "quit" ...
Можно несколько раз сподряд набрать help, и после quit'а они все выведутся... smile Что за ерунда ?...

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  cmd.ZIP 9,58 Kb


--------------------
С уважением, г-н Посол.
PM   Вверх
Петрович
Дата 26.10.2005, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(p0s0l @ 26.10.2005, 01:01)
  Что за ерунда ?...

На самом деле, некоторые программы в состоянии определить что их запустили с переназначением в/в и в этом случае буфиризируют вывод. Соответственно, пока буфер не будет заполнен полностью, или программа не завершится, реально в поток ничего не попадет. Т.е. интерактивно работать будет крайне затруднительно. Особенно учитывая что грамотные проги делают вывод не только в stdOut, но и в stdErr. При буферизации, получается забавная каша.
Скажу более, сталкивался с тем, что какая-то из Win9x систем всегда буферизирует переназначенный вывод, даже если он переназначен на pipe!.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
p0s0l
Дата 26.10.2005, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Ааа... понятно smile


--------------------
С уважением, г-н Посол.
PM   Вверх
Bes
Дата 26.10.2005, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Короче, хрен с маслом? Я правильно понял?
PM MAIL   Вверх
Петрович
Дата 26.10.2005, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Bes @ 26.10.2005, 13:44)
Короче, хрен с маслом? Я правильно понял?

Блин. Я же уже писал:

Цитата
Поэтому, мой тебе совет. Посмотри повнимательнее на API консольных окон. Мне кажется что это тебе больше подойдет. Там, как мне кажется, у тебя будет полный контроль над консольным приложением.




--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


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

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


 




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


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

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