Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

Закрыть окно консоли в Delphi   Найти похожие ветки 

 
NovaC   (2006-11-27 04:19) [0]

День добрый!

Если кто знает помогите пожалуста!
Как в консольном приложении в Delphi
закрыть это самое окно консоли для того чтобы программа работала в фоновом режиме
и как посредством Delphi добавлять и убирать программу в атозагрузку так
чтобы это работало в win98-2000-xp ?

Заранее спасибо за ответ . . .


 
Сергей М. ©   (2006-11-27 08:24) [1]

Какое отношение это имеет к "Сетям" ?


 
Cawa ©   (2006-11-27 08:36) [2]

Вы хоть видели где размещали свой вопрос?!!!!

Конференция "Сети" - любые вопросы связанные с программированием сетей и для Интернета.


Если тебе нухно чтобы твоя программа работала без каких либо окон, то просто их не создавай!!!

Вот тебе простой пример:

program InvisibleBeep;
uses  SysUtils;
var i:integer;
begin
 for i:=1 to 1000 do
 begin
   beep;
 end;
end.


как видишь - ни форм, ни {$APPTYPE CONSOLE}
прописывай необходимые модули создавай поток и радуйся жизни.

И еще одно насчет автозагрузки, прежде чем просто задавать вопрос ради того чтобы тебе на него ответели - рекомендую воспользоваться поисковыми системами. Если бы ВЫ поискали то уже бы знали ответ, а не ждали его!!!!

Счастливого Вам перемещения!!!:))


 
NovaC   (2006-11-27 12:04) [3]

программа сбрасывает на ftp файлы.

интерфейс через консольное окно, но мне нужно сделать так чтобы при запуске скажем с параметром /auto программа не открывала консольное окно, а загружалась в фоновом режиме и при изменении файла сбрасывала его на ftp.

Для автозагрузки есть несколько вариантов. Но я не уверен какой лучше в плане совместимости с размыми WIN.

И хотель бы ещё узнать:
На сколько правильно в консольном приложении добавлять форму только для того чтобы положить на неё TIdFTP ???
Как с помощью TIdFTP.PUT закидывать несколько файлов ???
Можно ли как-то по другому без TIdFTP реализовать в консольном приложении сброс одновременно  нескольких файлов на FTP ???

Заранее спасибо за ответ . . .


 
Сергей М. ©   (2006-11-27 12:09) [4]


> На сколько правильно в консольном приложении добавлять форму
> только для того чтобы положить на неё TIdFTP ?


Форма для этого совершенно не нужна.


> Как с помощью TIdFTP.PUT закидывать несколько файлов ?


Последовательно вызывая put().


> Можно ли как-то по другому без TIdFTP реализовать в консольном
> приложении сброс одновременно  нескольких файлов на FTP
> ?


Можно.


 
NovaC   (2006-11-27 12:41) [5]

Может я задаю совсем тупые вопросы, но хотелось бы поподробнее!?

Если форма не нужна - то как сделать это без неё???
Хотя бы в общих чертах!

Т.Е. за один вызов PUT копирует только один файл?
Какая есть альтернатива для того чтобы работать хотя бы с двумя файлами?

Если без без TIdFTP, то тогда как?


 
Anatoly Podgoretsky ©   (2006-11-27 12:52) [6]

> NovaC  (27.11.2006 12:41:05)  [5]

Если форма не нужна то просто не делай форму.


 
alex810 ©   (2006-11-27 12:56) [7]

Нашел у себя в справочнике не знаю работает

Консольные приложения Win32 запускаются в командном окне. Для того, чтобы консольное приложение могло определить когда консоль закрывается, надо зарегистрировать консольный обработчик управления и в выражении case искать следующие значения:

CTRL_CLOSE_EVENT Пользователь закрывает консоль
CTRL_LOGOFF_EVENT Пользователь завершает сеанс работы (log off)
CTRL_SHUTDOWN_EVENT Пользователь выключает систему (shut down)
Как это делается, можно посмотреть в примере CONSOLE. Более подробную информацию можно посмотреть в руководстве Win32 application programming interface (API) в разделе SetConsoleCtrlhandler().


 
Cawa ©   (2006-11-27 13:20) [8]

Для того чтобы работать с компонентом TIdFTP (или с каким либо другим) нужно:
1- подключить нужный модуль (Uses IdFTP,еще какой нибудь модуль...)
2- описать переменную var MyFTP:TIDFTP;
3- осуществить выделение памяти и инициализацию необходимых для работы данных (в классах обычно для этого используют конструктор), поэтому пишем MyFTP:=TIDFTP.Create(nil); (по завершению работы не забываем убирать мусор MyFTP.Free;)


 
Сергей М. ©   (2006-11-27 13:23) [9]


> как сделать это без неё?


MyIdFTP := TIdFTP.Create(nil);
try
.. работат с MyIdFTP ..
finally
 MyIdFTP.Free;
end;


> за один вызов PUT копирует только один файл?


Увы и ах)


> Какая есть альтернатива для того чтобы работать хотя бы
> с двумя файлами?


Последоввательный вызов put() чем плох ?


> Если без без TIdFTP, то тогда как?


А чем плох TIdFTP ?


 
NovaC   (2006-11-27 13:28) [10]

с этим теперь понятно. спасибо

А всё-таки какая есть альтернатива TIdFTP.PUT
для копирования нескольких файлов, чтобы не вызывать
несколько раз PUT?


 
Сергей М. ©   (2006-11-27 13:31) [11]


> А всё-таки какая есть альтернатива


Доп.поток


 
Cawa ©   (2006-11-27 13:34) [12]

Мне совершенно не понятно, почему тебя не устраивает вызывать Put несколько раз?


 
NovaC   (2006-11-27 13:40) [13]

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


 
Cawa ©   (2006-11-27 13:51) [14]

И причем здесь отказ от использования Put несколько раз?


 
Anatoly Podgoretsky ©   (2006-11-27 14:15) [15]

> NovaC  (27.11.2006 13:28:10)  [10]

Смотри RFC по протоколу FTP и все станет понятно.


 
Сергей М. ©   (2006-11-27 14:26) [16]


> NovaC   (27.11.06 13:40) [13]
>
> Потому что я не знаю заранее сколько будет файлов


Т.е. тебя бы устроило нечто похожее на

НекийFTPКомпонент.ЗакинутьНаСервер(сам не знаю сколько файлов)

?


 
Anatoly Podgoretsky ©   (2006-11-27 14:38) [17]

> Сергей М.  (27.11.2006 14:26:16)  [16]

MPUT *.txt



Страницы: 1 вся ветка

Текущий архив: 2006.12.17;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.039 c
9-1140506358
Древолаз
2006-02-21 10:19
2006.12.17
GLScene не найден Variants.dcu


4-1155022476
shake
2006-08-08 11:34
2006.12.17
завершение процесса


1-1162229507
Morrison
2006-10-30 20:31
2006.12.17
Работа со SciZipFile. Как создать архив и запаковать туда файлы?


2-1164702396
Альберт
2006-11-28 11:26
2006.12.17
путь к файлу


3-1160373460
jbond
2006-10-09 09:57
2006.12.17
Работа из Turbo Delphi Explorer с SQLite