Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.06;
Скачать: CL | DM;

Вниз

как запустить файл, который присоединен в качестве рессурса?   Найти похожие ветки 

 
MikeFW   (2003-02-25 13:06) [0]

помогите, пожалуйста

я в качестве рессурса разместил exe-файл в своей программе (c помощью {$R test.res})

test.res (TEST EXEFILE D:\TEST.EXE)

как мне теперь запустить этот файл по нажатию кнопки?
если можно то проилюстрируйте на коде.


 
OlegM ©   (2003-02-25 13:49) [1]

VAR
s:STRING;
BEGIN
procedure TForm1.Button1Click(Sender: TObject);
ExtractRes("EXEFILE", "EXE", "TEST.EXE");
S:=ExtractFilePath(Application.ExeName);
S:=S+"HEXPERT.exe";
WinExec(pCHAR(S), SW_SHOW)
end;


 
OlegM ©   (2003-02-25 13:50) [2]

Блин, в 7 строке вместо HEXPERT.EXE напиши TEST.exe


 
MikeFW   (2003-02-25 14:35) [3]

что-то я несовсем разобрался в вашем коде,
вот тут я привожу полный код программы, которая не работает:
подскажите, пожалуйста, где я ошибся

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Pass: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
S: String;

implementation
{$R *.dfm}
{$R test.res}

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.Button1Click(Sender: TObject);
begin
if Pass.Text = "123" then begin
ExtractRes("EXEFILE", "WINSER", "WINSER.EXE");
S := ExtractFilePath(Application.ExeName);
S := S + "WINSER.EXE";
WinExec(Pchar(S), SW_SHOW);
Form1.Close;
end
else
ShowMessage("Пароль указан неверно");
end;

end.


 
OlegM ©   (2003-02-25 14:40) [4]

А где ошибку выдает?


 
MikeFW   (2003-02-25 14:51) [5]

ошибку не выдает,
просто файл не запускается


 
OlegM ©   (2003-02-25 14:54) [6]

А сам файлик то выдергивает из ресурса, посмотри если да то почему не работает Winexec хрен знает.
P.S. у меня робит


 
MikeFW   (2003-02-25 15:01) [7]

вот смотри,
я убираю комментарии

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

и файл ныдергивается из ресурса и копируется в каталог

но мне надо его не копировать, а просто запускать
может ты напишешь весь код своей проги,
а то честно я не совсем тот кусок понял (думаю в этом и ошибка кроется)


что же я не понял:

// какая функция это?
VAR
s:STRING;
BEGIN
// почему здесь идет Button1Click?
procedure TForm1.Button1Click(Sender: TObject);
// как выглядит у тебя данная функция?
ExtractRes("EXEFILE", "EXE", "TEST.EXE");
S:=ExtractFilePath(Application.ExeName);
S:=S+"HEXPERT.exe";
WinExec(pCHAR(S), SW_SHOW)
end;








 
MikeFW   (2003-02-25 15:51) [8]

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

а может есть такая процедура, которая запускает файл, как просиходит копирование в Res.SaveToFile(ResNewName);
?



 
MikeFW   (2003-02-25 17:03) [9]

> OlegM ©

твой код работает только при программе в каталоге, но мне какраз нужно чтобы она запускалась из ресурса


 
OlegM ©   (2003-02-26 06:20) [10]

Как запустить из ресурса я незнаю, как то пытался зделать тточно такое-же но неполучилось, пришел к тому что надо после запуска удалять файл, я там правда Flash использовал и короче после выдергивания ролика из ресурса, запускал и затем сразу удалял его
Пытался просмотреть будет ли видно файл ролика в Explorere ничего не увидел. Но не знаю прокатит ли это с EXE

procedure TForm1.FormCreate(Sender: TObject);
var
S:String;
begin
ExtractRes("ShockwaveFlashObjects_TLB", "FLASHM", "FLASH.swf");
S:=ExtractFilePath(Application.ExeName);
S:=S+"Flash.swf";
ShockWaveFlash1.Movie:=S;
ShockWaveFlash1.Play;
DeleteFile(S);
end;



Страницы: 1 вся ветка

Текущий архив: 2003.03.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
1-17106
OlDemon
2003-02-26 07:03
2003.03.06
Преобразование числа в текст


9-16844
greenrul
2002-10-09 13:49
2003.03.06
Динамическая загрузка wav в WaveList:


6-17242
Глеб
2003-01-08 03:20
2003.03.06
Вопрос по работе с сетью в Delphi


1-17091
Tim_gothic
2003-02-25 20:19
2003.03.06
Про хэлпы...


6-17238
Demetrius
2003-01-15 10:32
2003.03.06
Proxy & иже с ним