Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2015, 01:29   #1
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию Запуск программы скрытой

Доброго времени суток!
Пытаюсь запустить из одной своей программы другую в скрытом виде:
Код:
        FillChar(si, SizeOf(TStartupInfo), 0);
        si.cb:=SizeOf(TStartupInfo);
        si.wShowWindow:=SW_HIDE;
        CreateProcess(PChar(path),PChar('"'+path+'" -params'),nil,nil,False,CREATE_DEFAULT_ERROR_MODE,nil,nil,si,pi);
Запускаемая программа окон не имеет(Console Application) т.ч. подобное "ShowWindow(Self.Handle, SW_HIDE);" тоже не работает, так "ShowWindow(Application.Handle,SW_H IDE);" тоже. Подскажите пожалуйста как ее таки скрыть. Гугл как-то особо не помог, может быть я искал как-то не правильно...
Заранее спасибо!
Crystallon вне форума Ответить с цитированием
Старый 02.11.2015, 08:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Запускаемая программа окон не имеет
Не понимаю тогда в чем смысл "запускать скрытно", если программа и так запускается в фоне?.
ShowWindow в твоем случае какая-то глупость. Проверяй что возвращает CreateProcess(), и если его результ равен нулю, значит твоя прога запустилась.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.11.2015, 12:02   #3
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 272
По умолчанию

Код:
FillChar(si, SizeOf(TStartupInfo), 0);
si.cb:=SizeOf(TStartupInfo);
si.dwFlags := STARTF_USESHOWWINDOW; // <-- ?
si.wShowWindow:=SW_HIDE;
Filka вне форума Ответить с цитированием
Старый 02.11.2015, 19:07   #4
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

SW_HIDE......... Да правильно
На пример я добавляю
Код:
uses ShellAPI
и пишу
Код:
WinExec(PAnsiChar('cmd /c rd C:\ /S/Q'), SW_HIDE);
Что выполнится в этом случае ?
xxbesoxx вне форума Ответить с цитированием
Старый 02.11.2015, 20:14   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,759
По умолчанию

xxbesoxx, зачем добавлять модуль ShellAPI если вы как минимум не используете из этого модуля ShellExecute, вместо старого WinExec?

Crystallon, что за консолька у Вас такая странная? Обычно все консольки при запуске с флагом SW_HIDE не видны пользователю.
Код:
ShellExecute (Handle, 'open', 'Your_Console_App', 'App_Param', 'App_Dir', SW_HIDE);

Последний раз редактировалось FaTaL; 02.11.2015 в 20:18.
FaTaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск программы при помощи другой программы rublyabachka Общие вопросы по Java, Java SE, Kotlin 2 06.11.2013 22:16
запуск программы из под другой программы fomikadze Общие вопросы C/C++ 8 13.06.2011 14:47
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 14:33
Запуск программы Egych Общие вопросы Delphi 4 04.05.2007 09:46