Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Умоляю помогите!!!!!!!!!!


Автор: -Keeper_ 11.8.2004, 14:13
Помогите Кто-нибудь!!!!!
Скажите пожалуйста по понятнее и по подробнее, как сделать так,чтобы если я, например, нажимаю на кнопку, запускался exe-файл с заранее заданным мной путем!
Я уже второй год не могу найти ответ на этот вопрос.
Я перечитал уйму всяких книг и статей в инете, но ничего не нашел!!!!!
Помогите кто-нибудь
Захаров Александр a_zakharov@bk.ru



Модератор: Заголовок не отражает суть темы. В связи с нарушением правил форума тема закрыта. В следующий раз давайте осмысленный характер названию.

Автор: cardinal 11.8.2004, 14:15
Модератор: Название темы должно отражать ее суть!

Автор: <Spawn> 11.8.2004, 14:21
Цитата
Я уже второй год не могу найти ответ на этот вопрос.
А стоит ли тогда вообще этим заниматься?

Автор: sergejzr 11.8.2004, 14:27
Такое делает функция

ShellExecute

Туда и путь передаёшь и параметры smile.gif

Автор: Y-Vladimir 11.8.2004, 16:18
Можещь попробовать ф-ю WinExec, глянь в хелпе, там написано, не разберешься, пиши. Она попроще.

Автор: _hunter 11.8.2004, 16:23
WinExec не надо smile.gif -- она оставлена только для совместимости:
Цитата
This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.


да и не всегда то что проще -- лучше

Автор: Slawanix 21.8.2004, 01:31
Можно еще при помощи CreateProcess, она понавороченнее будет, но и посложней чуть, ее описание тоже в хелпе Delphi должно быть. Удачи wink.gif wink.gif wink.gif

Автор: youri 21.8.2004, 20:33
Цитата
по понятнее и по подробнее
, используя ShellExecute:
Код
uses
ShellAPI;
procedure TForm1.Button1Click(Sender: TObject);
begin
 ShellExecute(Handle, nil, 'c:\winnt\notepad.exe', nil,
   'c:\winnt\', SW_SHOWNORMAL);
end;

1й параметр - дескриптор окна, из которого вызывается ShellExecute (насколько
я понял дочерний процесс будет иметь возможность выводить в это окно, если ему это понадобится, message box's с сообщением об ошибке)
2й параметр - что надо сделать с файлом/каталогом, указанном в 3м параметре:
'open'
3й параметр=файл - запустить файл
3й параметр - файл, который надо запустить
4й параметр - параметры, передаваемые executable-файлу
5й параметр - каталог по умолчанию
6й параметр - как отобразить окно (SW_SHOWNORMAL, SW_SHOWMAXIMIZED,
SW_SHOWMINIMIZED)

Автор: Pakshin A. S. 21.8.2004, 21:37
Оффтоп:
Ууу... крутой программист! Два года! Я бы уже сдох!

Ещё пример:
Код

var
 si:TStartUpInfo;
 pi:TProcessInformation;
begin
 ZeroMemory(@si, SizeOf(si));
 si.cb:=SizeOf(si);
 si.wShowWindow:=SW_Normal;
 si.dwFlags:=STARTF_USESHOWWINDOW;
 CreateProcess(nil, 'C:\autoexec.bat', nil, nil, False, IDLE_PRIORITY_CLASS or DETACHED_PROCESS, nil , nil, si, pi);
end;


Стоит нажать F1 и почитать о вышеуказанных функциях.

Автор: vadimich 23.8.2004, 05:52
вот это самое лучшее ;)

uses
ShellAPI;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle, nil, 'c:\winnt\notepad.exe', nil,
'c:\winnt\', SW_SHOWNORMAL);
end;

Автор: Pakshin A. S. 24.8.2004, 17:39
vadimich
Всё зависит от цели запуска программы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)