Главная страница
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.02 c
6-17252
Cosmic
2003-01-16 12:21
2003.03.06
Winsock-сервер


14-17380
Netizen
2003-02-18 08:52
2003.03.06
Кролики


14-17358
Roman Go
2003-02-18 11:20
2003.03.06
Сколько стоит MS SQL Server 2000


3-16942
Makhanev A.S.
2003-02-16 20:35
2003.03.06
DBGrid:


3-16892
al11
2003-02-14 11:49
2003.03.06
возможно что-то намудрил с QUERY Помогите!!!