![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Оказывается нигде нет компонента полностью имитирующего работу с командной строкой. Так, например, команда ftp не срабатывает ни в одном найденом мною примере. Почему это происходит, неизвестно. Предлагаю объединиться и найти или даже написать компонент консоль и выложить этот шедевр в копилку ВинГрада.
|
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
А чем Cmd не устраивает?
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
А универсальным способом, будет: 1. кинуть поле Edit; 2. и программиру те команды которые те нужны, в часности запуск ShelExecute из модуля ShelApi, ну и т.д. |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Ну уж не знаю где ты такие примеры находил. ftp нормально работает. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Alex: CMD не устраивает тем, цто она не втроена в мою программу т.е.
1) что я не могу выдрать из нее содержимое окна и отдать команду к ней в окно 2) что ее можно закрыть без моей программы т.е. программы разделяется на два живущих своей жизнью окна. 2Zero: так я уже сделал, но задача в другом. Зачем изобретать велосипед и писать под каждую задачу новый код. а если мне завтра понадобиться не только запускать приложения но и лазить по папкам сопировать удалять файлы пинговать сеть управлять безопасность и доступом использовать фтп и телнет.. и пр. Что, для каждой задачи встраивать новый модуль и делать программу более тяжелой и менее надежной? Может просто использовать готовое решение - встроенную консоль которую и за собой таскать не надо и работает там все отлично. 2Петрович: Я не нашел, а можно посмотреть на то, что у вас работает с фтп? |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
А вот тут позволю не согласиться, все зависит от того как вы вызовите процесс -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Alex: В приципе я готов рассмотреть любое решения данной проблемы. Если можно работать с консолью из приложения и корректно получать и передавать ввод-вывод то я только за. Подскажите тогда пожалуйста, как это делается. Спасибо.
|
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Не у всякого приложения можно перехватить ввод/вывод. Только если приложение использует для этого консольные потоки. Кстати, ввод/вывод самой cmd.exe получить вряд-ли получится. Поэтому, либо придется самому реализоывать вызов вутренних команд - а изобретать уже неоднократно изобретенный велосипед кому охота? Либо, создавай у себя в приложени консольное окно, и запускай cmd назначив ему созданное консльоное окно. В общем что-то вроде этого. Но, это решение будет не универсальным. Под разными виндами это делается по разному. Короче, как подумаешь об этом всем, так сразу и понимаешь - гемору много, а кайфа в результате чуть. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Петрович:
Что вы имели ввиду под этим? И вообще я так и не понял, идеи есть как решить эту проблему? |
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Тогда, вернемся к началу. Встречный вопрос
Оссобенно под "не срабатывает"? -------------------- Все знать невозможно, но хочется |
||||
|
|||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Это значит, что в любом найденном мною примере работы с консолью при вводе в консоль комманды ftp (после чего в cmd.exe выпадывает приглашение для работы с фтп) программа виснет.
Использование компонентов для работы непосредственно с фтп типа TNMFTP или как там ее... тут ни причем. |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Естественно. При вводе в cmd.exe комманды ftp, запускается соответствующая программа. А она, работает интерактивно. Т.е. ей надо со стандартного потока ввода подавать комманды. И вообще, ты, по моему, сваливаеш в кучу разные понятия. Консоль, это консоль. А cmd.exe, это cmd.exe. Т.е., консоль, это не обязательно cmd.exe (или другой интерпретатор). Это всего лишь окно, выполняющее две задачи: 1 - отображение того что выводит связанная с консолью программа в стандартный поток вывода и в поток ошибок, 2 - посылку в стандартный поток ввода всего того что пользователь понажимает на клаве. Частным случаем является запущенная например программа cmd.exe, связанная с консольным окном. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Bes |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Блин, Круто! Ну за что уважаю Петровича это за способность увидеть ошибку в 17-й строке. Точно.
Я ведь так и думал!!! Признаюсь чайник, но нашелся же человек..... я даже запустил из коммандной строки ftp и запустилась консоль которая мне нужна. Вот только теперь другая проблема:
Как это сделать? или
Как сделать чтобы эта программа была связана не с консольным окном а с TMemo? Вот. |
||||||
|
|||||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: нет Всего: 5 |
см MSDN ф-ции работы с КОНСОЛЬЮ.
-------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Не конструктивно. Так на любой вопрос можно ответить.
Вопрос по базам данных - "см. MSDN ф-ии работы с базами данных" Вопрос по печати - "см. MSDN ф-ии работы с печатью" .......... главное не забывать модное слово MSDN Это приравнивается к тому что "изучи эту область программирования" но. 1) Я все эти задачи могу решить и другими способами. 2) я как раз ищу (см. тему) готовый компонент, функцию, способ. P.S. конструировать с нуля..... ну вообще-то это должно быть очень,.. очень просто. Просто я не знаю как. |
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Ну тут ты не прав. MSDN действительно кладезь знаний. Хотя, конечно, для того что-бы там что-то найти, нужен начальный толчек - вектор.
Ищи по форуму и faq'у форума. Перехват в/в консольных приложений уже неоднократно обсуждался. Кроме того есть куча компонент помогающих то делать. Например TDosCommand, поищи кажется на torry.net есть. С исходниками. -------------------- Все знать невозможно, но хочется |
||||
|
|||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Петрович а помоему он прав.... Просто говорить см. туда сам незнаю куда... не конструктивно. Если говоришь, ищи в Faq, то ссылку нужно кинуть на ту тему где она находится, или что-то в этом роде... А если, говорить просто "ИЩИ"... то вообще все форумы можно удалять, и сказать одним словом, зайди в библиотеку, там найди книгу и получи ответ на вопрос... Или любимая фраза многих, "в Интернете...." а конкретно, если полазить то впринципе можно найти всё... Это сообщение отредактировал(а) Zero - 18.10.2005, 09:58 |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Zero, когда на форум приходит новичок и ему отвечают, иди в FAQ это действительно не есть хорошо, но когда человек не первый день на форуме наверняка не раз пользовался FAQ, DRKB, поиском по форуму и ему лениво сделать 3-4 клика мышкой, то извините, почему это должны делать другие?
Что касается MSDN, то здесь сложнее, т.к. у меня, к примеру, off-line версия есть, и я пользуюсь ей и мои ссылки вам ничего не дадут, т.к. все зависит от года выпуска. PS Работа программиста это не раставление кнопочек на форме, а постоянный поиск по справкам, документациям, тому же Интернету и пока вы этому не научитесь, то так и будите канючить, что ничего нету, хотя для того, что бы найти нужно 5 минут. Я всегда против отправки к поиску новичков на форуме, но старожилы уж извините, но будьте любезны сделать хотя бы попытку. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
http://www.torry.net/quicksearchd.php?Stri...mmand&Title=Yes (на поиск ушло менее 1 минуты)
Поиск по FAQ (3 минуты) http://vingrad.ru/DELPHI-DLP-000823 http://vingrad.ru/DELPHI-DLP-002746 Добавлено @ 10:33 В сумме 4 минуты и все о чем говорилось в теме найдено. Какие проблемы? Готового решения в теме не привели? -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Добавлено @ 10:44 2Alex: 1) как раз новичка можно послать в фак, потому что как правило до 80% вопросов относится именно туда. 2) поиск в интернете велся примерно неделю и было найдено около 5 различных решений ни одно из которых не удовлетворило моей задаче. 3) найденная вами ссылка была получена поиском по слову TDosCommand а это слово нужно знать да и нашел я этот компонент уже поставил и попробовал - правда ничего не вышло, но это уже другой вопрос. 4) эту ссылку я пробовал - комманда ftp там не работает 5) эту ссылку я тоже пробовал - комманда ftp там тоже не работает 6) готового решения не привели. 7) поиск в форуме винграда и в факе часто не работает, но это тожедругая тема. 8) давайте не будем учить друг друга жить, а будем друг другу помогать, тем более что неужели вам самим не интересно, как работать с косолью напрямую? Это сообщение отредактировал(а) Bes - 18.10.2005, 10:45 |
|||
|
||||
| Петрович |
|
||||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
А можно и мне поучавствовать?
Как и Bes, считаю что новичков особенно стоит посылать в FAQ. Пусть знают где рыть.
Именно поэтому и посылаю. Задающий вопрос часто считает что у него возник уникальный случай, впервые в истории. Чаще всего это не так. Я, как завсегдатай форума, часто точно помню что подобный вопрос недавно|давно|иногда|неоднократно обсуждался. Вот и отсылаю к поиску - точно знаю что можно найти. Можно конечно взять и самому поискать в инете, в faq, и т.п. Потом в ответе разместить найденные ссылки. А еще лучше (для вопрошающего), продублировать найденную инфу в теме. Но это только кажется что лучше. 1. Программист должен учиться САМ искать нужную инфу - ему же потом будет легче. 2. Надо ценить не только свое время, но и время других людей.
А зачастую, готовое решение получить извне невозможно! На то ты и программист. Или нет? Чаще всего, найденный материал служит только отправной точкой для изучения. Или ты думаешь я свои знания получил сидя на лекциях? Да будет тебе известно, когда я учился, персональных компьютеров еще и в проекте не было.
А это ты им наверное пользоваться не очень умеешь. Мне тоже не всегда удается его оседлать.
Наверное будешь удивлен - нет, не интересно! Для меня это давно пройденный этап. Задача уже давно решаема. Да, может и не имею универсального компонента. Но он мне и не нужен. Не люблю я очень универсальных компонент. А если возникает потребность - лезу в старые тексты, достаю фрагмент и подшлифовываю его под данный случай. Если потребность возникает часто - полирую до блеска и помещаю в свою библиотеку. Что касается данного случая, конечно есть пример. Но: 1. Он естественно не реализует именно твою задачу - запуск ftp 2. Он не имеет товарного вида. Т.е. если я тебе сюда брошу кусок текста, то он у тебя даже не откомпилится - он заточен под мою библиотеку. И потом, ты будешь говорить(писать) что "поставил и попробовал - правда ничего не вышло" и "готового решения не привели". 3. В инете масса подобных. Не зачем плодить сущности. Ну ладно. На закуску. Можешь посмотреть на TVirtualCommandLineRedirector из библиотеки VirtualShellTools. Если уж он тебе не понравится, то догда не знаю.... Кстати, мне он в свое время чуток не понравился, есть там нюансы, а уменя к ним слишком придирчивое отношение. -------------------- Все знать невозможно, но хочется |
||||||||||||
|
|||||||||||||
| Bes |
|
||||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Петрович: Исчерпывающе.
Тут есть немного лукавства, так же как и в репликах типа "нечего ерунду спрашивать - отвлекать людей", "не надо форум з@сир@ть" и пр. Я считаю так - форум это такая штука где каждый отвечает в силу своего желания и времени, т.е. не хочешь ничего говорить - просто не говори и не нужно об этом писать. нет всобоного времени - не заходи на форум, не пиши ответы и пр. Т.Е. если зашел и ответил, згачит есть и время и желание.
просто тогда меня больше интересовали машинки...
блин, честно - ничего не нашел.
Дак в этом-то и прелесть: компонента НЕ УНИВЕРСАЛЬНАЯ, она просто должна перенаправлять потоки ввода вывода в уже давно написаннуюи отлаженную программу CMD.EXE вся универсальность там уже есть. Вот в чем крутость!!! Компонент, ща гляну, спасибо. но следующая тема будет "почему не работает TDosCommand". Спасибо всем. |
||||||||||||
|
|||||||||||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
ОК! первым делом я побежал на
http://www.mustangpeak.net и скачал VirtualShellTools for Delphi 5-2005- and C++Builder 5-6 Version 1.2.5 начал устанавливать - вроде установилась, но хрен - не работает. стал читать на оффсайте вижу: To install VirtualShellTools you must have SoftGems VirtualTreeview installed. For Delphi 4-6 and C++Builder 5-6 you must also have SoftGems ThemeManager Installed. Both are by Mike Lischke and may be found at the SoftGems website. ок, захожу сюда: http://www.soft-gems.net/VirtualTreeview/ вижу "фигу" т.е. чтобы компоненты работали надо поставить нек. прогу которая даст фозможность виртуалкомпонентам работать, Ха! дак че мне с собой инсталлер этой проги таскать?, я уж тогда стандартными компонентами обойдусь. или у меня лыжи не едут?... или наоборот едут?... хм. |
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Интересно, где это ты там такое увидел?
Т.е. так и написало: "не работаю"? Лично у меня TVirtualCommandLineRedirector без установленного VirtualTreeview прекрастно работал. -------------------- Все знать невозможно, но хочется |
||||
|
|||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Вопрос не однакратно поднимался и всегда приходили к мнению, что человека имеющего 1-50 постов бес смыслено посылать в FAQ, т.к. ему бонально нужно показать, что там действительно много информации и ее можно там найти не задавая вопрос на форуме -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Zero |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Петрович, а вот такую фразу слышу везде постоянно, все почему то думают что только они, такие гении которые умеют пользоватся Рамблером и поиском... А если уж пишешь что умеешь и всё за неск. секунд находишь, то почему бы уж и не помоч...
Полностью согласен... |
||||
|
|||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
нет -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Ну во первых я не писал что умею пользоваться поиском
А вот я, нет. Так можно договориться до того, что если уж пришел сюда, да еще отвечаешь, то уж точно должен давать готовое, отлаженное решение. Ведь авторы вопросов чаще всего именно этого и хотят. А иначе, зачем ты сюда пришел, да еще пишешь ответы? Думаю, лично меня трудно обвинить в недостаточно исчерпывающих ответах на форуме. -------------------- Все знать невозможно, но хочется |
||||
|
|||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
-------------------- С уважением, г-н Посол. |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
p0s0l а зачем??? Помоему, And оно и так по умолчанию.... А Or ставить не имеет смысла... Т.к. даже по одному слово подобранному по правильному критерию, и так выходит много всяких тем, а если всякие or ставить то получится целая каша... ИМХО лучше по одному словоу писать (главное правильно его сформулировать), а вот если после поиска ничего достойного ненайдено, тогда нажимать кнопку "новая тема"... |
|||
|
||||
| Bes |
|
||||||||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Zero:
Согласен. 2Петрович:
А разве нет?
читаем ниже.
Говорит нет необходимых библиотек для работы VirtualTreeView
Может он у тебя был установлен или скажем в ИксПе (ХР) (у меня 2000-я) он есть или содержится по умолчанию или у тебя другая версия TVirtualCommandLineRedirector? Вариантов масса. |
||||||||||||||||
|
|||||||||||||||||
| Петрович |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Ха!. Забавно. Почитал тут и решил проверить. Вот что получил при поиске во всех темах: 1. Поисковая строка: 'запароленый прокси' найдено тем: 1 2. Поисковая строка: 'прокси запароленый' найдено тем: 0 3. Поисковая строка: 'запароленый AND прокси' найдено тем: 1 4. Поисковая строка: 'прокси AND запароленый' найдено тем: 1 Интересная арифметика получается. А вы говорите "AND по умолчанию"
По поводу "неправильного" абсолютно согласен. Лучше ничего чем неправильное! А вот надо-ли давать правильное решение - это вопрос. Если конечно оно уже имеется в наличии + небольшое + имеет "товарный" вид, тогда можно. А вот если его нет, и писать его я нехочу, но, могу подсказать направление. Что-ж, мне в этом случае тоже ничего отвечать? Ведь готового решения у меня нет.
Что-то я этого не нашел на их страничке (http://www.soft-gems.net/VirtualTreeview/). Там вижу только:
Сори. Да. Посмотрел. Точно. Когда-то, еще на предыдущей инсталяции виндов, у меня был установлен VirtualTreeview, поэтому, его bpl переехал в новую систему. Соответственно, при использовании Virtual Shell Tools, он просто использовался автоматом, без установки на палитру. Но, ты не расстраивайся. Для использовани только TVirtualCommandLineRedirector, ты можешь просто воспользоваться всего тремя-четырьмя модулями из Virtual Shell Tools. Они не используют VirtualTreeview. Это сообщение отредактировал(а) Петрович - 19.10.2005, 12:00 -------------------- Все знать невозможно, но хочется |
||||||||||
|
|||||||||||
| Bes |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Петрович:
А вообще то стоило бы сделать. Это проблемы с арифметикой поисковика.
Никто не спорит, речь о том что пишите вы только тогда когда вы хотите, что-то писать вас никто не заставляет, т.е. вопрос о заимствовании чужого времени некорректен.
Потому что это здесь http://www.mustangpeak.net в даунлоадсах
Да мне то что расстраиваться, я просто боюсь что скомпилированное таким образом приложение не будет работать на машинах где не установлен Virtual Shell Tools. Я так понимаю. |
||||||||||
|
|||||||||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Если ты напишешь в поиске: "решите проблему" - найдутся все темы, где встречаются именно эти слова, идущие друг за другом через пробел. Так не найдется тема содержащая "решите сложную проблему". Если напишешь: "решите AND проблему", то найдутся все темы, которые содержат оба слова, не важно в каком порядке... Так найдется "решите мою проблему"... Если напишешь: "решите OR проблему" - то так будут искаться темы, содержащие хотя бы одно из этих слов... -------------------- С уважением, г-н Посол. |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Спасибо, век живи -век учись. А я думаю, че за фигня?... просто привык к форуму на www.sql.ru, там как хош пиши. (это не реклама)
|
|||
|
||||
| Петрович |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Спасибо. А я то блин иногда думаю, почему не могу найти тему? Ведь точно помню что была такая! Оказывается правила умолчания здесь отличаются от моего лоюбимого яндекса. Вот уж точно, не боюсь повториться
Опять же, и здесь написанно лишь то что для инсталяции библиотеки VirtualShellTools требуется установленная библиотека VirtualTreeview (а для Delphi 4-6 и C++Builder 5-6 еще и ThemeManager). И нигде не сказано что для распространения программы созданной с применением VirtualShellTools требуется что-то еще. Интересно, а тебя не удивляет что для работы компонента ExcelApplication требуется установленный MS Office?
Не бойся. -------------------- Все знать невозможно, но хочется |
||||||
|
|||||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Аналогично... Может повесить документацию в поиск, чтобы все её раз и навсегда прочитали, и не думали как он работает... |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Думаю что это просто необходимо. 3-5 строк описания на странице поиска, и многим полегчает.
-------------------- Все знать невозможно, но хочется |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Всё, я создал, тему по обсуждению этой проблеммы!!! Если есть ещё люди которые хотели бы понять принцип работы поисковой системы, то поддержите меня в этой теме. |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Петрович:
Попробую. |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Петрович: Вот блин, все скачал, все установил. Круто, появились компоненты, замечательно. Нашел в папке Demos пример
DOS Shell CommandLine запускаю - не работает сук@ потому что дкльфа моя не видит файл VirtualThread.dcu ладно думаю ща я тея найду и прицеплю - хрен там, есть только файл VirtualThread.pas может из него надо ДКУшку сделать? Петрович, вы вроде как говорили что у вас тамвсе работало, может у вас такой файл есть? Спасибо. |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Дык VirtualThread.dcu получается при компиляции VirtualThread.pas
-------------------- Все знать невозможно, но хочется |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
А каким его местом компилировать он просто так лежит не в проекте даже? Или его типа к демо проекту просто прицепить надо?
Добавлено @ 14:02 Че-т не получается. пытаюсь прицепить - он грит есть уже такой модуль а компилится не хочет зараза. Че-то я туплю помоему.... |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Поищи. При инсталяции, он должен был откомпилироваться. Где-то обазятельно должен быть VirtualThread.dcu. Соответственно, этот каталог должен присутствовать в списке Library path.
-------------------- Все знать невозможно, но хочется |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Петрович: Блин, нет такого файла на компе.
Может у тебя есть? Поделись. Мне эта консоль уже сниться начала, что самое смешное. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
А это все ради того, что бы командой ftp воспользоваться, если да, то помойму овчинка выделки не стоит, т.к. лично я бы заблокировал напрочь программу, которая вдруг полезла в Инет не сама а вызывая ftp. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 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). -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Alex: нет не только для фтп а еще и для пинга копирования и пр. файлов просмотр прав и задач, управления процессами и учетными записями, навигации и управления дисками и пр. и пр.
если вы все это хотите писать с помощью shellapi да потом еще и отлаживать пожалуйста а я все-таки попытаюсь вмонтировать в свое приложение cmd.exe.
2Петрович: завтра попробую - седня работы много, о результатах обязательно сообщу. |
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Дело в том, что ты наверное всетаки хочешь знать результаты выполнения перечисленных тобой команд. В противном случае, зачем тебе перехватывать их вывод. Так вот, анализировать их выход будет не проще чем написать большинство из них. А может даже и сложнее, поскольку формат вывода не специфицирован, и может отличаться от версии к версии. Да и когда пишешь самостоятельно, получается гораздо гибче. Например, реализация ping'а на API получится короче чем код аналза результатов работы ping.exe. Да и гибчее - можно будет легко менять размер пакетов, число попыток и пр.
Смею тебя заверить, что из командной строки тебе будут доступны далеко не все возможности имеющиеся в API. Хотя, конечно. Можно писать программы и на языке cmd.exe. Только они убогие будут получаться -------------------- Все знать невозможно, но хочется |
||||
|
|||||
| Alex |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Петорович все хорошо расписал, а я от себя еще хочу добавить, что ты потратил уже две недели на поиск кода, который будет не очень то и хорошим решением (я бы сказал ужасным) и пока ничего не добился толком. За это время уже можно было написать все, что ты хочешь использовать и еще больше при этом код был бы универсальным и гибким.
Честно меня твоя позиция просто убивает, зачем писать программу используя сомнительные методы, когда есть куча библиотек, в которых все функции, о которых ты говоришь присутствуют, они отлажены и проверены. PS: Если ты все же полезешь в консоли то знайте, что даже cmd.exe под разными ОС нужно передавать параметры немного по-разному, не факт, что такой бедой не страдают и другие консольные приложения компании MS. Ты просто замучаешься отлаживать свое приложение. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
||||
|
|||||
| Bes |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Петрович, 2Alex: Блин ничего вы не понимаете.
1)
нет, мне не надо именно программно разбирать вывод консоли - я буду передавать содержимое мемо-поля на мою машину и читать глазами, другой вывод? ну и фиг с ним, в таком случае выходными данными будет ошибка после которой можно написать чтото вроде /? и получить данные по версии цмд-шки и пр. 2)
а мне не нужны все возможности апи, мне нужен доступ к инструменту, предназначенному для управления машиной. 3)
Это будет просто отличным решением!!! Я понял, Вы все думаете что я буду писать процедуры для парсинга выходных данных.... (отсюда это становится понятным)
Нафиг? Я просто буду их читать. Это как раз вы мне предлагаете руками писать удобный для чтения вывод данных который уже реализован в цмд.ехе И кстати, я это все уже написал руками, но вопрос в том. как прикрутить цмдшную консоль. Короче, щас напишу подробную депешу еще раз со всеми секретами чтобы было понятно |
||||||||
|
|||||||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Задача:
Получить управление над другим компом не мешая при этом пользователю (как в случае с РАдмином) можете называть это трояном, на самом деле программа нужна для тог чтобы оперативно работать с большим парком машин меняя права, доступ к ресурсам и т.п. не отвлекая пользователя от работы, во-первых для того того чтобы он не знал, что там меняется (зачем, правда?) во-вторых пользователь постоянно работает с большим числов клиентов и отвлекать его просто нельзя Очевидно, что нужно написать клиентскую часть программы и серверную, соединив их для простоты Фастнетовскими компонентами типа НММсгСерв и т.п. теперь а) что предлагаю я: клиент имеет встроенную смдшную консоль и получает некоторое сообщение. Потом он тупо кидает его в консоль, получает ответ и тупо передает его на серверную часть. Я на серверной части получаю сообщение и выгружаю его в мемо поле - вижу результат и в зависимости от того какой он, даю соответствующую команду. результат - как будто я работаю с смдшкой на другой машине. б) что предлагаете вы: приделать кнопку на серверной части с надписью ПИНГ при нажатии на нее выпадет ИнпутБокс в который я забью ИПшник после чего сформируется по опредеренным правилам строка команды с параметрами и будет передана на клиента. клиент в свою очередь разбирает эту строку потом из "отлаженной" библиотеки вызывает процедуру пинг , получает по ней результаты, опять же формирует из них определенную строку и отправляет на серверную часть, серверная часть разбирает строку "помня" что она отправляла именно пинг а не другую комманду и высвечивает мне в месаджбоксе "ОК"! Уф, Круто! теперь нам нужно просмотреть содержимое папки на чужой машине. АААААаааааааааааааааааа!!!!!!!!!!!!!!!!!1 мы лепим еще одну кнопку опять вводим путь формируем отправляем клиент проверяет есть ли такая папка если нет отправляет ошибку, ВНИМАНИЕ сервер не должен попутать ошибку с результатом. если же папка есть то прочитать результат полученный из "отлаженной" библиотеки сформировать отчет, указать что это именно комманда дир и отправить, теперь сервер................ Ну и как вам? Ну и какой вариант проще и надежнее? Ой, забыл, нужно еще файл запускать уметь. ААААААААААААААААААААААААААААААААААААААААААААААААААААА |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Хм... видно народ не ждал такого поворота..
Добавлено @ 15:30 ну извините, я вам говорил что мне нужна консоль, а вы меня пытались убедить что это неправильно, не думал что так подробно придется изложить проблему чтобы убедить вас. С уважением. |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Да нет, здесь народ трудно чем-то удивить. Просто не всегда есть возможность почитать и ответить. Что-ж, для данной задачи может это и правильный подход. Но, сразу предупрежу, что далеко не все команды которые работают в консоли смогут работать в такой среде. Не все что выводится в консольное окно, выводится через потоки в/в. Например, сам-же cmd, читает ввод не из потока ввода. Да и пресловутый ftp.exe кажется тоже. Дело в том, что они интерактивные, и при этом обеспечивают простейшую функциональность при вводе команд - редактирование коммандной строки. Т.е. им необходимо обрабатывать нажатие клавиш, в том числе управляющих (Left, Right, Top, Bottom, PgUp, и т.п.) Такое не допускается технологией Input/Output потоков. Поэтому, мой тебе совет. Посмотри повнимательнее на API консольных окон. Мне кажется что это тебе больше подойдет. Там, как мне кажется, у тебя будет полный контроль над консольным приложением. А вообще, тебе нужен просто терминальный сервер. Кажется это так называется. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Я сейчас проверил - что cmd, что ftp в большинстве случаев читают команды из входных потоков. cmd.exe всегда выводит на выходной поток... А вот ftp.exe - не всегда в выходной поток.. Поэтому управлять ftp можно, но правда немного вслепую
-------------------- С уважением, г-н Посол. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
А нет! Всё-таки на help ftp.exe реагирует и выводит команды... но как-то странно... Вобщем, прикрепляю проект...
При запуске сразу жмите кнопку "послать команду" - внизу увидите, что ftp.exe выведет список команд. Теперь интересно, что если попробовать набирать каждые из выполненных команд по-отдельности, т.е. ftp, а потом help - то списка команд не увидим... можно после этого даже набрать какую-либо фигню, он напишет внизу "invalid command"... Список команд выведется лишь после того, как введем "quit" ... Можно несколько раз сподряд набрать help, и после quit'а они все выведутся... Присоединённый файл ( Кол-во скачиваний: 5 )
cmd.ZIP 9,58 Kb-------------------- С уважением, г-н Посол. |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
На самом деле, некоторые программы в состоянии определить что их запустили с переназначением в/в и в этом случае буфиризируют вывод. Соответственно, пока буфер не будет заполнен полностью, или программа не завершится, реально в поток ничего не попадет. Т.е. интерактивно работать будет крайне затруднительно. Особенно учитывая что грамотные проги делают вывод не только в stdOut, но и в stdErr. При буферизации, получается забавная каша. Скажу более, сталкивался с тем, что какая-то из Win9x систем всегда буферизирует переназначенный вывод, даже если он переназначен на pipe!. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Ааа... понятно
-------------------- С уважением, г-н Посол. |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Короче, хрен с маслом? Я правильно понял?
|
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Блин. Я же уже писал:
-------------------- Все знать невозможно, но хочется |
||||
|
|||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
-------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Ну зачем сразу хук. А то, прямо как в анегдоте:
Приходит мужик к терапевту и жалуется: - Доктор, я был у хирурга. Он сказал что надо ампутировать правую руку. А терапевт отвечает: - Вот уж эти хирурги. Все им только резать. Ладно, не переживайте. Выпишем таблеточки. Попьете их пару месяцев, рука сама и отвалится. А если серьезно, сказал же, см. Console Functions. Особенно такие как: AttachConsole, GetConsoleScreenBufferInfo, ReadConsoleOutput, WriteConsoleInput, и т.п. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
Анекдот енто конечно хорошо... но вот как ты енти таблетки присбособиш для ентого ?
Да и AttachConsole только в XP появился. PS: На сколько я понял... нужно что-то типо ентого(только более функциональное): http://forum.vingrad.ru/index.php?act=Atta...=post&id=272124 Это сообщение отредактировал(а) Girder - 26.10.2005, 19:16 -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Особенно мне понравиласть вторая ссылка - на эту-же тему
Насколько я понимаю да. Но, проблема с интерактивными программами типа ftp, telnet и пр. (см. http://forum.vingrad.ru/index.php?showtopi...ndpost&p=547245 -------------------- Все знать невозможно, но хочется |
||||
|
|||||
| Girder |
|
||||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 31 Всего: 155 |
-------------------- Как слышим, так и пишим. Истина где-то там... |
||||
|
|||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2GirDer:
Я крутил эту штуку и так и сяк, но фтпшку так и не прикрутил |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |