Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.12.04;
Скачать: [xml.tar.bz2];

Вниз

Блокировка окна запускаемого консольного приложения   Найти похожие ветки 

 
AndreyS   (2003-10-06 15:46) [0]

Извиняюсь за наверное уже задаваемый вопрос, но искать скорость
сетки и время не позволяют.

Вот стандартный (из книжки) код по запуску консольного (не досовского) приложения.

var
StartInfo: TstartupInfo; ProcInfo: TProcessInformation;
----------------------------------------------------------------------

FillChar(StartInfo, Sizeof(StartInfo), #0);
StartInfo.cb:=Sizeof(StartInfo);
StartInfo.wShowWindow:=SW_HIDE;
if not CreateProcess(nil, "myprog", nil, nil, false,
CREATE_NEW_CONSOLE or HIGH_PRIORITY_CLASS, nil, nil, StartInfo, ProcInfo)
then ShowMessage(IntToStr(GetLastError))
else begin
//Application.ProcessMessages;
if WaitForSingleObject(ProcInfo.hProcess, 600000) = WAIT_TIMEOUT
then begin ShowMessage(" Time enoght") end;
{ExitProcess(ProcInfo.hThread);}
CloseHandle(ProcInfo.hProcess);
end;

Все работает нормально, но сделать невидимым и лучше вообще несоздаваемым
окно (которое почему то создается под консольное приложение) не удается.
Консольное приложение на экран ничего не посылает, только в файлы пишет,
да и читает только с файлов.
Как сделать так чтобы окно для него не создавалось (сейчас мелькает пустое
черное окно с названием проги на линейке). Время на это тратится и сильно
портит впечатление от работы вызывающего приложения.

Прошу помочь.
Заранее спасибо за ответ.


 
Verg   (2003-10-06 15:54) [1]


> if not CreateProcess(nil, "myprog", nil, nil, false,
> CREATE_NEW_CONSOLE or HIGH_PRIORITY_CLASS, nil, nil, StartInfo,
> ProcInfo)


Может убрать?


 
AndreyS   (2003-10-06 20:21) [2]

Ну убрал- и ничего (окошко только еще дольше висит, пока винды догадываюся его прикрыть).


 
DVM   (2003-10-07 09:34) [3]

А может не делать консольного приложения, а сделать с одним невидимым окном на API?


 
Polevi   (2003-10-07 09:53) [4]

StartInfo.dwFlags:=STARTF_USESHOWWINDOW;


 
AndreyS   (2003-10-07 12:20) [5]

Polevi спасибо.
Я вчера уже нашел это у себя дома в Дарахвелидзе Delphi4. Все логично - прежде чем указывать
команду надо указать кто ее будет отрабатывать. Вот что значит читать разные брошурки
перепечатываемые людьми которые сами наверное ничего не писали толком.
В брошурке StartInfo.dwFlags:=STARTF_USESHOWWINDOW; потеряно.
Видимо на работу надо тащить нормальные книжки из дома.
Еще раз спасибо.



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

Форум: "WinAPI";
Текущий архив: 2003.12.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.003 c
4-11718
Полина
2003-10-08 15:11
2003.12.04
Поиск запущенного приложения


6-11639
pavia
2003-10-09 22:01
2003.12.04
пОЧЕМУ ОШИБКИ


14-11703
electric
2003-11-12 20:12
2003.12.04
$$$ Money $$$


6-11693
Igorek
2003-10-03 11:45
2003.12.04
Проблема с TServerSocket


8-11630
Саша2
2003-08-01 15:59
2003.12.04
avertv studio 203 -> delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский