Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2007, 23:50   #1
Makxim
Новичок
Джуниор
 
Регистрация: 12.10.2007
Сообщений: 1
Восклицание Как запустить из Delphi exe файл

Мне надо чтобы при нажатии кнопки на форме,запускался exeшник.Подскажите что-нибудь.
Makxim вне форума Ответить с цитированием
Старый 13.10.2007, 00:03   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Фраза для поиска по форуму: Shellexecute
Alex21 вне форума Ответить с цитированием
Старый 13.10.2007, 00:12   #3
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
Directory: PChar; ShowCmd: Integer): HINST;

пример:
Код:
procedure TForm1.Button7Click(Sender: TObject);
begin
ShellExecute
(0,           //Хендл родительского окна
'',            //Операция (open,print,explore) - по дефалту open
'cmd.exe', //Путь к файлу
' exit',      //Командная строка
'%tmp%',  //Текущай каталог (для запускаемого приложения)
SW_Show  //Состояние показа окна (SW_Hide - скрыто, SW_Show - нормально, есть ещё несколько....)
);
end;
execom вне форума Ответить с цитированием
Старый 13.10.2007, 00:18   #4
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

на начальном этапа проще применять:
Код:
function WindExec(CmdLine: PChar; CmdShow: Word): Word;
procedure TForm1.Button7Click(Sender: TObject);
begin
winexec(
'calc.exe',    //Путь к файлу
SW_Show);  //Тип показа
end;
Для применения обейх функций подключи модуль ShellApi

Последний раз редактировалось Alex11223; 02.11.2016 в 17:32.
execom вне форума Ответить с цитированием
Старый 13.10.2007, 09:46   #5
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
Радость

Если надо засунуть exe или другой какой либо файл из приложения !
надо вставить его в ресурс и
откомпилить компилятором ресурсов. Далее читать из ресурса своего EXE-файла.
Как это зделать:
Пример:
Создать с помощью блокнота Файл обозвать его Program.rc
Пишем в него Program exe C:\Program.exe и сохраняем его!
Далие открываем "C:\Program Files\Borland\Delphi\bin"
и находим там файл brcc32.exe капируем в папку с Program.rc!
Создаём Program.bat открываем с помощю текст редактора пишем :
brcc32.exe Program.rc И сахраняем!
Program.exe должна нахадитс в ириктории C:\Program.exe для избежании ошибки в пути!
Запускаем Program.bat получаем Program.RES !!!!
Далие В проэкте пишем:

Цитата:
implementation

{$R *.DFM}
{$R Program.RES} //Это и есть ваш Program.exe он автоматом включится в проэкт
//Это процедура извлечения Program.exe
procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));// Создаем поток
Res.SavetoFile(ResNewName); // Сохраняем поток в файл
Res.Free; // Освобождаем поток
end;
//Это процедура запуска Program.exe
procedure TForm1.Button1Click(Sender: TObject);
var
si : Tstartupinfo;
p : Tprocessinformation;
begin
//Сначала извлекаем Program.exe
ExtractRes('exe', 'Program', 'Program.exe');
//Запускаем И ожидаем конец выполнения My Program.exe
begin
FillChar( Si, SizeOf( Si ) , 0 );
with Si do begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
Application.Minimize;
Createprocess(nil,'Program.exe',nil ,nil,false,Create_default_error_mod e,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infi nite);
Application.Restore;
end;
Если прсто запустить и падаждать завершения Program.exe
Цитата:
procedure TForm1.Button1Click(Sender: TObject);
var
si : Tstartupinfo;
p : Tprocessinformation;
begin
FillChar( Si, SizeOf( Si ) , 0 );
with Si do begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
Application.Minimize;
Createprocess(nil,'/Program.exe',nil,nil,false,Create_d efault_error_mode,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infi nite);
Application.Restore;
end;
Вобщем диржи полный димострационный код и пример с исходникам!!!
Цитата:
unit Unit1;
//*Прозьба на орфографию внимание необрощать!!!
//*Если что не понятно спросить!!!

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls,ShellAPI;

type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
{$R Chess.RES}//Это и есть наш Chess.exe

//Процедура извлечения
procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;
//Пример простого запуска программы! И ожидание завершения процеса!
procedure TForm1.Button4Click(Sender: TObject);
var
si : Tstartupinfo;
p : Tprocessinformation;
//Запускаем
begin
FillChar( Si, SizeOf( Si ) , 0 );
with Si do begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
//Ждём
Application.Minimize;
Createprocess(nil,'Chess/Chess.exe',nil,nil,false,Create_def ault_error_mode,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infi nite);
Application.Restore;
end;
Продолжение ниже!!!
Вложения
Тип файла: rar Пример.rar (823.4 Кб, 283 просмотров)
Не количеством плюсов измеряется репутация человека...!

Последний раз редактировалось Volkogriz; 13.10.2007 в 10:49.
Volkogriz вне форума Ответить с цитированием
Старый 13.10.2007, 09:47   #6
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
По умолчанию

Это продолжение!!!

Цитата:
//Пример запуска программы из ресурсов! И ожидание завершения процеса!
procedure TForm1.Button1Click(Sender: TObject);
var
si : Tstartupinfo;
p : Tprocessinformation;
//звлекаем
begin
ExtractRes('exe', 'Chess', 'We Extract/Chess.exe');
//Запускаем
begin
FillChar( Si, SizeOf( Si ) , 0 );
with Si do begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
Application.Minimize;
Createprocess(nil,'We Extract/Chess.exe',nil,nil,false,Create_def ault_error_mode,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infi nite);
Application.Restore;
end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
CreateDir('We Extract\'); //Соэдаём директорию при открытии фармы
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DeleteFile('We Extract/Chess.exe'); //Удаляем файл при закрытии формы
begin
RemoveDir('We Extract\'); //Удаляем директорию при закрытии формы
end;
end;
//Запуск из камандной строки!
procedure TForm1.Button2Click(Sender: TObject);
begin //Запуск из командной сроки с ключами /C/S/D={tmp}
ShellExecute(Handle, nil, 'Chess/Chess.exe', '/c'+' /S /D={tmp} ', nil, SW_SHOW);
end;
//Закрываем
procedure TForm1.Button3Click(Sender: TObject);
begin
Close
end;

end.
Надеюсь разберётесь!!!
Что не понятно спросите!!!
С уважением Volkogriz!!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 15.10.2007, 07:20   #7
mr.steep
Новичок
Джуниор
 
Регистрация: 13.10.2007
Сообщений: 1
По умолчанию

подскажирте как из программы можне запусть файл допустим .mp3
mr.steep вне форума Ответить с цитированием
Старый 15.10.2007, 07:48   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

mr.Steep, уже сказали - ShellExecute. Если ей передать неэкзешник, то она сама найдет прогу ассоциированную с расширением файла и запустит ее передав ей параметром файл, который ты указал, для открытия
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.10.2007, 06:17   #9
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
Радость

Делаеш файл .RES как указивается выши!
Кидаеш на форму MediaPlayer, и пишиш:

Цитата:
{$R *.DFM}
{$R твой.mp3}

procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ExtractRes('mp3', 'твой', 'mp3/твой.mp3');
begin
MediaPlayer1.FileName := 'mp3/твой.mp3';
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
Видио:
Кидаеш на форму MediaPlayer,Panel, и пишиш:
Цитата:
{$R *.DFM}
{$R vidio.avi}

procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;

procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
begin
if MediaPlayer1.NotifyValue = nvSuccessful then
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ExtractRes('avi', 'vidio', 'vidio/vidio.avi);
begin
MediaPlayer1.Display := Panel1;
MediaPlayer1.FileName := 'vidio/vidio.avi';
MediaPlayer1.Open;
MediaPlayer1.DisplayRect := ClientRect;
MediaPlayer1.Play;
end;
Ну и так далее!!!
Надеюсь разберётесь!!!
С уважением Volkogriz!!!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 16.10.2007, 16:55   #10
Skiff
 
Регистрация: 12.10.2007
Сообщений: 3
По умолчанию

CreateProcess
Skiff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запустить JavaScript из Delphi& Xenofibrius Работа с сетью в Delphi 3 26.08.2011 22:12
Как запустить EXE из Delphi Delfyak О форуме и сайтах клуба 6 28.05.2008 19:25
Запустить bat файл Ніжний Диявол Общие вопросы Delphi 1 13.05.2008 22:48
Delphi, звуковой файл. north Помощь студентам 1 23.01.2008 10:54
Хочу запустить файл Польчик Общие вопросы Delphi 3 27.04.2007 04:55