Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запуск программ [D6, Win95/98]


Maloy ©   (2002-09-17 19:32:00) 

Как из программы запустить какую-нибудь внешнюю программу ?


REA   (2002-09-18 10:29:00) [1]

Гаси флейм - запускается и зашибись.


Anatoly Podgoretsky   (2002-09-18 09:29:00) [2]

MsGuns © (18.09.02 00:17)
Ничего не подразумеваю :-)
А вот то что для решения задачи стоит использовать наиболее подходящие средство, то да подразумеваю, для запуска любой программы достаточно ShellExecute, вот если потребуется больше то да CreateProcess, но вот WinExec не стоит использовать никогда, причину можно прочитать в справочной системе.


Song   (2002-09-18 09:17:00) [3]

2alena.svt © (18.09.02 00:34)
Ничего не получал. Пиши на song <at> kmtn.ru


alena.svt   (2002-09-18 00:34:00) [4]

Song © (17.09.02 23:25)
Я думала шутки закончились и я тебе писала уже но ты почему то не ответил?


MsGuns   (2002-09-18 00:17:00) [5]

>Anatoly Podgoretsky © (17.09.02 21:42)
>Нормальные пачаны используют ShellExecute, а CreateProcess только в действительно нужных случаях, а вот что нормальные пацаны никогда не используют, так это WinExec

Спасибо за "изящный" комплимент, но призывая к CreateProcess,я прежде всего ставил себя на место вопрошающего. А я там (на этом месте) был. И мне потом понадобилось обмениваться сообщениями между осн. процессом и фоновым, в т.ч. стопорить второй из первого или вообще терминатить. Процессы работали параллельно.
Что Вы подразумеваете под "нормальными пачанами" я в итоге не понял.


Song   (2002-09-17 23:25:00) [6]

2alena.svt ©
Уважаемая Лена,
напишите мне на мыло я раскрою Вам "тайну" любой из трёх приведённых мною процедур.


Anatoly Podgoretsky   (2002-09-17 21:42:00) [7]

Нормальные пачаны используют ShellExecute, а CreateProcess только в действительно нужных случаях, а вот что нормальные пацаны никогда не используют, так это WinExec


alena.svt   (2002-09-17 21:41:00) [8]

Cпасибо!
Буду считать комплиментом но я для себя написала функцию отдельно и просто ее подключаю

Procedure ProcessOpen(const AProcessFile: string);

var SI:STARTUPINFO;
PI:PROCESS_INFORMATION;

begin
ZeroMemory(@SI,Sizeof(SI));
SI.cb:=SIzeOf(SI);
CreateProcess( nil,PChar(AProcessFile),nil,nil,False,0,nil,nil,SI,PI );
end;


Потом например в буттонклик
ProcessOpen("С:\Winnt\Calc.exe");

Ну а с флагами поиграите как вам удобно


Shrek   (2002-09-17 21:28:00) [9]


> alena.svt
Нет, понимаю. Только это от шутки было максимально дальше.

Я даже сам не знал как это делать, спасибо буду знать.
var
SI: TStartupInfo;
PI: TProcessInformation;
begin
GetStartupInfo(SI);
SI.wShowWindow := SW_NORMAL;
CreateProcess( PChar("C:\Winnt\Notepad.exe"), nil, nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, si, pi);


alena.svt   (2002-09-17 21:08:00) [10]

Как запустить другой файл из моего приложения? [D6, Win95/98]

MikeFW (02.09.02 10:41)

Уважаемые Мастера,
подскажите, пожалуйста, как запустить любой файл с диска из моего приложения?



Anatoly Podgoretsky © (02.09.02 10:51)

Нормальные пачаны в первую очередь используют ShellExecute



alena.svt © (02.09.02 11:10)

http://delphi.mastak.ru/articles/winexec/index.html



MsGuns © (02.09.02 12:02)

Пачаны, которые нормальные, запускают CreateProcess, как рекомендовано во встроенной помощи. Правда там до фига пармаметров, но надо же когда-то начинать работать по нормальному ;))



alena.svt © (02.09.02 17:34)

MsGuns © (02.09.02 12:02)

Пачаны, которые нормальные, запускают CreateProcess, как рекомендовано во встроенной помощи. Правда там до фига пармаметров, но надо же когда-то начинать работать по нормальному ;))
- Нужели ?



Anatoly Podgoretsky © (02.09.02 17:44)

Это не нормальный пацаны



alena.svt © (02.09.02 18:19)

и это нормально?
var
SI: TStartupInfo;
PI: TProcessInformation;
begin
GetStartupInfo(SI);
SI.wShowWindow := SW_NORMAL;
CreateProcess( PChar("C:\Winnt\Notepad.exe"), nil, nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, si, pi);

Не нормальные деучонки исползуют ShellExecute



Старый Паскалист (02.09.02 18:40)

Нормальные люди используют средства, сообразные цели.



alena.svt © (02.09.02 19:13)

Конечно согласна.
Но к вопросу по ветке скорее всего больше всего подойдет ShellExecute.
Тем более человек задает такой вопрос. И если описать функцию CreateProcess понормальному с параметрами и приорететами, etc.
Cкорее всего он будет думать что здесь инопланетные существа о чем то своем разговор затеяли.



PS 1:0


alena.svt   (2002-09-17 21:05:00) [11]

Shrek © (17.09.02 20:00)
Если вы не понимаете шуток то извините
var
SI: TStartupInfo;
PI: TProcessInformation;
begin
GetStartupInfo(SI);
SI.wShowWindow := SW_NORMAL;
CreateProcess( PChar("C:\Winnt\Notepad.exe"), nil, nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, si, pi);


Shrek   (2002-09-17 20:13:00) [12]

Нет это штука хороша, но если для > alena.svtShellExecute - это всемирная тайна то, что можно говорить о CreateProcess.


Андрей Сенченко   (2002-09-17 20:04:00) [13]

>> Shrek © (17.09.02 20:00)

>> CreateProcess() - а это не для Вас.

Почему же ? Если в этом деле начать разбираться - параллельно самоустранятся десятки вопросов



Shrek   (2002-09-17 20:00:00) [14]


> alena.svt
Это для кого тайна а для кого знания.
Если для Вас это друно я помогу вам и розкрою такую страшную тайну:

uses ShellApi;
...
ShellExecute(handle, "open", "FileName", nil, nil, SW_SHOWNORMAL);

Прямо из хелпа.

WinExec() - ещё прорще.

CreateProcess() - а это не для Вас.


Андрей Сенченко   (2002-09-17 19:55:00) [15]

ага .. для раскрытия этой тайны нужно нажать заветную комбинацию Ctrl-F1


alena.svt   (2002-09-17 19:53:00) [16]

Не слушайте Song © (17.09.02 19:41)
Он укрыл от вас большую тайну, а тайна в круглых скобках.


Song   (2002-09-17 19:41:00) [17]

ShellExecute()
WinExec()
CreateProcess()


Наверх

Титульная страница Поиск, карта сайта Написать письмо