Посл.ответ |
Сообщение |
Ранг: 10.1 (новичок) Активность: 0.04↘0 Статус: Участник
|
Создано: 26 сентября 2004 05:11 · Личное сообщение · #1
Всем привет!!!
Пожалуйста помогите! Как с помощью программы запустить несколько экзэшников, например блокнот, калькулятор и Paint.
Т.е. я хотел сказать: "Какая команда это делает и возможно ли это?".
| Сообщение посчитали полезным: |
|
Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 26 сентября 2004 05:31 · Личное сообщение · #2
ShellExecute например
| Сообщение посчитали полезным: |
Ранг: 10.1 (новичок) Активность: 0.04↘0 Статус: Участник
|
Создано: 26 сентября 2004 05:36 · Личное сообщение · #3
А синтаксис Можно? пожалуйста, например notepad.exe
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0.02↘0 Статус: Участник
|
Создано: 26 сентября 2004 05:41 · Личное сообщение · #4
ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOW);
| Сообщение посчитали полезным: |
Ранг: 174.2 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 26 сентября 2004 05:45 · Личное сообщение · #5
Не забудь ещё тогда в списке используемых модулей (uses) ShellAPI прописать.
| Сообщение посчитали полезным: |
Ранг: 10.1 (новичок) Активность: 0.04↘0 Статус: Участник
|
Создано: 26 сентября 2004 05:49 · Личное сообщение · #6
И так можно 3 строки прописать?
ShellExecute(NULL, "open", "notepad.exe", NULL, NULL, SW_SHOW);
А запущенное окно не станет активным?
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0.02↘0 Статус: Участник
|
Создано: 26 сентября 2004 05:53 · Личное сообщение · #7
Sanya пишет:
А запущенное окно не станет активным?
С параметром SW_SHOWNA нет.
| Сообщение посчитали полезным: |
Ранг: 174.2 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 26 сентября 2004 05:53 · Личное сообщение · #8
Прописывать можно сколько угодно, только чтобы окно не стало активным, укажи SW_SHOWNA или SW_SHOWNOACTIVATE вместо SW_SHOW.
| Сообщение посчитали полезным: |
Ранг: 10.1 (новичок) Активность: 0.04↘0 Статус: Участник
|
Создано: 26 сентября 2004 06:00 · Личное сообщение · #9
Это получится типа вируса 5000 калькуляторов при запуске винды.
| Сообщение посчитали полезным: |
Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 26 сентября 2004 06:23 · Личное сообщение · #10 |
Ранг: 10.1 (новичок) Активность: 0.04↘0 Статус: Участник
|
Создано: 26 сентября 2004 06:29 · Личное сообщение · #11 |
Ранг: 266.8 (наставник), 5thx Активность: 0.22↘0.03 Статус: Участник very WELL :)
|
Создано: 26 сентября 2004 06:37 · Личное сообщение · #12
Да уж. ShellExecute не знаем, а уже вирусы писать.
Тяжелый случай.
| Сообщение посчитали полезным: |
Ранг: 10.1 (новичок) Активность: 0.04↘0 Статус: Участник
|
Создано: 26 сентября 2004 06:52 · Личное сообщение · #13
Все равно, чего-то ему не хватает. Ксати у меня 6-й делфи.
Выдаёт ошибку типа несовместимость типов между 2 и 3 "NULL", а насчет того, что там не кавычки а ' ' - это по моему уму.
| Сообщение посчитали полезным: |
Ранг: 174.2 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 26 сентября 2004 06:55 · Личное сообщение · #14
Вообще-то, это у XaErO ошибка - в Delphi нужно не NULL, а nil писать.
| Сообщение посчитали полезным: |
Ранг: 174.2 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 26 сентября 2004 06:58 · Личное сообщение · #15
Правильно так будет:
ShellExecute(0, 'open', 'notepad.exe', nil, nil, SW_SHOWNA);
| Сообщение посчитали полезным: |
Ранг: 266.8 (наставник), 5thx Активность: 0.22↘0.03 Статус: Участник very WELL :)
|
Создано: 26 сентября 2004 07:18 · Личное сообщение · #16
Еще вот так можно:
ShellExecute(0, 'open', 'notepad.exe', '', '', SW_SHOWNA);
| Сообщение посчитали полезным: |
Ранг: 10.1 (новичок) Активность: 0.04↘0 Статус: Участник
|
Создано: 26 сентября 2004 07:21 · Личное сообщение · #17
deNULL, большое тебе спасибо!!!
Всем большое спасибо.
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 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.07↘0 Статус: Участник
|
Создано: 26 сентября 2004 07:27 · Личное сообщение · #19
Ага. А ещё так:
WinExec('notepad.exe', SW_SHOWNA);
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 26 сентября 2004 07:36 · Личное сообщение · #20
deNULL пишет:
WinExec
Это устаревшая ф-ция, оставленная только для совместимости, в Win32 нужно использовать CreateProcess.
| Сообщение посчитали полезным: |
Ранг: 174.2 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 26 сентября 2004 07:39 · Личное сообщение · #21
А я и не говорю, что она не устаревшая, я просто сказал, что ею можно воспользоваться.
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 26 сентября 2004 07:44 · Личное сообщение · #22
deNULL
Плохой стиль, уважаемый.
| Сообщение посчитали полезным: |
Ранг: 174.2 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 26 сентября 2004 07:47 · Личное сообщение · #23
В смысле?
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 26 сентября 2004 07:50 · Личное сообщение · #24
Использование WinExec является плохим стилем программирования. Чему же ты учишь?
| Сообщение посчитали полезным: |
Ранг: 174.2 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 26 сентября 2004 07:53 · Личное сообщение · #25
Я не учу, я просто перечислил функции, с помощью которых можно запустить приложение, и все.
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 26 сентября 2004 08:00 · Личное сообщение · #26
deNULL пишет:
я просто перечислил функции
А я подумал Ara привёл ShellExecute, я CreateProcess, а ты WinExec Ладно, проехали, я всё понял
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0.02↘0 Статус: Участник
|
Создано: 26 сентября 2004 09:12 · Личное сообщение · #27
deNULL пишет:
Вообще-то, это у XaErO ошибка
Это на С++, я ж ведь не думал, что мы не умеем nil писать, а так - тяжелый случай...
| Сообщение посчитали полезным: |
Ранг: 266.8 (наставник), 5thx Активность: 0.22↘0.03 Статус: Участник very WELL :)
|
Создано: 26 сентября 2004 10:51 · Личное сообщение · #28
XaErO пишет:
а так - тяжелый случай
Вот с этим я согласен =)
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 28 сентября 2004 01:15 · Личное сообщение · #29
а есть функция WaitForMultipleObjects, тогда можно ждать завершения нескольких прог сразу!
| Сообщение посчитали полезным: |
Ранг: 266.8 (наставник), 5thx Активность: 0.22↘0.03 Статус: Участник very WELL :)
|
Создано: 28 сентября 2004 01:36 · Личное сообщение · #30
А причем тут завершение нескольких прог?
| Сообщение посчитали полезным: |