Страница 2 из 2
Re: AProcess.Options + [poWaitOnExit]
Добавлено: 06.04.2012 23:21:03
B4rr4cuda
Ну, например, так:
Код: Выделить всё
while AProcess.Running do begin
if application.terminated then
Halt
else
Application.ProcessMessages;
end;
Re: AProcess.Options + [poWaitOnExit]
Добавлено: 06.04.2012 23:37:55
vitaly_l
B4rr4cuda писал(а): if application.terminated then Halt
Идея класная, но это: увы, к сожалению - не работает...
Должна же быть какая-то функция, типа:
Крестик.onMouseDown... или
Крестик.onClick... Или я чего-то непонимаю???
Как программисты отключили крестик??? Значит - есть функция... Спасите - помогите...

ПОЖАЛУЙСТА <-- Волшебное слово

.
Как крестик в системе называется???
Re: AProcess.Options + [poWaitOnExit]
Добавлено: 07.04.2012 01:24:13
B4rr4cuda
Как программисты отключили крестик???
OMFG
vitaly_l писал(а):Как крестик в системе называется???
омфг. я так больше не могу, он взрывает мне мозг..
Re: AProcess.Options + [poWaitOnExit]
Добавлено: 07.04.2012 02:23:01
Ism
Ну коли речь пошла об извращениях можно при начале процесса устанавливать фокус на какойто кнопке , а при потере фокуса все рубить и закрывать приложение, про нажатии на кнопку закрытия фокус будет теряться и все сработает
Re: AProcess.Options + [poWaitOnExit]
Добавлено: 07.04.2012 09:36:44
vitaly_l
B4rr4cuda писал(а):я так больше не могу, он взрывает мне мозг..
(Oh My Fucking God)... Извините ради Бога, уважаемый B4rr4cuda... Я не хотел взорвать Ваш мозг...
Ism писал(а):Ну коли речь пошла об извращениях можно при начале процесса устанавливать фокус на какойто кнопке
Я, примерно так, при помощи Esc - останавливаю процесс... Однако Ваш вариант сработает и при простом нажатии на форму...
Суть в том что, запускаются несколько процессов подряд и между ними можно прервать(при желании)...
Просто Halt делать нельзя, т.к. то что в Process - останется висеть в тасклисте и памяти... (очевидно поэтому отключили крестик)...
Вопрос остаётся в силе:
Как вызвать функции типа: "СистемныйКрестик".onMouseDown.?. или "СистемныйКрестик".onClick.?. (если такие есть)
.
Re: AProcess.Options + [poWaitOnExit]
Добавлено: 07.04.2012 11:01:45
Ism
В вашем случае проще запустить процесс и отцепить его от программы, то есть при дезактивации Tproocess процесс продолжит выполняться. А при закрытии программы убивать его консольной командой taskkill
Или сделать две программы , вторая будет управляться через pipe
Ну или TThread
Re: AProcess.Options + [poWaitOnExit]
Добавлено: 07.04.2012 11:46:41
vitaly_l
Ism писал(а):Ну или TThread
У TThread будут теже возможности, что и у TProcess: Какой смысл менять шило на мыло?? (кстати, там - тоже заблокируется крестик)...
Ism писал(а):запустить процесс и отцепить его от программы, то есть при дезактивации Tproocess процесс продолжит выполняться.
Это класс! Спасибо! Это мне подходит; т.к. прерывать процесс мне не нужно. (мне нужно прервать между процессами)
Как отцепить процес? Как называется функция? Ключевые слова для поиска какие?...
Re: AProcess.Options + [poWaitOnExit]
Добавлено: 07.04.2012 12:31:55
Ism
в windows я делаю "cmd /k "notepad" "
и тогда Tprocess.Active:=false процесс остается работать.
Добавлено спустя 12 минут 55 секунд:Внимание, для Lazarus 0.9.30.4 fpc 2.6.0 делать так , старый метод через commandline не поддерживается, хотя и работает
Process1.Active:=false;
Process1.ShowWindow:=swoHIDE;
Process1.Executable:='cmd';
Process1.Parameters.Clear;
Process1.Parameters.Add('/k');
Process1.Parameters.Add('notepad.exe');
Process1.Execute;
Sleep(1000);
Process1.Active:=false;