Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.03.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
1-17079
munch
2003-02-25 18:35
2003.03.06
Получение значений из строки


3-16898
VIB
2003-02-14 16:34
2003.03.06
Тип поля


14-17339
stecoff
2003-02-18 09:35
2003.03.06
Удаление компонента


3-16926
smus
2003-02-07 10:56
2003.03.06
Объём записей в базе ок. 10-15 тыс.


1-17053
Skywalker
2003-02-25 14:59
2003.03.06
TreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский