Сейчас на форуме: Rio, ==DJ==[ZLO], Dart Raiden, Alf (+6 невидимых)

 eXeL@B —› Основной форум —› Как в делфи запустить несколько других программ
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 10.1 (новичок)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 05:11
· Личное сообщение · #1

Всем привет!!!

Пожалуйста помогите! Как с помощью программы запустить несколько экзэшников, например блокнот, калькулятор и Paint.
Т.е. я хотел сказать: "Какая команда это делает и возможно ли это?".




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 26 сентября 2004 05:31
· Личное сообщение · #2

ShellExecute например



Ранг: 10.1 (новичок)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 05:36
· Личное сообщение · #3

А синтаксис Можно? пожалуйста, например notepad.exe



Ранг: 0.0 (гость)
Активность: 0.020
Статус: Участник

Создано: 26 сентября 2004 05:41
· Личное сообщение · #4

ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOW);



Ранг: 174.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 26 сентября 2004 05:45
· Личное сообщение · #5

Не забудь ещё тогда в списке используемых модулей (uses) ShellAPI прописать.



Ранг: 10.1 (новичок)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 05:49
· Личное сообщение · #6

И так можно 3 строки прописать?
ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOW);

А запущенное окно не станет активным?




Ранг: 0.0 (гость)
Активность: 0.020
Статус: Участник

Создано: 26 сентября 2004 05:53
· Личное сообщение · #7

Sanya пишет:
А запущенное окно не станет активным?

С параметром SW_SHOWNA нет.



Ранг: 174.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 26 сентября 2004 05:53
· Личное сообщение · #8

Прописывать можно сколько угодно, только чтобы окно не стало активным, укажи SW_SHOWNA или SW_SHOWNOACTIVATE вместо SW_SHOW.



Ранг: 10.1 (новичок)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 06:00
· Личное сообщение · #9

Это получится типа вируса 5000 калькуляторов при запуске винды.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 26 сентября 2004 06:23
· Личное сообщение · #10

Sanya пишет:
Это получится типа вируса 5000 калькуляторов при запуске винды


Да, серьезный будет вирус.
Когда я еще учился в школе, писал вирус под ДОС, он пароли Биоса менял при каждом перезапуске



Ранг: 10.1 (новичок)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 06:29
· Личное сообщение · #11

Спасибо, крутые перцы!!!





Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 26 сентября 2004 06:37
· Личное сообщение · #12

Да уж. ShellExecute не знаем, а уже вирусы писать.
Тяжелый случай.



Ранг: 10.1 (новичок)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 06:52
· Личное сообщение · #13

Все равно, чего-то ему не хватает. Ксати у меня 6-й делфи.
Выдаёт ошибку типа несовместимость типов между 2 и 3 "NULL", а насчет того, что там не кавычки а ' ' - это по моему уму.



Ранг: 174.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 26 сентября 2004 06:55
· Личное сообщение · #14

Вообще-то, это у XaErO ошибка - в Delphi нужно не NULL, а nil писать.



Ранг: 174.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 26 сентября 2004 06:58
· Личное сообщение · #15

Правильно так будет:
ShellExecute(0, 'open', 'notepad.exe', nil, nil, SW_SHOWNA);




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 26 сентября 2004 07:18
· Личное сообщение · #16

Еще вот так можно:
ShellExecute(0, 'open', 'notepad.exe', '', '', SW_SHOWNA);



Ранг: 10.1 (новичок)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 07:21
· Личное сообщение · #17

deNULL, большое тебе спасибо!!!
Всем большое спасибо.



Ранг: 42.0 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 07:23
· Личное сообщение · #18

А ещё, например, вот так :
[code]
var
si : TStartupInfo;
p : TProcessInformation;
begin
FillChar(Si, SizeOf(Si) , 0);
Application.Minimize;
CreateProcess(nil,'notepad.exe',nil,nil,False,Create_default_error_mod e,nil,nil,si,p);
WaitForSingleObject(p.hProcess,INFINITE);
Application.Restore;
end;
[/code]



Ранг: 174.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 26 сентября 2004 07:27
· Личное сообщение · #19

Ага. А ещё так:
WinExec('notepad.exe', SW_SHOWNA);



Ранг: 42.0 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 07:36
· Личное сообщение · #20

deNULL пишет:
WinExec

Это устаревшая ф-ция, оставленная только для совместимости, в Win32 нужно использовать CreateProcess.



Ранг: 174.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 26 сентября 2004 07:39
· Личное сообщение · #21

А я и не говорю, что она не устаревшая, я просто сказал, что ею можно воспользоваться.



Ранг: 42.0 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 07:44
· Личное сообщение · #22

deNULL
Плохой стиль, уважаемый.



Ранг: 174.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 26 сентября 2004 07:47
· Личное сообщение · #23

В смысле?



Ранг: 42.0 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 07:50
· Личное сообщение · #24

Использование WinExec является плохим стилем программирования. Чему же ты учишь?



Ранг: 174.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 26 сентября 2004 07:53
· Личное сообщение · #25

Я не учу, я просто перечислил функции, с помощью которых можно запустить приложение, и все.



Ранг: 42.0 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 26 сентября 2004 08:00
· Личное сообщение · #26

deNULL пишет:
я просто перечислил функции

А я подумал Ara привёл ShellExecute, я CreateProcess, а ты WinExec Ладно, проехали, я всё понял



Ранг: 0.0 (гость)
Активность: 0.020
Статус: Участник

Создано: 26 сентября 2004 09:12
· Личное сообщение · #27

deNULL пишет:
Вообще-то, это у XaErO ошибка

Это на С++, я ж ведь не думал, что мы не умеем nil писать, а так - тяжелый случай...




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 26 сентября 2004 10:51
· Личное сообщение · #28

XaErO пишет:
а так - тяжелый случай

Вот с этим я согласен =)



Ранг: 0.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 28 сентября 2004 01:15
· Личное сообщение · #29

а есть функция WaitForMultipleObjects, тогда можно ждать завершения нескольких прог сразу!




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 28 сентября 2004 01:36
· Личное сообщение · #30

А причем тут завершение нескольких прог?


. 1 . 2 . >>
 eXeL@B —› Основной форум —› Как в делфи запустить несколько других программ
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати