![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Закрыть окно консоли в Delphi [WinXP]
NovaC © (2006-11-27 04:19:00)День добрый!
Если кто знает помогите пожалуста!
Как в консольном приложении в Delphi
закрыть это самое окно консоли для того чтобы программа работала в фоновом режиме
и как посредством Delphi добавлять и убирать программу в атозагрузку так
чтобы это работало в win98-2000-xp ?
Заранее спасибо за ответ . . .
Anatoly Podgoretsky (2006-11-27 14:38:00) [1]> Сергей М. (27.11.2006 14:26:16) [16]
MPUT *.txt
Сергей М. (2006-11-27 14:26:00) [2]
> NovaC (27.11.06 13:40) [13]
>
> Потому что я не знаю заранее сколько будет файлов
Т.е. тебя бы устроило нечто похожее на
НекийFTPКомпонент.ЗакинутьНаСервер(сам не знаю сколько файлов)
?
Anatoly Podgoretsky (2006-11-27 14:15:00) [3]> NovaC (27.11.2006 13:28:10) [10]
Смотри RFC по протоколу FTP и все станет понятно.
Cawa (2006-11-27 13:51:00) [4]И причем здесь отказ от использования Put несколько раз?
NovaC (2006-11-27 13:40:00) [5]Потому что я не знаю заранее сколько будет файлов
хотелось бы задать копирование например по маске...
Cawa (2006-11-27 13:34:00) [6]Мне совершенно не понятно, почему тебя не устраивает вызывать Put несколько раз?
Сергей М. (2006-11-27 13:31:00) [7]
> А всё-таки какая есть альтернатива
Доп.поток
NovaC (2006-11-27 13:28:00) [8]с этим теперь понятно. спасибо
А всё-таки какая есть альтернатива TIdFTP.PUT
для копирования нескольких файлов, чтобы не вызывать
несколько раз PUT?
Сергей М. (2006-11-27 13:23:00) [9]
> как сделать это без неё?
MyIdFTP := TIdFTP.Create(nil);
try
.. работат с MyIdFTP ..
finally
MyIdFTP.Free;
end;
> за один вызов PUT копирует только один файл?
Увы и ах)
> Какая есть альтернатива для того чтобы работать хотя бы
> с двумя файлами?
Последоввательный вызов put() чем плох ?
> Если без без TIdFTP, то тогда как?
А чем плох TIdFTP ?
Cawa (2006-11-27 13:20:00) [10]Для того чтобы работать с компонентом TIdFTP (или с каким либо другим) нужно:
1- подключить нужный модуль (Uses IdFTP,еще какой нибудь модуль...)
2- описать переменную var MyFTP:TIDFTP;
3- осуществить выделение памяти и инициализацию необходимых для работы данных (в классах обычно для этого используют конструктор), поэтому пишем MyFTP:=TIDFTP.Create(nil); (по завершению работы не забываем убирать мусор MyFTP.Free;)
alex810 (2006-11-27 12:56:00) [11]Нашел у себя в справочнике не знаю работает
Консольные приложения Win32 запускаются в командном окне. Для того, чтобы консольное приложение могло определить когда консоль закрывается, надо зарегистрировать консольный обработчик управления и в выражении case искать следующие значения:
CTRL_CLOSE_EVENT Пользователь закрывает консоль
CTRL_LOGOFF_EVENT Пользователь завершает сеанс работы (log off)
CTRL_SHUTDOWN_EVENT Пользователь выключает систему (shut down)
Как это делается, можно посмотреть в примере CONSOLE. Более подробную информацию можно посмотреть в руководстве Win32 application programming interface (API) в разделе SetConsoleCtrlhandler().
Anatoly Podgoretsky (2006-11-27 12:52:00) [12]> NovaC (27.11.2006 12:41:05) [5]
Если форма не нужна то просто не делай форму.
NovaC (2006-11-27 12:41:00) [13]Может я задаю совсем тупые вопросы, но хотелось бы поподробнее!?
Если форма не нужна - то как сделать это без неё???
Хотя бы в общих чертах!
Т.Е. за один вызов PUT копирует только один файл?
Какая есть альтернатива для того чтобы работать хотя бы с двумя файлами?
Если без без TIdFTP, то тогда как?
Сергей М. (2006-11-27 12:09:00) [14]
> На сколько правильно в консольном приложении добавлять форму
> только для того чтобы положить на неё TIdFTP ?
Форма для этого совершенно не нужна.
> Как с помощью TIdFTP.PUT закидывать несколько файлов ?
Последовательно вызывая put().
> Можно ли как-то по другому без TIdFTP реализовать в консольном
> приложении сброс одновременно нескольких файлов на FTP
> ?
Можно.
NovaC (2006-11-27 12:04:00) [15]программа сбрасывает на ftp файлы.
интерфейс через консольное окно, но мне нужно сделать так чтобы при запуске скажем с параметром /auto программа не открывала консольное окно, а загружалась в фоновом режиме и при изменении файла сбрасывала его на ftp.
Для автозагрузки есть несколько вариантов. Но я не уверен какой лучше в плане совместимости с размыми WIN.
И хотель бы ещё узнать:
На сколько правильно в консольном приложении добавлять форму только для того чтобы положить на неё TIdFTP ???
Как с помощью TIdFTP.PUT закидывать несколько файлов ???
Можно ли как-то по другому без TIdFTP реализовать в консольном приложении сброс одновременно нескольких файлов на FTP ???
Заранее спасибо за ответ . . .
Cawa (2006-11-27 08:36:00) [16]Вы хоть видели где размещали свой вопрос?!!!!
Конференция "Сети" - любые вопросы связанные с программированием сетей и для Интернета.
Если тебе нухно чтобы твоя программа работала без каких либо окон, то просто их не создавай!!!
Вот тебе простой пример:
program InvisibleBeep;
uses SysUtils;
var i:integer;
begin
for i:=1 to 1000 do
begin
beep;
end;
end.
как видишь - ни форм, ни {$APPTYPE CONSOLE}
прописывай необходимые модули создавай поток и радуйся жизни.
И еще одно насчет автозагрузки, прежде чем просто задавать вопрос ради того чтобы тебе на него ответели - рекомендую воспользоваться поисковыми системами. Если бы ВЫ поискали то уже бы знали ответ, а не ждали его!!!!
Счастливого Вам перемещения!!!:))
Сергей М. (2006-11-27 08:24:00) [17]Какое отношение это имеет к "Сетям" ?