Delphi
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Delphi - 2005-08-29 15:42:36
|
|
|
M0zart
Сообщений: 12
Оценки: 0
Присоединился: 2005-07-20 13:16:46
|
Такой вопрос возник. Как сделать так, чтобы я мог вызывать из своей программы другие проги через командную строку, при этом чтобы они запускались в скрытом режиме. И надо чтобы не было видно не только главное окно программы, но и все её сообщения. Я пробовал так: with StartInfo do begin cb:=SizeOf(StartInfo); dwFlags:=STARTF_USESHOWwindоw; wShowwindоw:=SW_HIDE; end; CreateProcess(nil,PChar(String(CmdLine)),nil,nil,false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil, PChar(ExtractFilePath(Filename)),StartInfo,ProcInfo); ничего не получилось. [sm=9.gif] Может можно как то по другому сделать или сдесь что-то недописано???
|
|
|
Delphi - 2005-08-31 16:20:03
|
|
|
lolik
Сообщений: 152
Оценки: 0
Присоединился: 2005-03-19 19:25:42
|
а WinExec("Proga.exe", SW_HIDE); незя сделать? или я че-то не понял..
|
|
|
Delphi - 2005-09-01 19:35:05
|
|
|
M0zart
Сообщений: 12
Оценки: 0
Присоединился: 2005-07-20 13:16:46
|
я и так делал… Все равно при запуске "Proga.exe" выскакивают некоторые окна, создаваемые этой "Proga.exe".
|
|
|
Delphi - 2005-09-01 21:09:05
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
а stdin, stdout, stderr этих запускаемых программ перенаправить в /dev/null (или как там это в винде называется?) не пробовал? Вместо CREATE_NEW_CONSOLE.
|
|
|
Delphi - 2005-09-01 21:33:14
|
|
|
jEnizix
Сообщений: 1797
Оценки: 0
Присоединился: 2004-12-30 11:03:50
|
http://msdn.com друг кодера под винду! Ищи там флаги для фии CreateProcess(); Точнее ищи описание структуры STARTUPINFO, если ее праввильно заполниш, все буит ок!
2рго: а хз где там в винде этот /dev/null [sm=sm128.gif][sm=001.gif]
|
|
|
Delphi - 2005-09-02 00:17:39
|
|
|
lolik
Сообщений: 152
Оценки: 0
Присоединился: 2005-03-19 19:25:42
|
В винде нету аналога/dev/null вроде, так что тут придеца подумать… а вообще хз как это сделать можно.. А прога.ехе это твое творение? или нет? ну если там окна в ресурсах, попробуй редактором ресурсов поменять у них свойство visible(вроде так)..
|
|
|
Delphi - 2005-09-13 15:40:32
|
|
|
us_V_er
Сообщений: 14
Оценки: 0
Присоединился: 2005-09-10 19:02:12
|
этоже просто я делал это сто раз через shellapi
|
|
|
Delphi - 2005-09-13 21:01:42
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
—————-<BR>Цитата: Дата:02.09.2005 0:17:39, Автор:lolik :: В винде нету аналога/dev/null вроде, так что тут придеца подумать… а вообще хз как это сделать можно..<BR><BR>А прога.ехе это твое творение? или нет? ну если там окна в ресурсах, попробуй редактором ресурсов поменять у них свойство visible(вроде так).. —————-
так сам сделай. тупой процесс, который читает всё что приходат на указанный набора дескрипторов и сходу член кладёт на прочитанное. А вообще, очень меня сомневает что нету – в досе был драйвер (NULL если память не изменяет), в *nix есть /dev/null, почему бы и в винде не быть, чему-нибудь похожему?
|
|
|
Delphi - 2005-09-14 11:30:22
|
|
|
bens
Сообщений: 3
Оценки: 0
Присоединился: 2005-08-22 16:03:57
|
>>этоже просто я делал это сто раз через >>shellapi
uses ShellAPI
ShellExecute(handle,'open',PChar(имя_файла),PChar(директория_файла),PChar(строка_параметров),параметры_запуска)
параметры не помню, могу ошибиться - смотри сам…
если у программы нет окна, вместо "handle" - "0" директория_файла - рабочая папка типа, можно вместо "PChar(директория_файла)" поставить "nil", тогда будет папка, где находится файл. если параметры не нужны, вместо "PChar(строка_параметров)" тоже "nil" параметры_запуска задавай SW_HIDE (вроде SW…) если ещё какие-то параметры есть - "nil"
А ваще по таким вопросам советую: Архангельский, "Приёмы программирования в Delphi"
|
|
|
|
|